记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

Winamp 栈溢出分析及利用

2014-06-13 12:30

Winamp是一个比较老的播放器,这里主要是通过winamp的一个poc分析,构造一个exp。主程序见附件winamp.exe, poc见附件poc.m3u。

一、Poc分析

首先查看poc如下。发现除了前10多个字节为m3u文件格式规定内容外,其它部分均为A。

1

运行winamp.exe程序,将poc.m3u拖入主界面中,程序直接崩溃。为了查看崩溃时状态,我们将windbg设置为即时调试器。设置在cmd中使用命令:

windbg –I

再次运行poc,自动弹出windbg,发现崩溃状态:

2

出现异常,主要是esi+4不可写,修改esi=0045000,命令为:

r @esi=00445000

继续运行,停至

3

eax为41414141,[Eax+0c]处也不可读,且经分析,必须[eax+0c]的第5位为1,程序才会运行至strcpy处,所以修改eax=12c238

4

5

继续运行,发现程序运行至41414141,这样我们就完全控制了程序的执行。

6

二、定位异常

通过构造一个特殊的poc来定位:

7

定位结果如下:

esi=eax=306a4139, 程序最后的eip=6141326a

在poc文件中搜索

8

9

可知要绕过异常: 0x11e处的4字节 data需要满足:

[data+4]可读

且Byte ptr[data+c] 第5字节为1

最后选择了一个满足条件的data:719f7bf0

10

程序覆盖点在0×126处,此处存放jmp esp的地址(这里用7ffa4512,这是个比较通用的jmp esp地址)。

三、构造exp

完整的exp构造见附件。主要包括4字节绕过异常放在0x11e处,0×126处放jmp esp指令地址,shellcode放在0x12a开始处。

11

测试:(环境xp sp3)

结果:能成功弹出计算器

附件下载地址:http://pan.baidu.com/s/1sjoCWMx

赏金发放情况:本文获得140RMB,已于6.12日发放到作者账号。

征稿启事:91RI 一直相信“你不与人分享,谁与你分享”, 分享的确是件非常有意义的事情。为了让优秀的同学有 地方分享自己的独到见解,也为了让更多同学从分享中受益,同时我们也希望给那些愿意分享的小伙伴们一点点心意作为感谢,所以我们隆重了推出“有奖征文”活 动!本次活动的详情可以围观《征稿启事

文中若未特别声明转载请注明来自:91ri.org
知识来源: www.91ri.org/9355.html

阅读:96606 | 评论:0 | 标签:逆向游戏 代码审计 溢出漏洞 漏洞利用 溢出

想收藏或者和大家分享这篇好文章→复制链接地址

“Winamp 栈溢出分析及利用”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云

本页关键词