인터루드

web-ssrf

U.J 2022. 11. 6. 02:01

문제

 

url 부분에 첫번째 파라미터로 "/"을 전달한다면  ''http://localhost:8000''+url이 됨

url 쓰는 부분에 "localhost" , "127.0.0.1"이 있다면 error.png을 반환함

 

img = base64.b64encode(data).decode("utf8")
-> 값을 base64로 디코딩함
 
local_host = "127.0.0.1"
local_port = random.randint(1500, 1800)
-> localhost의 IP 주소는 127.0.0.1이고, 포트 번호는 1500~1800 사이의 랜덤 값임
 
 
 
flaf.txt는 127.0.0.1이 필터링이 된 Hex 인코딩을 사용하는(=0x7f000001) 
http://0x7f000001:????/static/dream.png을 적용해야 함
 
포트 번호를 알아내기 위해 위의 코드를 작성하고, 1751이라는 것을 알 수 있음
즉, http://0x7f000001:1751/static/dream.png임
 
여기서 이미지 data 값으로 전달된 base64가 인코딩되어 있으므로 디코딩을 하면 DH의 값을 찾아낼 수 있음
 
인코딩 값: REh7NDNkZDIxODkwNTY0NzVhN2YzYmQxMTQ1NmExN2FkNzF9

 

DH{43dd2189056475a7f3bd11456a17ad71}

 

'인터루드' 카테고리의 다른 글

file-download-1  (0) 2022.11.06
image-storage  (0) 2022.11.06
MANGO-2  (0) 2022.09.30
MANGO-1  (0) 2022.09.30
Simple SQLi  (0) 2022.09.30