CVE-2013-4694 WinAmp 5.63 栈溢出漏洞分析
WinAmp 5.63 - Stack-based BufferOverflow
前天在exploit-db找到这个漏洞的描述。闲着没事,就调试了一下。这个漏洞的触发条件是在winamp.ini中skin这个字符串在使用lstrcpyn进行拷贝的时候,未检测skin的长短,导致我们可修改skin的值进行溢出。
比较有意思的是传入的字符串在用lstrcpyn比较的时候是unicode的格式的,而漏洞报告中说明这是个可利用的漏洞。以前听过unicode shellcode但没玩过也没见过,第一次见到这样的漏洞。于是就尝试分析了利用一下。(这个漏洞的利用价值几乎没有。但是给我这样菜鸟练手的价值还是有的!)。菜鸟级水准,如果文章有错,请各位多多指出!
实验环境:windowsxp sp3 pro(简体中文版)
工具:ImmunityDebugger ,IDA
漏洞程序:winamp.5.63 下载地址:http://www.exploit-db.com/exploits/26558/
安装程序,注意语言选择English。不知道为什么选择简体中文时这个漏洞就不能触发了。
安装完成后找到%APPDATA%\WinAmp\winamp.ini件。更改字符串skin,经多次修改发现skin传入132个字符时,末尾的两个字符恰好覆盖EIP
于是祭出Immunity Debugger ,载入程序后在定睛一看:
这里返回到的是gen_jump模块的10009802,当前处于1001b405这个函数中。打开IDA载入gen_jumpex.dll。到10009802处
问题应该就在这个call里面了。进入1001b405一路追踪又发现一个可疑的Call
进去看看果真发现了可触发漏洞的函数以级代码:
调试验证后确定这里就是问题之所在。
后面的unicode字符shellcode实在不好弄(跳转指令找不到)。。。。。。。。先放一放。等以後有看看有没有比较好的方法来写。。。。。。
__EOF__

本文链接:https://www.cnblogs.com/expl0it/p/18584034.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异