http://www.hackerschool.org/HS_Boards/zboard.php?id=bof_fellowship&no=91 [º¹»ç]
fake ebp¸¦ ¾Ë±âÀ§ÇØ ¸î°¡Áö Å×½ºÆ®¸¦ ÇÏ°íÀÖ½À´Ï´Ù.
°£´ÜÇÑ ±¸Á¶ÀÇ bof ÇÁ·Î±×·¥À» Çϳª µÎ°í..Å×½ºÆ®¸¦ÇÏ°íÀÖ½À´Ï´Ù.
buffer40byte sfp ret
ÀÌ·±±¸Á¶¸¦ °¡Áö°í ´Ü¼øÈ÷ argv[1]ÀÇ °ªÀ» buffer¿¡ strcpyÇÏ´Â ±¸Á¶ÀÔ´Ï´Ù.
óÀ½¿¡ °¡Á³´ø ½Ã³ª¸®¿À´Â
buffer sfp ret
dummy40byte + \x45\x45\x45\x41 + (1)
(1) ÇØ´ç ÇÁ·Î±×·¥À» gdb·Î disassÇßÀ» ¶§ main()»ó¿¡ ³ª¿À´Â leaveÀÇ ÁÖ¼Ò
ÀÌ·¸°Ô ³Ö´Â °ÍÀä.
gdb·Î leave¿¡ break pointer¸¦ °É°í si·Î ÇѴܰ辿 ÁøÇàÇÏ¸é¼ ·¹Áö½ºÅ͵éÀÇ º¯È¸¦ º¸°í ÀÖ¾ú½À´Ï´Ù.
óÀ½¿¡ Á¦ »ý°¢´ë·Î¶ó¸é,
1. leave¸¦ ¼öÇàÇÏÀÚ
ÇöÀç ebpÀÇ °ªÀÌ esp¿¡ µ¤¾î¾º¾îÁö°í, ½ºÅÃÀÇ °ªÀÌ popµÇ¸é¼ ebp·Î µé¾î°£´Ù.
ÀÌ °úÁ¤¿¡¼ ebp´Â \x45\x45\x45\x41ÀÌ µÇ°í,
esp´Â pop¶§¹®¿¡ +4µÇ¾î¼ °á±¹ leaveÀüÀÇ ebp+4ÀÇ °ªÀÌ µÇ¾ú´Ù.
2. retÀ» µ¤¾ú±â ¶§¹®¿¡ À̺κп¡¼ eip¿¡ mainÇÔ¼öÀÇ leave ÀÇ ÁÖ¼Ò°¡ µé¾î°¡¼ ´Ù½ÃÇѹø leave°¡ ÀϾÙ.
3. ±×·³ ´Ù½Ã Çѹø leave°¡ µÇ¾î¼.
ÇöÀç ebp(\x45\x45\x45\x41) ÀÌ esp¿¡ µ¤¾î¾º¾îÁø´Ù.
ÇöÀç ½ºÅðªÀÌ ebp·Î µé¾î°£´Ù(¹¹°¡ µé¾î°¡µç »ó°ü¾øÀ½)
popµÇ¸é¼ ebp+4Çؼ \x45\x45\x45\x45°¡ esp¿¡ µé¾î°¡°ÔµÇ°í ret¿¡¼
4.esp¸¦ eip·Î ÂüÁ¶Çϱ⶧¹®¿¡ ´ÙÀ½´Ü°èÀÇ eip´Â 0x45454545 ¸¦ ¸¸µå´Â °ÍÀÌ ÃÖÁ¾ÀûÀÎ ¸ñÇ¥¿´½À´Ï´Ù.
ÇÏÁö¸¸!!!!!
2¹ø °úÁ¤ÀÌ ¾ÈµÇ´õ±º¿ä. eip°¡ ÇöÀç ÇÔ¼öÀÇ leave ÄÚµå ºÎºÐÀ» °¡¸®Å°°íÀÖÀ½¿¡µµ ºÒ±¸ÇÏ°í(½ÇÁ¦·Î È®ÀÎÇß½À´Ï´Ù) SIGSEGV ¸¦ ¹Þ¾Ò´Ù°í ³ª¿À´õ±º¿ä.
°á±¹ ÂüÁ¶ÇÒ¼ö¾ø´Â ÁÖ¼Ò¶ó´Â ¼Ò¸® ¾Æ´Ñ°¡¿ä?
¾Æ¹«¸® »ý°¢Çصµ ÀÌÇØ°¡ µÇÁö¾Ê½À´Ï´Ù. ºÐ¸íÈ÷ eip´Â ´ÙÀ½ ÀνºÆ®·°¼ÇÀ» ³ªÅ¸³»´Â ÁøÇà¸ñÇ¥Á¡À» ´ã°íÀÖ´Â ·¹Áö½ºÅÍÀÌ°í..±×¾È¿¡ ³»°¡¿øÇÏ´Â ÁÖ¼Ò°¡ ´ã°ÜÀִµ¥µµ ºÒ±¸ÇÏ°í, ±×°÷À¸·Î °¡Áö ¸øÇÑ´Ù´Ï¿ä.
¹¹°¡ À߸øµÈ °É±î¿ä ¤Ð |
Hit : 2270 Date : 2010/03/31 08:46
|