https://dreamhack.io/wargame/challenges/3/
1) ํ๋ก๊ทธ๋จ์ ์ทจ์ฝ์ -> 2) ์ต์คํ๋ก์ํด "flag" ํ์ผ ์ฝ๊ธฐ
์ฌ์ค Environment์ ๋ํ ๋ด์ฉ์ ๊ทธ๋ฅ ์๋ ค์ฃผ๋ ์ ๋ณด? ๊ฐ์ ๊ฑฐ๋ผ ์๋ฌด ์๋ฏธ ์๋ค๊ณ ์๊ฐํ๋๋ฐ
๋ฉ๋ชจ๋ฆฌ ๋ณดํธ ๊ธฐ๋ฒ์ด ์ ์ฉ๋์ง ์์๋ค๋ ๋๋ฆ์ ์ ๋ณด๋ฅผ ์ ์ ์๋ค ๊ทธ๋ฌ๋ NX ๊ธฐ๋ฒ์ ์ ์ฉ๋์ด ์๋ค
https://kangsecu.tistory.com/138
์ ์ ๊ฒฐ๊ณผ : 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
์ด ๋งํฌ์์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด
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 |