Overwriting a freed chunk

HackTricks ์ง€์›

์ œ์•ˆ๋œ ํž™ ์•…์šฉ ๊ธฐ๋ฒ• ์ค‘ ๋ช‡ ๊ฐ€์ง€๋Š” ํ•ด์ œ๋œ ์ฒญํฌ ๋‚ด๋ถ€์˜ ํฌ์ธํ„ฐ๋ฅผ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŽ˜์ด์ง€์˜ ๋ชฉํ‘œ๋Š” ์ด๋Ÿฌํ•œ ์•ก์„ธ์Šค๋ฅผ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ž ์žฌ์  ์ทจ์•ฝ์ ์„ ์š”์•ฝํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค:

๋‹จ์ˆœ Use After Free

๊ณต๊ฒฉ์ž๊ฐ€ ํ•ด์ œ๋œ ์ฒญํฌ์— ์ •๋ณด๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋‹ค๋ฉด, ํ•„์š”ํ•œ ํฌ์ธํ„ฐ๋ฅผ ๋ฎ์–ด์“ฐ๊ธฐ ์œ„ํ•ด ์ด๋ฅผ ์•…์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ค‘ ํ•ด์ œ(Double Free)

๊ณต๊ฒฉ์ž๊ฐ€ **๋™์ผํ•œ ์ฒญํฌ๋ฅผ ๋‘ ๋ฒˆ free**ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด(๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์‚ฌ์ด์— ๋‹ค๋ฅธ ์ฒญํฌ๋ฅผ ํ•ด์ œ) ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ๋™์ผํ•œ bin์— 2๋ฒˆ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด, ์‚ฌ์šฉ์ž๊ฐ€ ๋‚˜์ค‘์— ํ•ด๋‹น ์ฒญํฌ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ํ•„์š”ํ•œ ํฌ์ธํ„ฐ๋ฅผ ์“ฐ๊ณ  ๋‹ค์‹œ ํ• ๋‹นํ•˜์—ฌ ํ•ด๋‹น ์ฒญํฌ๊ฐ€ ํ• ๋‹น๋˜๋Š” ๋™์ž‘์„ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: fast bin ๊ณต๊ฒฉ, tcache ๊ณต๊ฒฉ...).

ํž™ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ

ํ• ๋‹น๋œ ์ฒญํฌ๋ฅผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์‹œํ‚ค๊ณ  ๊ทธ ๋‹ค์Œ์— ํ•ด์ œ๋œ ์ฒญํฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋”/ํฌ์ธํ„ฐ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Off-by-one ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ

์ด ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋‹ค์Œ ์ฒญํฌ์˜ ํฌ๊ธฐ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” ์ด๋ฅผ ์•…์šฉํ•˜์—ฌ ํ• ๋‹น๋œ ์ฒญํฌ์˜ ํฌ๊ธฐ๋ฅผ ๋” ํฌ๊ฒŒ ๋งŒ๋“ค์–ด **free**ํ•˜๊ณ , ์ฒญํฌ๊ฐ€ ๋‹ค๋ฅธ ํฌ๊ธฐ(๋” ํฐ ํฌ๊ธฐ)์˜ bin์— ์ถ”๊ฐ€๋˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฐ€์งœ ํฌ๊ธฐ๋ฅผ ํ• ๋‹นํ•˜๋ฉด ๊ณต๊ฒฉ์ž๋Š” ์‹ค์ œ๋ณด๋‹ค ํฐ ํฌ๊ธฐ์˜ ์ฒญํฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด, ๋”ฐ๋ผ์„œ ์ค‘์ฒฉ๋œ ์ฒญํฌ ์ƒํ™ฉ์— ์•…์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํž™ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์™€ ๋™์ผํ•˜๊ฒŒ ์•…์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค(์ด์ „ ์„น์…˜ ํ™•์ธ).

HackTricks ์ง€์›

Last updated