½Ã½ºÅÛ ÇØÅ·

 1574, 77/79 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   APlusHacker
   ¹öÆÛ ¿À¹öÇ÷ο쿡 °üÇÑ Áú¹®ÀÔ´Ï´Ù. µµ¿òºÎŹµå·Á¿ä

http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_system&no=1729 [º¹»ç]


È¥ÀÚ °øºÎ¸¦ ÇÏ´Ùº¸´Ï Çرò¸®´Â ºÎºÐµµ ¸¹°í À¸·¹ ÁüÀÛÇÏ´Â ºÎºÐµµ ¸¹¾Æ¼­
Áú¹® ¿Ã·Áº¾´Ï´Ù¤Ð¤Ð

1]  12´Ü¿ø ¹®Á¦¿¡ °üÇѰǵ¥ Á¦ »ý°¢À¸·Î´Â 256byte ÀÇ str°ú 8byteÀÇ dummy
4byteÀÇ SFP 4byteÀÇ RET °ªÀÌ Àֱ⿡ ¸Þ¸ð¸®¿¡ ½©Äڵ带 ¿Ã·ÁÁÖ±â À§ÇØ ½©Äڵ带 ¿Ã·ÁÁÖ°í
±× ¸Þ¸ð¸®¿¡ ¿Ã¸° ½©ÀÇ ÁÖ¼Ò°ªÀ» ¸®ÅÏ°ª¿¡ ½áÁÖ¸é µÈ´Ù°í ÀÌÇØÇÏ°í ÀÖ½À´Ï´Ù.

±×·±µ¥ ÀÌ ½© Äڵ带 ¿Ã¸± ¶§ print ¶ó´Â ¸í·É¾î·Î AAAAAAÀÌ·¸°Ô NOP¸¦ ÀÔ·ÂÇØÁÖ°í
ÈÄ¿¡ ½© Äڵ尪À» ½á³Ö¾îÁÖ´øµ¥ ÀÌ ½©Äڵ尪À» ½á³Ö¾îÁÖ´Â°Ç print¶ó´Â ¸í·É¾î¿¡ ´ëÇÑ °ªÀ¸·Î ¹Þ¾Æµé¿©Á®¼­ ÀÌ ½©Äڵ尡 ¸Þ¸ð¸®¿¡ ¿Ã¶ó°¡°ÔµÇ´Â°Ç°¡¿ä?

2.±×¸®°í ½©ÄÚµå´Â ¾î¶»°Ô ±¸Çϴ°ǰ¡¿ä ½Ã½ºÅÛ¸¶´Ù ½©Äڵ尡 ´Ù¸£´Ù°í ¾Ë°íÀִµ¥ À߸øµÈ°ÇÁö.

3.ÀÌ ½©ÄÚµåÀÇ ÁÖ¼Ò°ªÀº ¶Ç ¾î¶»°Ô ±¸Çϴ°ǰ¡¿ä

4. ¸¶Áö¸·À¸·Î Àú´Â ÀÌÇØÇÏ°í ÀÖ´Â°Ô NOP¸¦ ¾Õ¿¡´Ù ³Ö¾îÁà¾ß ¾Õ¿¡ str¿µ¿ªÀ» ´Ù ó¸®Çؼ­ Ä¡¿öÁÖ°í
¸¶Áö¸·¿¡ ret°ªÀ» º¯°æÇÒ ¼ö ÀÖ´Ù¶ó°í ÀÌÇØÇÏ°í Àִµ¥ ¿©±â ¿©·¯ Áú¹®µé¿¡ ´ëÇÑ ´äº¯À» º¸´Ï
NOP¸¦ ¸Ç³¡°ú ¸Ç¾Æ·¡ºÎºÐ¿¡ ³Ö¾îÁÖ°í ret°ªÀ» °¡¿îµ¥´Ù ³Ö¾î¼­ ¼º°øÇß´Ù ÇϽô ºÐµéµµ ÀÖ´õ¶ó±¸¿ä
ÀÌ°Ô ¾î¶»°Ô °¡´ÉÇÑ°ÅÁÒ ¸®ÅÏ°ªÀº ¹öÆÛÀÇ °¡Àå ³ôÀº ÁÖ¼Ò°ªÀ» °®°íÀÖ´Ù¶ó°í ¾Ë°íÀִµ¥..

Àß ºÎŹµå¸³´Ï´Ù (²Ù¹÷ ) °¨»ç°¨»ç!

  Hit : 3834     Date : 2014/02/08 12:49



    
Turtle1000 1.

