SWLUG/CTF 문제 풀이 (2)

[Dreamhack/λ“œλ¦Όν•΅] simple-web-request

waterproof 2024. 5. 15. 09:05

https://dreamhack.io/wargame/challenges/830

 

🌱 simple-web-request

Description STEP 1~2λ₯Ό 거쳐 FLAG νŽ˜μ΄μ§€μ— λ„λ‹¬ν•˜λ©΄ ν”Œλž˜κ·Έκ°€ 좜λ ₯λ©λ‹ˆλ‹€. λͺ¨λ“  단계λ₯Ό ν†΅κ³Όν•˜μ—¬ ν”Œλž˜κ·Έλ₯Ό νšλ“ν•˜μ„Έμš”. ν”Œλž˜κ·ΈλŠ” flag.txt 파일과 FLAG λ³€μˆ˜μ— μžˆμŠ΅λ‹ˆλ‹€. ν”Œλž˜κ·Έ ν˜•μ‹μ€ DH{...} μž…λ‹ˆλ‹€. πŸ“œ

dreamhack.io


[1] 문제 ν’€κΈ°

 

 

 

 

 

 

 

STEP1의 νŽ˜μ΄μ§€μ΄λ‹€.

 

뭘 μž…λ ₯ν•΄μ•Ό ν•˜λŠ”μ§€ λͺ¨λ₯΄κ² μ–΄μ„œ

 

STEP2, FLAG νŽ˜μ΄μ§€λ„ λ“€μ–΄κ°€λ΄€λŠ”λ°

 

 

아직은 뭘 ν•  수 μ—†λ‚˜λ³΄λ‹€.

 

 

일단 STEP1 νŽ˜μ΄μ§€λ‘œ λŒμ•„κ°€μ„œ,

 

μ•„λ¬΄κ°’μ΄λ‚˜ μž…λ ₯ν•΄λ³΄μ•˜λŠ”λ°, κ·ΈλŒ€λ‘œ νŒŒλΌλ―Έν„°κ°€ 좜λ ₯λ˜λŠ” 것을 λ³Ό 수 μžˆλ‹€.

 

μ—¬κΈ°μ—μ„œ μ•Œ 수 μžˆλŠ” 게 μ—†μ–΄μ„œ 문제 νŒŒμΌμ„ ν™•μΈν•΄μ£Όμ—ˆλ‹€.

 

 

μ—¬κΈ°μ—μ„œ,

νŒŒλΌλ―Έν„°1은 "getget"일 λ•Œ, νŒŒλΌλ―Έν„°2λŠ” "rerequest" 일 λ•Œ, λ‹€μŒ λ‹¨κ³„λ‘œ λ„˜μ–΄κ°ˆ 수 μžˆλŠ” λ“― ν•˜λ‹€.

 

 

λ‹€μŒ λ‹¨κ³„λ‘œ λ„˜μ–΄κ°€κ²Œ λ˜μ—ˆλ‹€.

 

 

 

이 뢀뢄을 보고,

νŒŒλΌλ―Έν„°1에 "pooost" 그리고 νŒŒλΌλ―Έν„°2에 "requeeest"λ₯Ό μž…λ ₯ν–ˆλ‹€.

 

 

κ·Έλž¬λ”λ‹ˆ ν”Œλž˜κ·Έ 값이 λ‚˜μ™”λ‹€...


μ–΄λ–€ 취약점이 이 문제의 ν•΅μ‹¬μΌκΉŒ κΆκΈˆν•΄μ„œ μ°Ύμ•„λ³΄μ•˜λ‹€.

 

λ³Έ λ¬Έμ œλŠ” μ›Ήμ•± ν”„λ ˆμž„μ›Œν¬ Flask둜 μž‘μ„±λœ μ›Ή νŽ˜μ΄μ§€λ‘œ, 이λ₯Ό λ‹¬μ„±ν•˜λ €λ©΄ HTTP μš”μ²­μ„ λ³΄λ‚΄λŠ” 방법을 μ•Œκ³ , Python으둜 μž‘μ„±λœ μ›Ήμ•° μ½”λ“œλ₯Ό 이해할 수 μžˆμ–΄μ•Ό ν•œλ‹€. λ³Έ 문제λ₯Ό 톡해 GETμš”μ²­κ³Ό POST μš”μ²­μ˜ 차이λ₯Ό ν•™μŠ΅ν•˜κ³  Python μ½”λ“œλ₯Ό ν•΄μ„ν•˜λŠ” λŠ₯λ ₯을 ν‚€μšΈ 수 μžˆλ‹€.

 

μ°Έκ³ : https://blog.naver.com/smart-brain/223129700848

 

μ›Ή νŽ˜μ΄μ§€ λ™μž‘ λ°©μ‹μ˜ κ°„λ‹¨ν•œ κ°œλ…μ„ μ‘μš©ν•œ λ¬Έμ œμ˜€λ˜ 것 κ°™λ‹€.