½Ã½ºÅÛ ÇØÅ·

 1576, 1/79 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   hsuser
   buffer overflow Áú¹®

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1687 [º¹»ç]


buffer overflow ¿¡ ´ëÇØ Çб³¿¡¼­ ¼ö¾÷À» µè°í °úÁ¦¸¦ Çϰí ÀÖ½À´Ï´Ù.

°úÁ¦ ³»¿ëÀº   example À̶õ ÇÔ¼ö¿¡ getsÇÔ¼ö°¡ ÀÖ½À´Ï´Ù.

getsÇÔ¼ö È£Ã⠽à ½ºÆ®¸µÀ» ÀÔ·ÂÇÏ¿© ¹öÆÛ ¿À¹öÇ÷ο츦 ¹ß»ý½Ãŵ´Ï´Ù

¸ñÀûÀº Àü¿ªº¯¼ö¸¦ ÃʱâÈ­ Çϰí ÁöÁ¤µÈ ÇÔ¼ö ¿©±â¼± test¸¦ ºÒ·¯ ÇÁ·Î±×·¥À»  Á¾·á½ÃŰ´Â °ÍÀÔ´Ï´Ù.

int a = 0;  //Àü¿ªº¯¼ö

int test(int val)
{
      if(a==b)
          ÇÁ·Î±×·¥Á¾·á
}

b °ªÀº ÀÓÀÇ·Î °úÁ¦¿¡¼­ Á¤ÇØÁØ °ªÀ¸·Î ÇÕ´Ï´Ù

¿©±â¼­ Àü¿ªº¯¼ö a°ªÀ» ¹öÆÛ¿À¹öÇ÷ο츦 ÀÌ¿ëÇØ b °ªÀ¸·Î ÃʱâÈ­¸¦ ÇÑ ´ÙÀ½¿¡

testÇÔ¼ö¸¦ È£Ãâ½ÃÄÑ ÇÁ·Î±×·¥À» Á¾·á½ÃÄÑ¾ß ÇÕ´Ï´Ù. Val°ªÀº ¾î¶²°ªÀÌµç »ó°ü¾ø½À´Ï´Ù

¿©±â¼­ Àü¿ªº¯¼ö¸¦ ÃʱâÈ­ ÇÏ´Â ¹æ¹ýÀ» Àß ¸ð¸£°Ù½À´Ï´Ù


  Hit : 3946     Date : 2013/06/13 01:39



    
Silk Áú¹®ÀÌ ÀÌÇØ°¡ Àß ¾ÈµÇ³×¿ä.
Àü¿ªº¯¼ö ÃʱâÈ­´Â ¿Ö Çϳª¿ä? canary¿ìȸ¿ëÀΰ¡¿ä? ±×·¡µµ ÀÌÇØ°¡ Àß ¾È°¡±¸¿ä.
Á¤È®ÇÑ ¼Ò½º³ª ¾ÕµÚ ¹®¸ÆÀÌ ´õ ÀÖÀ¸¸é ÁÁ°Ú³×¿ä
2013/06/13  
hsuser Á˼ÛÇÕ´Ï´Ù ¼öÁ¤Çß½À´Ï´Ù 2013/06/13  
bmc12 Àü¿ª º¯¼ö ÃʱâÈ­??

int test(int val) <= ¿©±â¼­ val´Â ¿Ö ¼±¾ðµÈ °ÅÁÒ?


2013/06/14  
psh34 Àú¸¸ ÀÌÇØ°¡ ¾È°¡´Â°Ô ¾Æ´Ï¾ú±º¿ä. 2013/06/14  
hsuser ;;Á¦°¡ Áú¹®±ÛÀ» Á¤¸» ¸ø¾²´Â±º¿ä ¤Ð¤Ð val°ªÀº¾Æ¹«°ªÀ̳ª³Ö¾îµµµË´Ï´Ù
°á·ÐÀº Àü¿ªº¯¼ö a¸¦ b·Î ÃʱâÈ­½ÃŲ´ÙÀ½¿¡ testÇÔ¼ö¸¦ ºÒ·¯¾ßÇϴµ¥ ¹æ¹ýÀ»
À߸𸣰ٽÀ´Ï´Ù
2013/06/14  
Silk À½...°ü°ÇÀº a¸¦ b¶ó´Â °ªÀ¸·Î ÃʱâÈ­ ½ÃŰ´Â°Å°Ú³×¿ä.
¹öÆÛ¿À¹öÇ÷ο찡 ¾î¶»°Ô ÀϾ´Â°ÇÁö´Â Àß ¸ð¸£°ÚÀ¸³ª,
ÀϹÝÀûÀÎ strcpy ÇÔ¼öµîÀ¸·Î ÀϾ´Â Ãë¾àÁ¡À̶ó¸é,

return address¿¡ strcpyÀÇ plt¸¦ È£ÃâÇØ¼­ a¶ó´Â Àü¿ªº¯¼ö¿¡ °ªÀ» µ¤¾î ¾º¿ì°í, testÇÔ¼ö¸¦ È£ÃâÇϸéµË´Ï´Ù.

