ROP Chain 1

[Return Oriented Programming]

์‚ฌ์šฉ ๋ฐฐ๊ฒฝ๊ณผ ๋ชฉ์  system ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•ด ์…ธ์„ ํš๋“ํ•˜๊ณ ์ž system ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ์•Œ๊ณ ์‹ถ์€๋ฐ,ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ด ํ•จ์ˆ˜๊ฐ€ ํ™œ์šฉ๋˜์ง€ ์•Š๊ณ , ์‹ฌ์ง€์–ด ASLR ๊ธฐ๋ฒ•์ด ์ ์šฉ๋ผ ์žˆ๋Š” ๋ฐ”๋žŒ์— ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ์Šคํƒ, ํž™, ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ์˜ ์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€๋‹ค๋ฉด,์šฐ๋ฆฌ๋Š” ์ข€๋” ๋จผ๊ธธ์„ ๋Œ์•„ ์ฃผ์†Œ๋ฅผ ์–ป์–ด์•ผ ํ•œ๋‹ค.: ํ”„๋กœ์„ธ์Šค์—์„œ libc๊ฐ€ ๋งคํ•‘๋œ ์ฃผ์†Œ๋ฅผ ์ฐพ์€ ๋’ค,์ด ์ฃผ์†Œ๋กœ๋ถ€ํ„ฐ system ํ•จ์ˆ˜๊นŒ์ง€์˜ offset์„ ๊ตฌํ•ด์„œ,์ตœ์ข…์ ์œผ๋กœ system ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ์–ป๊ธฐ libc.so.6 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” system ํ•จ์ˆ˜ ๋ฟ ์•„๋‹ˆ๋ผ ์ด ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ํ˜ธ์ถœํ•˜๋Š” read, puts, printf๋„ ์ •์˜๋˜์–ด ์žˆ๋Š”๋ฐ,๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ์€ ๋ฉ”๋ชจ๋ฆฌ์— ๋งคํ•‘๋  ๋•Œ ์ „์ฒด๊ฐ€ ๋งคํ•‘๋˜๋ฏ€๋กœ, read, puts, printf ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ system ํ•จ์ˆ˜๋„ ..