|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1662 [º¹»ç]
´ëÇб³>½Ã½ºÅÛÇØÅ·> ¹öÆÛ¿À¹öÇ÷οì- ±âÃÊ
°Á º¸°íÀÖ´Â ÄĸÍÀÔ´Ï´Ù.
°Á¸¦ º¸¸é ¹öÆÛ¿À¹öÇ÷οì¶óÀÇ ¿ø¸®¸¦ ÀÍÈ÷´Â Â÷¿ø¿¡¼
°£´ÜÇÑ ¹®Á¦¸¦ ³»°Åµç¿ä.
(¹®Á¦¿¡ ´ëÇÑ Áú¹®ÀÌ ¾Æ´Ï´Ï±î °¡º±°Ô ºÁÁÖ¼¼¿©)
#include ¡°dumpcode.h¡±
int main(int argc, char *argv[])
{
char target[4] = ¡°DOG¡±;
char buffer[20] = {0, }; // 0À¸·Î ÃʱâÈ
if(argc < 2)
{
printf(¡°argument error\n¡±);
exit(-1);
}
// dumpcode·Î ¸Þ¸ð¸® ´ýÇÁ
dumpcode(buffer, 24);
printf(¡°[*] BEFORE : the value of target is %s\n\n¡±, target);
// ù ¹øÂ° ÀÎÀÚ·Î Àü´ÞµÈ ¹®ÀÚ¿À» buffer·Î º¹»ç
// ¿©±â¼ buffer overflow ¹ß»ý!
strcpy(buffer, argv[1]);
// dumpcode·Î ¸Þ¸ð¸® ´ýÇÁ
dumpcode(buffer, 24);
printf(¡°[*] AFTER : the value of target is %s\n¡±, target);
}
ÀÌ ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¶§ Àü´ÞÇÏ´Â ¹®ÀÚ¿À» ÀÌ¿ëÇØ
CATÀÌ Ãâ·ÂµÇµµ·Ï Çϴ°ǵ¥
$ ./ex1 AAAAAAAAAAAAAAAAAAAACAT
0xbffffb10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0xbffffb20 00 00 00 00 44 4f 47 00 ....DOG.
[*] BEFORE : the value of target is DOG
0xbffffb10 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA
0xbffffb20 41 41 41 41 43 41 54 00 AAAACAT.
[*] AFTER : the value of target is CAT
$
´äÀº À̰Űí¿ä.
Á¦°¡ Áú¹®ÇÒ°Ç ¹®Á¦¿¡ °üÇÑ°Ô ¾Æ´Ï¶ó char ÇüÀÇ ¸Þ¸ð¸® ÀúÀ广½ÄÀε¥
ÀÌ ºÎºÐ µÚ¿¡ ³ª¿À´Â ½ºÅø޸𸮱¸Á¶ ¼³¸í º¸¸é
½ºÅÃÀº ´ÜÀ§°¡ 4¹ÙÀÌÆ®¶ó¼ charÇü °°ÀÌ 4¹ÙÀÌÆ®º¸´Ù ÀûÀº ÀÚ·áÇüÀº
ºÎÁ·ÇÑ ºÎºÐÀº ±×³É ³ÀµÐ´Ù?°í ÇÏ´õ¶ó°í¿ä.
¿¹¸¦ µé¾î
char a=5¸é
[.. .. .. 05]
ÀÌ·¸°Ô¿ä (..Àº ¾²·¹±â°ª)
±×·±µ¥ ´Ù½Ã ¾ÕºÎºÐ, ±×·¯´Ï±î À§ÀÇ ¹®Á¦¸¦ º¸¸é
char buf[20]À» ¼±¾ðÇߴµ¥
¸Þ¸ð¸®¿¡ ÀúÀåµÇÀÖ´Â »óÅ´Â
1¹ÙÀÌÆ®°¡ 20°³ ³ª¿µÇÀÖ´Ü ¸»ÀÌ¿¡¿ä?? [00 00 00 00 00 00 .. 00]
½ºÅà ¸Þ¸ð¸® ¼³¸í¿¡ ³ª¿À´Â ´ë·Î¶ó¸é
char buf[20]={0} À̶ó°í ÇÞÀ»¶§
buf[0] buf[1] buf[2]
0x... [.. .. .. 00] [.. .. .. 00] [.. .. ..00]
¡è½ÇÁ¦°ª ¡è½ÇÁ¦°ª ¡è½ÇÁ¦°ª
ÀÌ·¸°Ô ¸Þ¸ð¸®¸¦ º¸¸é 4¹ÙÀÌÆ®¸¦ Â÷ÁöÇØ¾ß Çϴ°Š¾Æ´Ñ°¡¿ä?
½ÇÁúÀûÀ¸·Î ¹è¿ÀÇ ½ÇÁ¦ °ªÀº °¢ ¸ÇµÚ ¹ÙÀÌÆ®°í¿ä.
³ª¸ÓÁö´Â ±×³É ä¿öÁö´Â °ª.
À§¿¡ ¼³¸í¿¡ ³ª¿Â´ë·Î ¸»ÀÌÁÒ.
Á¦ Áú¹®Àº ÀÌ·¸½À´Ï´Ù.
ÀÌÇØ°¡ °¡½ÇÁö°¡ °ÆÁ¤ÀÔ´Ï´Ù.
ÀÌÇØ°¡ ¾È°¡´Â ºÎ´« ¸»ÇØÁֽøé
¼³¸íÇØµå¸®°Ù½À´Ï´Ù.
|
Hit : 3960 Date : 2013/04/05 08:34
|