首页
社区
课程
招聘
未解决 [求助]请教各位大佬,控制不了ESP如何构造rop_chain
发表于: 2019-4-14 20:19 2077

未解决 [求助]请教各位大佬,控制不了ESP如何构造rop_chain

2019-4-14 20:19
2077
UnPackEr:0040E5FF call    sub_40CC30
UnPackEr:0040E604 cmp     eax, 0FFFFFFFFh
UnPackEr:0040E607 jz      short loc_40E686
UnPackEr:0040E609 mov     eax, dword ptr [esp+1Ch+optval]
UnPackEr:0040E60D push    eax                             ; optval
UnPackEr:0040E60E mov     ecx, edi
UnPackEr:0040E610 call    sub_40CD50                      ; TAGS: ['net']
UnPackEr:0040E615 mov     edx, [esi]
UnPackEr:0040E617 push    edi
UnPackEr:0040E618 mov     ecx, esi
UnPackEr:0040E61A call    dword ptr [edx+0Ch]            <----------可控制edx执行代码,但是DEP环境,栈不可执行
UnPackEr:0040E61D mov     ecx, edi
UnPackEr:0040E61F call    sub_40CD00
UnPackEr:0040E624 test    al, al
UnPackEr:0040E626 jz      short loc_40E669
UnPackEr:0040E628 push    edi                             ; int
UnPackEr:0040E629 lea     ecx, [esi+30h]                  ; lpCriticalSection
UnPackEr:0040E62C call    sub_40DEF0
UnPackEr:0040E631 test    al, al

请教一下各位大佬,栈溢出DEP开启,控制了edx,能够进入 call    dword ptr [edx+0Ch],
Mona给的rop_chain使用前提是控制ESP,才能把链条连上,
但是控制不了ESP,怎么构造rop_chain?

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1474
活跃值: (4371)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
2
既然都可以栈溢出了,那可不可以覆盖到返回地址呢?如果可以的话,就可以利用ROP了,不一定需要DEP关闭,因为ROP其实没有在栈上面运行代码,只是利用栈上面你自己构造的字符串数据而已......
2019-4-14 22:08
0
雪    币: 991
活跃值: (106)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
钞sir 既然都可以栈溢出了,那可不可以覆盖到返回地址呢?如果可以的话,就可以利用ROP了,不一定需要DEP关闭,因为ROP其实没有在栈上面运行代码,只是利用栈上面你自己构造的字符串数据而已......
准确的说缓冲区没溢出,只不过覆盖了一部分栈上的结构体,最近一处能控制EIP的地方距离把buf押进栈的qmemcpy函数很远,跑到能控制EIP的地方,栈顶距离buf将近1GB。
我想了个办法,用ret 20做gadget慢慢往栈底爬,很蠢,不过貌似有效 -。-
2019-4-15 06:17
0
游客
登录 | 注册 方可回帖
返回
//