首页
社区
课程
招聘
[原创]某个PWN题目(decoder)分析
发表于: 2017-4-27 19:19 5769

[原创]某个PWN题目(decoder)分析

2017-4-27 19:19
5769

题目decoder见附件,部分反汇编后伪C代码如下:

通过观察反汇编代码发现有两个漏洞。

首先尝试栈溢出漏洞利用

思路,在对某个字符串进行11次base64加密,然后提交给漏洞程序decoder

相关代码如下:

进行解密时 最后一次在snprintf时  v8=10 拷贝的数据超出了s的缓冲空间,覆盖了栈里的数据

如图所示:

在程序返回的时候 ecx控制esp的值 esp控制返回地址,这里由于栈溢出导致了程序流程可以被控制

但是实际上snprintf在while循环里,在该函数溢出覆盖返回地址后,还要执行一次check函数

在check函数里  要执行一个strlen函数 ,这个函数的参数是个字符串地址  覆盖后要可读  否则报错

这里用0x8048d80覆盖 如上图所示。


本来以为到这里可以成功利用漏洞了,但是在函数开始就把esp压栈进行了保护,溢出后esp被覆盖,因为地址随机化,我们也不能有效地控制ESP来劫持程序流程,思考了很久 这个栈溢出漏洞暂时无法利用。


利用格式化字符串漏洞

因为存在格式化字符串漏洞,那么可以造成任意地址写,我们把后面的printf的got表地址覆盖就可以控制程序流程了。

我们构造格式化字符串,在进行snprintf的时候 内存数据布局如下:


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 65
活跃值: (545)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
2017-4-27 23:52
0
雪    币: 334
活跃值: (92)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
mark 
2017-6-1 21:45
0
游客
登录 | 注册 方可回帖
返回
//