| Silk |
Á¦°¡ ÀÌÇØÇÑ ¹Ù·Î´Â getbuf¿¡¼ getbufÇÔ¼öÀÇ Áö¿ªº¯¼öÀÎ buf¿¡ ¿À¹öÇ÷ο츦 ÀÏÀ¸Å³¼ö ÀÖ´Ù´Â ¸» °°°í,,
¿À¹öÇ÷ο츦 ÀÏÀ¸Å°¸é return address¸¦ µ¤À» ¼ö ÀÖÀ¸´Ï±î À̸¦ ÀÌ¿ëÇØ¼ return value¸¦ ¼öÁ¤Çϰí½Í´Ù..ÀÌ·±°Å °°³×¿ä.
ÀÏ´Ü return value´Â Ç×»ó eax·Î µé¾î°¡°í ÈÄ¿¡ ³ª¿À´Â val1 , val2ÀÇ ºñ±³µµ ¼±¾ðµÈ º¯¼ö°¡ ¾Æ´Ï¶ó,
eax == »ó¼ö(Çйø) ÀÌ·±½ÄÀÏ °Í °°³×¿ä.
±×·¸´Ù¸é getbufÇÔ¼ö¸¦ overflow½ÃÄѼ ½©Äڵ带 ½ÇÇàÇÏ°Ô ÇÏ¸é µË´Ï´Ù.
°úÁ¦ÀÇ Á¦ÇÑ»çÇ×ÀÌ ¶Ç ¹¹°¡ ÀÖ´ÂÁö ¸ð¸£°ÚÁö¸¸ DEP³ª ASLR µîÀÌ °É·ÁÀÖÁö ¾Ê´Ù¸é
´Ü¼øÈ÷ ½©Äڵ带 buf¿¡ ¿Ã·Á¼ ½ÇÇà½ÃŰ´Â°Ô °¡´ÉÇÕ´Ï´Ù.
½©ÄÚµåÀÇ ³»¿ëÀº
mov eax, »ó¼ö(Çйø) ; call [ getbuf ÇÔ¼öÀÇ È£ÃâÀÌ ³¡³ ¹Ù·Î Á÷ÈÄ instructionÁÖ¼Ò ]
°¡ µÇ¸é µË´Ï´Ù.
½ºÅÃÇÁ·¹ÀÓÀÌ 4¹ÙÀÌÆ®°í objdump·Î º¸´Ï±î 5¹ÙÀÌÆ® ¸í·Éµµ ÀÖ´Ù.. ¸Ó ÀÌ·± ¸»¾¸À» Çϼ̴µ¥.
Á¦ »ý°¢¿£ ÀÌ ºÎºÐÀº ¾ÆÁ÷ ¾î¼Àºí¸®³ª ½Ã½ºÅÛ ¾ÆÅ°ÅØÃÄ¿¡ ´ëÇÑ ÀÌÇØ°¡ ºÎÁ·ÇϽŠ°Í °°½À´Ï´Ù. |
2013/06/21 |
|