1. NOPÀº No OperationÀÇ ¾àÀÚ·Î \x90À» ÀǹÌÇÕ´Ï´Ù. \x41ÀÎ A¿Í´Â ´Ù¸£°í¿ä.
º¸Åë NOPÀ» ³Ö¾îÁÖ´Â ÀÌÀ¯´Â ½©Äڵ尡 µé¾î°£ À§Ä¡¸¦ 'Á¤È®È÷' ¾ËÁö ¸øÇÒ ¶§ ÀÔ´Ï´Ù.
¿¹¸¦ µé¾îµå¸®¸é,

// µð·ºÅ丮 À§Ä¡´Â /home/user/vuln.c
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
char str[256]; // dummy = 8;

strcpy(str, argv[1]);
printf("%s\n", str);

return 0;
}

À§¿Í °°Àº Äڵ尡 ÀÖ´Ù°í °¡Á¤Çغ¸°Ú½À´Ï´Ù.(C ¾ð¾î´Â ¾Æ½Å´Ù°í °¡Á¤Çß½À´Ï´Ù.)
gcc vuln.c -o vuln -> À¸·Î ÄÄÆÄÀÏÀ» ÇÏ°í,
gdb·Î ºÐ¼®Çغ¸´Ï /home/user/vuln A*243 + (25¹ÙÀÌÆ® ½©ÄÚµå) + ¸®ÅÏÁÖ¼Ò
ÀÇ ¸®ÅÏÁÖ¼Ò°¡ 0xbffffabc °¡ ³ª¿Ô½À´Ï´Ù.(¿¹¸¦ µé¾î¼­¿ä.)

±×·±µ¥ ±×³É ./vuln A*243 ~ À¸·Î ½ÇÇàÀ» Çϸé Segmentation Fault °¡ ¶ß°Ô µË´Ï´Ù.
ÀÚ¼¼È÷ ¼³¸íÀº ¸øÇص帮°ÚÁö¸¸, ÇÁ·Î±×·¥ À̸§ÀÇ ±æÀÌÂ÷ÀÌ¿¡ ÀÇÇؼ­ ±×·±°Ì´Ï´Ù.
±×·¸±â ¶§¹®¿¡ ½ÇÁ¦ ¸®ÅÏÁÖ¼Ò´Â 18 ¹ÙÀÌÆ® Â÷ÀÌ°¡ ³ª°ÔµË´Ï´Ù.
ÇÏÁö¸¸, ÀÌ·±°É °è»êÇϱâ´Â ±ÍÂú°ÚÁÒ ? ±×·¸±â ¶§¹®¿¡ NOPÀ» ¾²´Â °Ì´Ï´Ù. À§ÀÇ Äڵ屸¼ºÀ»

./vuln NOP*243 + (25¹ÙÀÌÆ® ½©ÄÚµå) + ¸®ÅÏÁÖ¼Ò -> ·Î ±¸¼ºÇÏ°Ô µÇ¸é,
NOP*243 ¿µ¿ª Áï, 243 ¹ÙÀÌÆ® ¸¸Å­ÀÇ ÁÖ¼Ò ¿ÀÂ÷°¡ ÀÖ´õ¶óµµ NOPÀ» Ÿ°í¼­ ½©ÄÚµåÀÇ À§Ä¡±îÁö °¡°ÔµÇ´Â °Ì´Ï´Ù.
ÀÌ°ÍÀ» NOP Sled ¶ó°í ÇÕ´Ï´Ù.

»ì¦ À߸ø ¾Ë°í °è½Å °Í °°¾Æ¼­ Á» ¼³¸íµå·È±¸¿ä. ¾Æ¸¶ `python -c 'print ~'` À¸·Î ±¸¹®À» ³ÖÀ¸½ÇÅÙµ¥,
½©Äڵ尡 ¸Þ¸ð¸®¿¡ ¿Ã¶ó°¡´Â °ÍÀÌ ¸Â½À´Ï´Ù.
2014/02/09  
Turtle1000 2.

½©ÄÚµå´Â º¸Åë... C¾ð¾î -> strace -> asm -> ... ÀÇ °úÁ¤À» °ÅÃļ­ ¸¸µé ¼ö Àִµ¥,
¾î´ÀÁ¤µµ ¾î¼ÀÀ» ÇÒ ÁÙ ¾Æ½Å´Ù¸é Á¤¸» ½±°í °£´ÜÇÏ°Ô ¸¸µé ¼ö ÀÖ½À´Ï´Ù.
¶ÇÇÑ, ¿î¿µÃ¼Á¦¸¶´Ù ½©ÄÚµå´Â ´Ù¸¨´Ï´Ù.
2014/02/09  
Turtle1000 3.