Á¤È®È÷ ¹«½¼¸»ÀÎÁö ¾Æ½Ã·Á¸é RTL ¿¡ ´ëÇØ¼­ ¾Æ¼Å¾ß Çϰí, RTLÀ» ÀÌÇØÇϼ̴ٸé RTL ChainÀ» ¿¬°áÇÑ´Ù´Â°Ô ¹«½¼¸»ÀÎÁö ¾Ë ¼ö ÀÖÀ¸½Ç °Ì´Ï´Ù.

Áï,¹öÆÛ¿À¹öÇ÷ο츦 ÀÏÀ¸Å°±â À§ÇÑ Ãë¾àÁ¡ÀÌ strcpy¶ó¸é ÆäÀ̷εå´Â


[¿À¹öÇ÷ο츦 ÀÏÀ¸Å°±âÀ§ÇÑ ¹öÆÛ(n¹ÙÀÌÆ®) + EBP(4¹ÙÀÌÆ®) + strcpy@plt + testÇÔ¼öÁÖ¼Ò + Àü¿ªº¯¼öaÀÇÁÖ¼Ò + bÀÇ ÁÖ¼Ò
ÀÌ·¸°Ô ±¸¼ºÇÏ½Ã¸é µË´Ï´Ù.
±×·¯¸é strcpy(a,b) , test() °¡ È£ÃâµÇ¾î ¿øÇϽôµ¥·Î ÀÛµ¿ÇÒ°Ì´Ï´Ù.

b°¡ »ó¼öÀÎÁö º¯¼öÀÎÁö ¸ð¸£°ÚÀ¸³ª, »ó¼ö¶ó¸é b°ªÀ» ¹öÆÛ³ª argv , ȯ°æº¯¼ö µî¿¡ Áý¾î³Ö°í ÇØ´ç ÁÖ¼Ò¸¦ ³ÖÀ¸½Ã¸é µË´Ï´Ù. b ¿ª½Ã Àü¿ªº¯¼ö¶ó¸é ¹®Á¦µÉ°Ô ¾øÁö¸¸ Áö¿ªº¯¼ö°Å³ª »ó¼ö¶ó¸é aslrÀÌ °É·ÁÀÖ´Â »óȲ¿¡¼­´Â ¾à°£ÀÇ ³ë·ÂÀÌ ´õ ÇÊ¿äÇÕ´Ï´Ù.nx³ª dep°¡ °É·ÁÀÖ´Ù¸é rop¸¦ ÇØ¾ßÇÒÅ×°í, ½ºÅÿ¡ ½ÇÇà±ÇÇÑÀÌ ÀÖ´Ù¸é ½©ÄÚµå·Î ´ëÃæ ó¸®Çعö¸± ¼ö ÀÖ½À´Ï´Ù.
2013/06/14  
hsuser ¹Ì¼÷ÇÑ Áú¹®¿¡µµ ´äº¯ÇØÁֽŠSilk´Ô ´äº¯ °¨»çµå¸³´Ï´Ù :)
°úÁ¦¿¡¼­ b°ªÀº ÀúÀÇ ÇйøÀ¸·Î Á¤ÇØÁ® ÀÖ°í a¸¦ Á¦ ÇйøÀ¸·Î¸¸ ÃʱâÈ­ ÇÏ¸é µÇ´Â°ÍÀÔ´Ï´Ù.
°á±¹ °úÁ¦´Â a=Çйø À¸·Î ¸¸µé°í testÇÔ¼ö¸¦ ½ÇÇà½Ã۸é ÇÁ·Î±×·¥ÀÌ Á¾·áµÇ´Â °ÍÀε¥
strcpy¹æ¹ý ¸»°í´Â ¶Ç ´Ù¸¥ ¹æ¹ýÀÌ ÀÖ³ª¿ä?

return address¼½¼ÇÀÌ callÇÑ À§Ä¡¿¡¼­ÀÇ ´ÙÀ½ instructionÀ» °¡¸®Å°´Â °ÍÀ¸·Î ¾Ë°í ÀÖ½À´Ï´Ù.
return address¿¡ ÀúÀåµÈ °ªÀÌ °¡¸®Å°´Â instructionÀ» '½ÇÇà'½ÃŲ´Ù°í º¸´Âµ¥ À̰³³äÀÌ ¸Â´Â°Ç°¡¿ä?
Ȥ½Ã ºó½ºÅÿ¡ instruction°ªÀ» ³Ö¾î³õÀº »óÅ¿¡¼­ ±× ºÎºÐÀ» °¡¸®Å°´Â ÁÖ¼Ò°ªÀ» return address¼½¼Ç¿¡ ÀúÀåÇÏ¿©
ÇØ´ç instructionÀ» ½ÇÇà½ÃŰ´Â ¹æ¹ýµµ ÀÖ³ª¿ä?
2013/06/14