λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
🏴CTF/DreamHack

Dreamhack - μ›Œκ²Œμž„, image-storage

by Janger 2021. 11. 24.
728x90
λ°˜μ‘ν˜•

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

 

image-storage

php둜 μž‘μ„±λœ 파일 μ €μž₯ μ„œλΉ„μŠ€μž…λ‹ˆλ‹€. 파일 μ—…λ‘œλ“œ 취약점을 μ΄μš©ν•΄ ν”Œλž˜κ·Έλ₯Ό νšλ“ν•˜μ„Έμš”. ν”Œλž˜κ·ΈλŠ” /flag.txt에 μžˆμŠ΅λ‹ˆλ‹€. Reference Server-side Basic

dreamhack.io

 

php둜 μž‘μ„±λœ 파일 μ €μž₯ μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

 

 

 

 

upload νŽ˜μ΄μ§€λ‘œ κ°€λ©΄ νŒŒμΌμ„ μ—…λ‘œλ“œν•  수 μžˆλŠ” νŽ˜μ΄μ§€κ°€ 좜λ ₯이 λ˜λŠ”λ°

 

* μ΄κ³³μ—μ„œλŠ” μ—…λ‘œλ“œν•  νŒŒμΌμ— λŒ€ν•œ μ–΄λ– ν•œ 검증이 이루어지지 μ•Šκ³  μžˆμŠ΅λ‹ˆλ‹€. 

 

즉, .exe, .php, .bat 같은 λ―Όκ°ν•œ ν™•μž₯자λ₯Ό 가진 νŒŒμΌλ“€λ„ λ§ˆμŒλŒ€λ‘œ μ—…λ‘œλ“œκ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€. 

 

μ „ 이곳에 κ°„λ‹¨ν•œ μ›Ήμ‰˜μ„ μ—…λ‘œλ“œ ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 

 

 

 

μ›Ήμ‰˜μ΄λž€?

μ„œλ²„ μ‚¬μ΄λ“œ 슀크립트 μ–Έμ–΄λ‘œ μž‘μ„±λœ(php, jsp, node.js λ“±) 파일 ν˜•νƒœμ΄λ©°, 

μ‹œμŠ€ν…œ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ μ‹œν‚€λŠ” κΈ°λŠ₯을 가지고 μžˆμ–΄μ„œ, μ„œλ²„μ—κ²Œ μ‹œμŠ€ν…œ λͺ…λ Ήμ–΄λ₯Ό μ „λ‹¬ν•˜κ³  κ²°κ³Όλ₯Ό 좜λ ₯ν•  수 μžˆλŠ” μ›Ή μ‰˜(Web Shell)

 

μ§€κΈˆ μ›Œκ²Œμž„ μ‚¬μ΄νŠΈλŠ” php μ–Έμ–΄λ₯Ό μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ—, php둜 μž‘μ„±λœ μ›Ήμ‰˜μ„ μ—…λ‘œλ“œν•˜μ˜€μŠ΅λ‹ˆλ‹€.

 

 

μ—…λ‘œλ“œν•œ νŒŒμΌλ“€μ„ Listμ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€. 

 

μ €κ³³μ—μ„œ 방금 올린 μ›Ήμ‰˜λ‘œ 접속을 μ‹œλ„ν•˜κ² μŠ΅λ‹ˆλ‹€. (simple.php)

 

 

μ›Ήμ‰˜μ— 접속이 μ„±κ³΅ν–ˆμŠ΅λ‹ˆλ‹€. 

 

λ¦¬λˆ…μŠ€ λͺ…령어도 잘 μž‘λ™ν•©λ‹ˆλ‹€. 

 

 

ν”Œλž˜κ·Έ 값을 μ•ŒκΈ° μœ„ν•΄ cat λͺ…λ Ήμ–΄λ‘œ flag.txtλ₯Ό 좜λ ₯ν•΄ λ³΄μ•˜μŠ΅λ‹ˆλ‹€. 

 

μ—­μ‹œ 잘 λ‚˜μ˜΅λ‹ˆλ‹€.

728x90
λ°˜μ‘ν˜•