½©Äڵ带 ¾î¶²½ÄÀ¸·Î ¿Ã·Á¼­ »ç¿ëÇϽôÂÁö ¾È½áÁּż­ µÎ °¡Áö ¹æ¹ýÀ» ¾Ë·Áµå¸®°Ú½À´Ï´Ù.

1. char str[256]°ú °°Àº º¯¼ö¿¡ ³Ö¾î¼­ ÁÖ¼Ò¸¦ ±¸ÇÏ´Â ¹æ¹ý

ASLRÀÌ °É·ÁÀÖÁö ¾ÊÀº ³·Àº ¹öÀüÀÇ ¿î¿µÃ¼Á¦¿¡¼­ ±¸ÇÒ ¶§´Â,
gdb¸¦ ÀÌ¿ëÇؼ­ ±¸ÇÒ ¼öµµ ÀÖ°í, ÀÌ°Ô ¾î·Á¿ì½Ã¸é ¼Ò½ºÄڵ带 ±×´ë·Î º¹»çÇؼ­
ÆÄÀÏÀ̸§ÀÇ ±æÀÌ(±æÀÌ°¡ °°¾Æ¾ß ÇÕ´Ï´Ù.)¸¦ °°°Ô ÇÑ ÈÄ¿¡
printf("%p\n", &str[242]); -> ½©Äڵ尡 ¿Ã¶ó°¡´Â °÷À» Âï¾îÁÖ¸é µË´Ï´Ù.

2. ȯ°æº¯¼ö¸¦ ÀÌ¿ëÇÒ °æ¿ìÀÇ ¹æ¹ý

º¸Åë export À̸§=`python -c 'print "\x90"*50 + "½©ÄÚµå"'` ¿Í °°Àº ¹æ½ÄÀ¸·Î ¸¹ÀÌ µî·ÏÇÕ´Ï´Ù.
À̸¦ ¾Ë¾Æ³»±â À§Çؼ­´Â,

void main(int argc, char *argv[])
{
printf("%p\n", getenv(argv[1]));
}

¿Í °°Àº ¼Ò½ºÄڵ带 ÀÛ¼ºÇϼż­ ¾Ë¾Æ³»½Ã¸é µË´Ï´Ù.
¸¸¾à Á¤È®ÇÑ À§Ä¡¸¦ ¾Ë°í½Í´Ù¸é,

#include <stdio.h>

int main(int argc, char *argv[])
{
char *ptr = argv[1];

ptr += (strlen(argv[0]) - strlen(argv[2]));
printf("%p\n", ptr);

return 0;
}

./ÇÁ·Î±×·¥¸í ȯ°æº¯¼ö¸í ./°ø°ÝÇÒÇÁ·Î±×·¥¸í -> À» ¼öÇàÇϽøé Á¤È®ÇÑ ½©ÄÚµåÀÇ À§Ä¡°¡ ³ª¿É´Ï´Ù.
(NOPÀÌ ÇÊ¿ä¾ø¾îÁö°Ô µË´Ï´Ù.)
2014/02/09  
Turtle1000 4.

Ãë¾àÇÑ ÇÔ¼öµéÀº ¹öÆÛÀÇ °æ°è°ªÀ» °Ë»çÇÏÁö ¾Ê½À´Ï´Ù.
Áï, ¸®ÅÏÀ» ³Ñ¾î°¡´õ¶óµµ °ªÀ» ÀÔ·ÂÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌÁÒ.

½©Äڵ带 ¿Ã¸®´Â ¹æ¹ýÀº ¸Å¿ì ¸¹½À´Ï´Ù.

ÇÒ´çµÈ ¹öÆÛ(char str[256] °°Àº)¿¡ ¿Ã¸®´Â ¹æ¹ý.
À̶§´Â "\x90"*243 + ½©ÄÚµå + ¸®ÅÏÁÖ¼Ò -> ¿Í °°ÀÌ ±¸¼ºµË´Ï´Ù.

ÇÒ´çµÈ ¹öÆÛ°¡ ³Ê¹« À۾Ƽ­(char str[4]) ¸®ÅÏ µÚ¿¡ ½©Äڵ带 ³Ö¾îÁÙ ¶§,
À̶§´Â "A"*8 + ¸®ÅÏÁÖ¼Ò + ½©ÄÚµå -> ¿Í °°ÀÌ ±¸¼ºÇÏ°í, µÚÀÇ ½©ÄÚµå ÁÖ¼Ò¸¦ ½áÁÖ¸é µË´Ï´Ù.

