|  |
| |
| pwnnnt |
1.
½ºÅØ ¿¡Çʷαװ¡ ³¡³ª°í RET(pop eip, jmp eip)¸¦ ¸¸³¯ ¶§, ½ºÅà ÃÖ»ó´Ü(esp)¿¡´Â ÇØÄ¿°¡ ¹Ù²ã³õÀº ÇÔ¼ö ÁÖ¼Ò°¡ µÇ¾îÀÖ°ÚÁÒ. ±×¸®°í ÇÔ¼ö ÁøÀÔÀ» Çϸç ÇÁ·Ñ·Î±× °úÁ¤À» ¸¶Ä¡¸é »õ·Î¿î ½ºÅØ ÇÁ·¹ÀÓÀÌ Çü¼º µË´Ï´Ù.
¸¸¾à ret¿¡ writeÀÇ plt ÁÖ¼Ò¸¦ µ¤´Â´Ù °¡Á¤ÇÏ¸é ´ÙÀ½°ú °°½À´Ï´Ù.
payload = plt["write"] | writeÇÔ¼öÀÇ RET(pop3ret) | write(argv1) | write(argv2) | write(argv3) | RTLµÉ ÇÔ¼ö ÁÖ¼Ò | RTL. ret | .....
RET¸¦ ¸¸³ª±âÀü.
Low High
| RET | pop3ret | argv1 | argv2 | argv3 | RTL | pop.... [ret] | ....
|write.plt | pop3ret | argv1 | argv2 | argv3 | RTL | pop... [ret] |....
RET¸¦ ¸¸³ª Write ÇÔ¼ö¸¦ ÁøÀÔÇÏ¿´À» ¶§.
Low High
| write() stack | SFP | pop3ret | ebp+8 | ebp + 12 | ebp + 16 | RTL | pop ....[ret]|....
| write() stack | SFP | pop3ret | argv1 | argv2 | argv3 | ......
¤Ó¤±¤¤¿ì¸®¾Ï´©¸°¤±
¼³¸íÇϱâ Èûµå³×¿ä...
ÇØÄð·¯´Ô ±â´Ù¸®½Ã¸é µÉ µí ÇÕ´Ï´Ù.. |
2017/03/31 |
|
| pwnnnt |
RET¸¦ ¸¸³ª°í write()ÇÔ¼ö·Î ÁøÀÔÇßÀ» ¶§ ÃÖ»ó´ÜÀÇ °ªÀÌ pop3retÀÌ ¿´Áö¸¸, ÇÁ·Ñ·Î±× °úÁ¤À» °ÅÄ¡¸é¼ »õ·Î¿î ½ºÅà ÇÁ·¹ÀÓÀÌ »ý°Ü³ª°í, ebp+8·Î ÀÎÀÚ¸¦ ¹Þ¾Æ¿À´Â°Ì´Ï´Ù. |
2017/03/31 |
|
| pwnnnt |
±×¸®°í write()ÇÔ¼ö°¡ ³¡³ª¸é¼ RETÀÚ¸®¿¡ ÀÖ´Â pop3ret À» ¸¸³ª write ÀÎÀÚ 3°³¸¦ popÀ¸·Î ²¨³»ÁÖ°í, ´ÙÀ½ ½ÇÇà µÉ ¶óÀ̺귯¸® ÁÖ¼Ò¸¦ ¸¸³ª¸ç chain ÀÌ µÇ´Â°Ì´Ï´Ù. |
2017/03/31 |
|
| pwnnnt |
(»ç½Ç ÀÌ Áö½ÄÀº 100% Á¦ ÁÖ°üÀûÀÎ »ý°¢À̸ç, Ʋ¸± °¡´É¼ºÀÌ ³óÈÄÇÕ´Ï´Ù.)
Á¤´äÀº ÇØÄð·¯´ÔÀÌ ...ƒ ><
2¹øÀº Àúµµ ±Ã±ÝÇϱº¿ä, ÁÁÀº Áú¹®ÀÎ °Í °°½À´Ï´Ù. |
2017/03/31 |
|
| pwnnnt |
Á¦ °æÇè»ó read()ÇÔ¼ö °°Àº°Å´Â Å©±â·Î ¹Þ¾Æµé¿©¼ \x00 ¹ÙÀÌÆ®µµ Àд °Í °°½À´Ï´Ù. |
2017/03/31 |
|
| vngkv123 |
¤¾¤¾ ÇØÄð·¯´Ô°ú ´õºÒ¾î ¸Å¹ø ´äº¯ °¨»çµå¸³´Ï´Ù ¤¾¤¾ |
2017/03/31 |
|
| pwnnnt |
Èå,,, ¾Æ´Õ´Ï´Ù.
Àúµµ ÀÌÁ¦ ¸· Æ÷³Êºí ½ÃÀÛÇØ¼ Ʋ¸° Á¤º¸ÀÏ ¼öµµ ÀÖ½À´Ï´Ù ¤Ì¤Ì¤Ì
°Å±â´Ù ¼³¸íµµ ³Ê¹« ¸øÇؼ¤»¤»¤»¤»¤»¤»¤»ºÎ²ô·´³×¿ä. |
2017/03/31 |
|
| vngkv123 |
È¥ÀÚ ¸Ç¶¥¿¡ ÇìµùÁßÀε¥ Àç¹ÌÀÖÀ¸¸é¼µµ Èûµå³×¿ä ¤Ì ¤»¤»¤»¤» |
2017/03/31 |
|
| pwnnnt |
¿½ÉÈ÷ Çϼż º¸±â ÁÁ³×¿ä :D !!!!!
°°ÀÌ Èû³»¼ °è¼Ó °øºÎÇØ¿ë ! |
2017/03/31 |
|