๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ณด์•ˆ/dreamhack

[dreamhack] basic_exploitation_001 (pwnable)

by - ์˜คํŠธ - 2021. 5. 31.

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

 

basic_exploitation_001

Description ์ด ๋ฌธ์ œ๋Š” ์„œ๋ฒ„์—์„œ ์ž‘๋™ํ•˜๊ณ  ์žˆ๋Š” ์„œ๋น„์Šค(basicexploitation001)์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์˜ ์ทจ์•ฝ์ ์„ ์ฐพ๊ณ  ์ต์Šคํ”Œ๋กœ์ž‡ํ•ด "flag" ํŒŒ์ผ์„ ์ฝ์œผ์„ธ์š”. "flag" ํŒŒ์ผ์˜ ๋‚ด์šฉ์„

dreamhack.io

1) ํ”„๋กœ๊ทธ๋žจ์˜ ์ทจ์•ฝ์  -> 2) ์ต์Šคํ”Œ๋กœ์ž‡ํ•ด "flag" ํŒŒ์ผ ์ฝ๊ธฐ

 

์‚ฌ์‹ค Environment์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ๊ทธ๋ƒฅ ์•Œ๋ ค์ฃผ๋Š” ์ •๋ณด? ๊ฐ™์€ ๊ฑฐ๋ผ ์•„๋ฌด ์˜๋ฏธ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ

๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ ๊ธฐ๋ฒ•์ด ์ ์šฉ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋‚˜๋ฆ„์˜ ์ •๋ณด๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค ๊ทธ๋Ÿฌ๋‚˜ NX ๊ธฐ๋ฒ•์€ ์ ์šฉ๋˜์–ด ์žˆ๋‹ค

 

https://kangsecu.tistory.com/138 

 

๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ๊ธฐ๋ฒ•(Memory Mitigation) for Pwn

๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ๊ธฐ๋ฒ•๋“ค์„ ๊ณต๋ถ€์ค‘์ด๋‹ค.. ๋ฌธ์ œํ’€์ด ํ•˜๋ฉด์„œ๋Š” ์•„์ง NX bit , ASLR, stack canary ์ด ์ •๋„๋ฐ–์— ๊ฒช์–ด๋ณด์ง€ ๋ชปํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋•Œ๋งˆ๋‹ค ๋ณดํ˜ธ๊ธฐ๋ฒ•๋“ค ์„ค๋ช…์ด๋ž‘ ๋ฐ”์ดํŒจ์Šค ๋“ฑ์„ ๊ณต๋ถ€ํ•ด๋ณธ ๋‚ด์šฉ์„ ์—ฌ๊ธฐ์—

kangsecu.tistory.com

 

์ ‘์† ๊ฒฐ๊ณผ : ubuntu๋ฅผ ์ด์šฉํ•ด ์ ‘์†ํ–ˆ๋”๋‹ˆ ์•„๋ฌด ๊ฒƒ๋„ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค

 

์ฝ”๋“œ ํ™•์ธ : alarm_handler(), initialize(), read_flag() ํ•จ์ˆ˜๊ฐ€ ๋‚˜์˜จ๋‹ค

buf์—์„œ 128 ๋ฐ”์ดํŠธ๋ฅผ ํ• ๋‹น ๋ฐ›์•˜๊ณ  1) gets() ํ•จ์ˆ˜์—์„œ bof ๊ณต๊ฒฉ์ด ๊ฐ€๋Šฅํ•  ๊ฑฐ๋ผ ์ƒ๊ฐ์ด ๋œ๋‹ค

์ต์Šคํ”Œ๋กœ์ž‡ํ•œ ํ›„์— ret ์ฃผ์†Œ์— read_flag์˜ ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ํ”Œ๋ž˜๊ทธ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

gdb๋ฅผ ์ด์šฉํ•ด ret_flag์˜ ์‹œ์ž‘ ์ฃผ์†Œ 0x080485b9๋ฅผ ์•Œ์•„๋ƒˆ๋‹ค

https://jiravvit.tistory.com/entry/Buffer-Overflow-Return-Address-Overwrite-%EC%8B%A4%EC%8A%B5-1

 

[Buffer Overflow] Return Address Overwrite ์‹ค์Šต - (1)

์ฐธ๊ณ  : dreamhack.io ํ™˜๊ฒฝ : ubuntu 16.04.7 Buffer Overflow๋ž€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ• ๋‹นํ•œ ํฌ๊ธฐ์˜ ๋ฒ„ํผ๋ณด๋‹ค ๋” ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‹ค๋ฅธ ์˜์—ญ์„ ์˜ค์—ผ์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ์•…์šฉํ•œ๋‹ค๋ฉด ์–ด๋”˜๊ฐ€์— ๊ธฐ๊ณ„์–ด

jiravvit.tistory.com

์ด ๋งํฌ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด

 

buf[0x80](128๋ฐ”์ดํŠธ)

stack frame pointer(4๋ฐ”์ดํŠธ)

return address

 

๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์„ ๊ฒƒ์ด๋‹ค

-> return address์— read_flag ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ ์งœ๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค(์ต์Šคํ”Œ๋กœ์ž‡)

 

buf์™€ sfp๊นŒ์ง€(์ด 132๋ฐ”์ดํŠธ) ์•„๋ฌด ๊ฐ’์ด๋‚˜ ๋„ฃ์–ด์ค€ ํ›„์— read_flag ํ•จ์ˆ˜ ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด์คฌ๋‹ค

 

 

์ฝ”๋“œ ์ž‘์„ฑ ํ›„ ์‹คํ–‰ํ•˜๋ฉด ํ”Œ๋ž˜๊ทธ ๊ฐ’์ด ๋‚˜์˜จ๋‹ค!

 

'๋ณด์•ˆ > dreamhack' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[dreamhack] basic_exploitation_000 (pwnable)  (2) 2021.05.31
[dreamhack] welcome (pwnable)  (0) 2021.05.26
[dreamhack] xss-1 (web)  (0) 2021.05.24
[dreamhack] file-download-1 (web)  (0) 2021.05.24
[dreamhack] ์‹ค์Šต ํ™˜๊ฒฝ ๊ตฌ์ถ•  (0) 2021.05.24