·¹º§ ÇØÅ·

 2840, 1/142 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   tjdalstjr938
   FC10 3¹ø ¹®Á¦ Áú¹®ÀÔ´Ï´Ù.

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


argv[1]ÀÇ Å©±â¸¦ 2156( Àü¿ªº¯¼ö ºÎºÐÀÇ ¸Þ¸ð¸® ÃÖ´ë Å©±â) ÀÌ»óÀ» ³ÖÀ»¶§ Segmentation fault °¡ ¶ß´Â°ÍÀ» Á¦¿ÜÇϰí´Â ¾Æ¹«°Íµµ ¸øÃ£¾Ò½À´Ï´Ù.
ÈùÆ® ºÎʵ右´Ï´Ù. ¤Ð¤Ð

char buffer[4];
void (*func)(int, int, int);

void dummy(int argc1, int argc2, int argc3)
{
        printf("Do you wonna exploit me?\n");
        exit(1);
}

int main(int argc, char *argv[])
{
        if(argc != 2)
        {
                printf("argc Error!!\n");
                exit(-1);
        }

        // initializing buffer
        memset(buffer, 0, sizeof(buffer));

        func = dummy;
      
        // buffer overflow!!
        strcat(buffer, argv[1]);
        
        // initializing dummy registers
        asm("xor %ebx, %ebx");
        asm("xor %ecx, %ecx");
        asm("xor %edx, %edx");

        // jump into blackhole!
        func(0, 0, 0);
}

  Hit : 3887     Date : 2018/04/02 03:51



    
cnsang166 ±âÁ¸¿¡ ¼±¾ðµÇ¾ú´ø Àü¿ªº¯¼öÀÇ °ø°£±îÁö µ¤¾îÁ®¼­ ±×·¯´Â°Å ¾Æ´Ò±î¿ä? ÃÖ´ë °ø°£º¸´Ù ´õ ¸¹ÀÌ °ªÀ» ³ÖÀ¸¼Å¼­ ±×·¯½Ç °Í °°½À´Ï´Ù. 2018/04/04  
tjdalstjr938 Segmentation fault °¡ ¶ß´Â ÀÌÀ¯ °ªÀ» Áý¾î³ÖÀ»¼ö ¾ø´Â ¿µ¿ª¿¡ °ªÀÌ µé¾î°¡¸é¼­ ¿¡·¯°¡ ¶ß´Â°Ô ¸Â½À´Ï´Ù. ±Ã±ÝÇÑ ºÎºÐÀº ¼ÐÀ» µþ·Á¸é ebp³ª ret ÁÖ¼Ò¸¦ µ¤¾î¾º¿ö¼­ °ø°ÝÀ» ÇØ¾ßÇϴµ¥ Á¦°¡ º¸±â·Î´Â °ø°ÝÀÌ °¡´ÉÇÑ ºÎºÐÀÌ ¾ø¾îº¸¿©¼­ ¾Æ½Ã´Â ºÐÀÌ ÀÖÀ¸¸é Á¶±×¸¸ÇÑ ÈùÆ®¸¦ ¹Þ°íÀÚ ¿Ã¸°°Ì´Ï´Ù. ¤Ð¤Ð 2018/04/05