¸¶Âù°¡Áö·Î NOPÀ» ³Ö´Â ÀÌÀ¯´Â Á¤È®ÇÑ ½©ÄÚµåÀÇ À§Ä¡¸¦ ¾Ë ¼ö ¾øÀ»¶§°ÚÁÒ ?
2014/02/09  
Turtle1000 ¸¶Áö¸·À¸·Î,
Ä«Æä¿¡¼­ BOF ±Û ¾²°í ÀÖ½À´Ï´Ù ~ Â÷±ÙÂ÷±Ù º¸½Ã¸é¼­ ¸ð¸£´Â °Å ÀÖÀ¸¸é ¹°¾îº¸¼¼¿ä ~
ÀÚ±â¼Ò°³ ºÎºÐ¿¡ ÀÖ¾î¿ä ~
2014/02/09  
APlusHacker ÅÍƲ1000´Ô °¨»çÇÕ´Ï´Ù
Å« µµ¿ò ‰ç½À´Ï´Ù.!
2014/02/12  
54   ¼±¹è´Ô! Àü¿¡Áú¹®Çѳ»¿ëÀä..Áß¿äÇÑ°ÍÀº...     appleone
01/14 2891
53   Àú±â¿ä ¼±¹è´Ôµé!Á¶¾ðÁ»^^     appleone
01/15 3319
52   ÷¿Ã¸®´Â °Çµ¥¿è °¥ÄÑÁÖ¼¼¿è....[3]     applegive
06/15 3070
51   Á¤¸» ±Ã±ÝÇѵ¥..[2]     apple0815
03/22 3527
  ¹öÆÛ ¿À¹öÇ÷ο쿡 °üÇÑ Áú¹®ÀÔ´Ï´Ù. µµ¿òºÎŹµå·Á¿ä[6]     APlusHacker
02/08 3833
49     [re] ÇØÅ·¿¡´ëÇÑ À߸øµÈ ¾ð¾î»ç¿ë ÀÎÅÍºä ¿äû[1]     answp
12/25 3019
48     [re] Åڳݸ»°í Á¢¼Ó¹ýÀÌ ¹¹ÀÖÁÒ?[2]     answp
12/27 3189
47   RET Áú¹® ÀÔ´Ï´Ù.     answp
01/11 3180
46   ½Ã½ºÅÛ ÇØÅ· ½Ãµµ Çߴµ¥ ½ÇÆÐÇÑ ÀÌÀ¯¸¦ ¸ð¸£°Ú½À´Ï´Ù¤Ð¤Ð[11]     answp
01/11 4233
45   ¿ìºÐÅõ ¸®´ª½º return address À§Ä¡¸¦ ¾Ë ¼ö ¾øÀ»±î¿ä?     answp
03/23 3948
44   ½ºÅð¡µå³ª ½ºÅà ½¯µå[1]     answp
10/19 5012
43   ÆÐÅ·µÇ¾îÀÖ´Â°É ¾ðÆÐÅ·ÇÏ¸é ºÒ¹ýÀΰ¡¿ä?[3]     answp
09/18 3688
42   C++ÀÇ coutµµ Æ÷¸ä½ºÆ®¸µ Ãë¾àÁ¡ÀÌ ÀÖ³ª¿ä?[2]     answp
11/24 3628
41   ÇØÅ· °ø°ÝÀÇ ¿¹¼ú Áú¹® °íµîÇлý!!1[2]     anona
03/15 3406
40   ¼­¹ö °ø°ÝÀÚ ¾ÆÀÌÇǸ¦ ¾Ë¾Æ³Â½À´Ï´Ù[11]     andud11
05/07 4262
39   xssÇØÅ·¿¡°üÇØ Áú¹®µå¸³´Ï´Ù[1]     alstkd1222
01/19 4055
38   À©µµ¿ìÁî ÇØÅ·, ¸®´ª½º ÇØÅ·¿¡ °üÇؼ­..[2]     albert89
12/02 4057
37   °×¹æ¿¡°­µµ°¡µé¾ú´Âµ¥[5]     aladdin2
03/17 4775
36     [re] °×¹æ¿¡°­µµ°¡µé¾ú´Âµ¥     aladdin2
03/19 3784
35       [re] °×¹æ¿¡°­µµ°¡µé¾ú´Âµ¥[1]     aladdin2
03/19 3918
[1]..[71][72][73][74][75][76] 77 [78][79]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org