https://dreamhack.io/wargame/challenges/46/
php-1
phpλ‘ μμ±λ Back Office μλΉμ€μ λλ€. LFI μ·¨μ½μ μ μ΄μ©ν΄ νλκ·Έλ₯Ό νλνμΈμ. νλκ·Έλ /var/www/uploads/flag.phpμ μμ΅λλ€. Reference Server-side Basic
dreamhack.io
phpλ‘ μμ±λ Back Office μλΉμ€μ λλ€.
LFI μ·¨μ½μ μ μ΄μ©ν΄ νλκ·Έλ₯Ό νλνμΈμ. νλκ·Έλ /var/www/uploads/flag.phpμ μμ΅λλ€.
μ¬μ΄νΈμ μ μμ νλ©΄, uploads ν΄λ μμ νμΌλ€μ νμΈν μ μλ List νμ΄μ§μ
κ·Έ νμΌμ λ΄μ©μ λ€μ¬λ€λ³Ό μ μλ View νμ΄μ§κ° μμ΅λλ€.
List νμ΄μ§μμ hello.json νμΌμ ν΄λ¦νκ² λλ©΄
μ΄λ° μμΌλ‘ νμΌμ λ΄μ©μ΄ νλ©΄μ 보μ΄κ² λμ£
λ°λ©΄μ μ°λ¦¬κ° μκ³ μΆμ flag.phpλ₯Ό ν΄λ¦νλ©΄ κΆνμ΄ μλ€κ³ λΉλλ€.
λ¬Έμ μμ μ 곡ν΄μ€ μμ€ μ½λλ₯Ό λΆμν΄ λ΄ μλ€.
μ°μ view.phpλ₯Ό νμΈν΄λ³΄λ μ κ·ννμμ μ΄μ©ν΄ "/flag"λΌλ ν€μλκ° ν¬ν¨μ΄ λλ μκ°μ κΆνμ΄ μλ€κ³ μΆλ ₯νλλ‘ μ€ν¬λ¦½νΈκ° μ§μ¬ μμ΅λλ€.
μ΄μ index.php λΆμν΄λ΄ μλ€.
κ·ΈλΌ κ°μ₯ λμ λμ΄λ λΆλΆμ 24~26λ² μ€μΈλ°
νμ΄μ§λ₯Ό μ΄λν λλ μ΄λ κ² GET μμ²μΌλ‘ page κ°μ λ°μ νμ΄μ§λ₯Ό λΆλ¬μ€λ νμμ΄μμ΅λλ€.
μ΄λ₯Ό μ΄μ©νλ©΄ νλκ·Έ κ°μ νμΈν μ μμ§ μμκΉμ?
http://host1.dreamhack.games:17210/?page=../uploads/flag
URLμ μμ²λΌ μμ μ ν΄μ£Όμμ§λ§
νλκ·Έ κ°μ΄ 보μ΄κΈ°λ 컀λ "can you see $flag?"λΌλ μΆλ ₯λΏμ΄μμ΅λλ€.
λ€μν μνμ°©μ€ λμ κ²μμ ν΅ν΄μ μ΄ λ¬Έμ λ₯Ό νΈλ λ°©λ²μ μμλ΄μμ΅λλ€.
λ°λ‘ PHP Wrapperλ₯Ό μ΄μ©νλ λ°©λ²μ΄μμ΅λλ€.
PHP Wrapperλ?
URL μ€νμΌμ νλ‘ν μ½,
λνΌλ, μ€μ λ°μ΄ν°μ μμμ μ΄λ€ νμ μ‘μ μ£Όλ λ°μ΄ν° λλ λ€λ₯Έ νλ‘κ·Έλ¨μ΄ μ±κ³΅μ μΌλ‘ μ€νλλλ‘ μ€μ νλ νλ‘κ·Έλ¨μ΄λ€.
μ΄λΌκ³ νλλ°
PHP Wrapperμλ λ€μν μ’ λ₯κ° μμ΅λλ€.
php://: λ€μν I/O μ€νΈλ¦Ό μ‘μΈμ€ λ°©λ²μ λλ€.
expect://: λνμ νλ‘μΈμ€ μ€νΈλ¦Ό
zlib://: μμΆ μ€νΈλ¦Ό
μλ¬΄νΌ PHPλ₯Ό μ΄μ©ν΄ νμΌμ νν°λ§νλ€λμ§, OS λͺ λ Ήμ΄λ₯Ό μ€νμν€κ±°λ ZIP νμΌμ λ΄μ©μ μ½μ΄ λ€μ΄λ λ± λ€μν μ‘°μμ ν μκ° μμ΅λλ€.
μ΄λ² λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄μλ php://filter λΌλ κ²μ΄ νμλ‘ νλ©°,
νμΌμ base64λ‘ λ³νμ μμΌ μ°νλ₯Ό μν€λ λ°©λ²μ ν΄λ³΄κ² μ΅λλ€.
λ€μ νμ΄μ§λ‘ λμμ μ£Όμμ°½μ λ°μ μ£Όμλ₯Ό μ μ΄μ€λλ€.
/?page=php://filter/convert.base64-encode/resource=/var/www/uploads/flag
μ΄λ /var/www/uploads/flagμ νμΌμ base64λ‘ μΈμ½λ©νμ¬ include μν€λΌλ μλ―Έμ λλ€.
κ·Έλ κ² νμ΄μ§ μ΄λμ νλ©΄ μ λ§ λκ° base64μ ννλ‘ μΆλ ₯μ΄ λ κ²μ λ³΄μ€ μ μμ΅λλ€.
μ΄κ²μ λ λμ½λ©μ μμΌμ£Όμ΄μΌ νλ―λ‘, μ κ° μμ£Ό μ¬μ©νλ λμ½λ© μ¬μ΄νΈλ₯Ό μ°κ² μ΅λλ€.
Base64 Decode and Encode - Online
Decode from Base64 format or encode into it with various advanced options. Our site has an easy to use online tool to convert your data.
www.base64decode.org
λμ½λ©μ νλ μ λ§ flag.phpμ λ΄μ©μ΄ μ μΆλ ₯μ΄ λμμ΅λλ€.
μ²μμ Wrapperλ₯Ό μ°μ§ μκ³ , κ·Έλ₯ flag κ°μ νμΈν λ
can you see $flag? λ§ μΆλ ₯μ΄ λ μ΄μ κ° μ΄κ²μ΄μκ΅°μ.
μ°Έμ‘°:
https://medium.com/@qingfro9/php-%EB%9E%98%ED%8D%BC-fbd6ff06babe
PHP λνΌ
μΉν΄νΉ μ΄λ³΄λΌμ μΉμ©μ΄λ€ λ€μΌλ©΄ μ΄μ§ λ©λΆμ΄ μ¨λ€.. κ·Έμ€ λ©λͺ¨νλ PHP λνΌ?! λ₯λ―Έ? μΌλ―Έλλ¨Έλ? λͺ°λΌμ μ 리νλ€!
medium.com
https://rootable.tistory.com/entry/PHP-wrapper
PHP wrapper
1. μ΄λ‘ (1) expect:// : system command μ€ν κ°λ₯ ex) www.test.com?page=expect://ls (2) php://filter : I/O μ€νΈλ¦Όμ λ€λ£¨λλ° μ¬μ©νλ wrapperλ‘ encode/decodeλ₯Ό μ΄μ©νμ¬ μλ² λ΄ νμΌμ μ½μ μ μ..
rootable.tistory.com
'π΄CTF > DreamHack' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Dreamhack - μκ²μ, file-download-1 (0) | 2021.11.24 |
---|---|
Dreamhack - μκ²μ, XSS-1 (0) | 2021.11.22 |
Dreamhack - μκ²μ, pathtraversal (0) | 2021.11.21 |
Dreamhack - μκ²μ, csrf-1 (0) | 2021.11.21 |
Dreamhack - μκ²μ, cookie (0) | 2021.11.21 |