728x90

๐Ÿ™‹

Nana told me that buffer overflow is one of the most common software vulnerability. Is that true?

Download : http://pwnable.kr/bin/bof
Download : http://pwnable.kr/bin/bof.c


Running at : nc pwnable.kr 9000

Buffer OverFlow ๊ด€๋ จ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™๋‹ค.

 

์šฐ์„  BOF์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

Buffer OverFlow(BOF)๋ž€?

ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ๋ฒ”์œ„๋ฅผ ๋„˜์–ด์„  ์œ„์น˜์— ์ž๋ฃŒ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ธ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.
์˜ค์ž‘๋™ ๋˜๋Š” ์•…์˜์  ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ์ฃผ์†Œ๋กœ ์ ‘์†ํ•ด์„œ bof.c ํŒŒ์ผ์„ ์„ค์น˜ ํ›„ ํ™•์ธํ•ด๋ณด์ž.

์ฝ”๋“œ๋ฅผ ์ฝ์–ด๋ณด์ž.

 

0xdeadbeef๋ฅผ ์ธ์ž๋กœ func ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

 

๋‹ค์Œ์œผ๋กœ๋Š” func ํ•จ์ˆ˜๋ฅผ ๋ณด์ž.

 

gets ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด overflowme ๋ณ€์ˆ˜์— ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค.

 

๋งŒ์•ฝ ์ž…๋ ฅ๋ฐ›์€ ์ธ์ž(key)๊ฐ€ 0xcafebabe๋ฉด ์…ธ์„ ์‹คํ–‰ํ•œ๋‹ค.

 

๋”ฐ๋ผ์„œ flag๋ฅผ ์–ป์œผ๋ ค๋ฉด gets ํ•จ์ˆ˜ ์ทจ์•ฝ์ ์„ ํ†ตํ•ด BOF๋ฅผ ์ผ์œผ์ผœ key๊ฐ’์„ ๋ฎ์–ด์ค˜์•ผ ํ•œ๋‹ค.

 

gdb๋กœ bof ํŒŒ์ผ์„ ๋ถ„์„ํ•ด๋ณด์ž.

* intel ๋ฌธ๋ฒ•์œผ๋กœ ์ž‘์„ฑ๋œ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด์ด๋‹ค.

main ํ•จ์ˆ˜

call ๋ช…๋ น์–ด๋กœ func ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

func ํ•จ์ˆ˜

func ํ•จ์ˆ˜์—์„œ๋Š” call ๋ช…๋ น์–ด๊ฐ€ 4๋ฒˆ ์“ฐ์ธ๋‹ค.

์ˆœ์„œ๋Œ€๋กœ printf(), gets(), system(), printf() ํ•จ์ˆ˜์ผ ๊ฒƒ์ด๋‹ค.

gets ํ•จ์ˆ˜ ๋ถ€๋ถ„

gets ํ•จ์ˆ˜ ๋ถ€๋ถ„์„ ๋ณด๋ฉด overflowme์— ์œ„์น˜๋Š” ebp-0x2c์ธ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

if๋ฌธ ๋ถ€๋ถ„

if๋ฌธ ๋ถ€๋ถ„์„ ๋ณด๋ฉด key์— ์œ„์น˜๋Š” ebp+0x8์ธ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‘ ์ฃผ์†Œ ๊ฐ„ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•ด๋ณด์ž.

๋‘ ์ฃผ์†Œ ๊ฐ„ ๊ฑฐ๋ฆฌ๋Š” 52byte์ธ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ overflowme์— 52byte๋ฅผ ์ฑ„์šฐ๊ณ  cafebabe๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋ฉด if๋ฌธ ์กฐ๊ฑด์— ์ถฉ์กฑํ•ด ์…ธ์„ ํš๋“ํ•  ๊ฒƒ์ด๋‹ค.

 

ํŒŒ์ด์ฌ ์ต์Šคํ”Œ๋กœ์ž‡ ํ”„๋ ˆ์ž„์›Œํฌ์ธ pwntools์„ ์‚ฌ์šฉํ•ด๋ณด์ž.

๊ทธ๋ฆฌ๊ณ  ์ž‘์„ฑํ•œ bof.py๋ฅผ ์‹คํ–‰ํ•ด๋ณด์ž.

์…ธ์„ ํš๋“ํ•˜์˜€๋‹ค.

ls ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์šฉ ๋ชฉ๋ก์„ ํ™•์ธํ•ด๋ณด์ž.

์—ฌ๋Ÿฌ ํŒŒ์ผ ์ค‘ flag ํŒŒ์ผ์ด ๋ณด์ธ๋‹ค.

flag ํŒŒ์ผ์„ ํ™•์ธํ•ด๋ณด์ž.

flag๊ฐ€ ์ถœ๋ ฅ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


FLAG : daddy, I just pwned a buFFer :)


728x90

'๐™‹๐™ฌ๐™ฃ๐™–๐™—๐™ก๐™š ๐Ÿ’ป > Pwnable.kr WriteUp' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ Pwnable.kr ] collision  (0) 2022.07.31
[ Pwnable.kr ] fd  (0) 2022.07.30
๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค!