复现W32Dasm缓冲区溢出(cve-2005-0308)

admin 2021年1月22日22:24:41评论414 views字数 1151阅读3分50秒阅读模式

## # 漏洞背景

W32Dasm是一款URSoft开发的反汇编和调试工具。W32Dasm8.93及之前版本中的wsprintf函数存在缓冲区溢出漏洞。远程攻击者可通过一个超大的import或export函数名,利用此漏洞执行任意代码。

漏洞分析

1.查找漏洞资料

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-0308

复现W32Dasm缓冲区溢出(cve-2005-0308)
http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=7369

复现W32Dasm缓冲区溢出(cve-2005-0308)

2.漏洞分析

通过上面了解W32Dasm 8.93之前版本的wsprintf函数存在缓冲溢出漏洞,程序使用wsprintf()函数拷贝分析文件的引入/导出函数名到一个256字节的缓冲区,超长引入/导出函数名可发生缓冲区溢出,精心构建一个恶意可执行文件,诱使用户调试,可以进程权限在系统上执行任意指令。

,上od打开这个W32Dasm

复现W32Dasm缓冲区溢出(cve-2005-0308)
查找所有模块调用

复现W32Dasm缓冲区溢出(cve-2005-0308)
设置所有wsprintfa函数断点

复现W32Dasm缓冲区溢出(cve-2005-0308)
切回主页面

复现W32Dasm缓冲区溢出(cve-2005-0308)
点击运行

复现W32Dasm缓冲区溢出(cve-2005-0308)
打开了程序W32Dasm

复现W32Dasm缓冲区溢出(cve-2005-0308)
选择一个文件,这个用strings.exe这个文件

复现W32Dasm缓冲区溢出(cve-2005-0308)
可以看到他已经断在第一个wsprintf位置

复现W32Dasm缓冲区溢出(cve-2005-0308)
但是这个位置使用%lu无符号长整型整数,所以这个不是我们要找的,继续f9
直到45d8db,这里使用%s字符串

复现W32Dasm缓冲区溢出(cve-2005-0308)
按f9

复现W32Dasm缓冲区溢出(cve-2005-0308)

复现W32Dasm缓冲区溢出(cve-2005-0308)
可以通过数据窗口看到变化,说明eax是将要拷贝的内容,edx就是拷贝过的内容,猜测可能是这个位置。
Buffer
Start 66bdcc (也就是edx)
End 66bec8 (也就是ebp)
首先通过栈跟随

复现W32Dasm缓冲区溢出(cve-2005-0308)
可以看到66becc位置是返回地址。正常执行完成会跳到457ec0继续
返回地址:66becc
返回地址下一个地址:66bed0,shellcode

复现W32Dasm缓冲区溢出(cve-2005-0308)
判断缓冲区大小,fc+4(ebp本身有4字节)=100(16进制),转10进制就是256,与漏洞报告对应。
通过上述分析可知,如果需要复现这个漏洞只需要将导入,导出表的名字构造过长,可以进行漏洞验证。

# 漏洞验证

根据pe结构分析如下
首先需要找到originalfristthunk(rva 相对虚拟地址)->再找到image-thunk-data(rva)->再通过rva找到真正位置
根据上述步骤,用lordpe找到位置。
打开strings.exe,点击目录

复现W32Dasm缓冲区溢出(cve-2005-0308)
找到导入表

复现W32Dasm缓冲区溢出(cve-2005-0308)
找到OriginalFirstThunk为12A74

复现W32Dasm缓冲区溢出(cve-2005-0308)
点击ok,确定退回主界面,点击位置计算器

复现W32Dasm缓冲区溢出(cve-2005-0308)
执行,再打开16进制编辑器

复现W32Dasm缓冲区溢出(cve-2005-0308)
看到11074的位置是bc2c0100,它是偏移量,转回为12cbc

复现W32Dasm缓冲区溢出(cve-2005-0308)
再次计算
12cbc位置,就可以到实际位置,1f8是序号(不管),shellcode从47位置开始写入

复现W32Dasm缓冲区溢出(cve-2005-0308)
写入好的文件如下

复现W32Dasm缓冲区溢出(cve-2005-0308)
使用W32Dasm打开修改strings.exe,可以看到计算器弹出来了

复现W32Dasm缓冲区溢出(cve-2005-0308)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年1月22日22:24:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   复现W32Dasm缓冲区溢出(cve-2005-0308)http://cn-sec.com/archives/246333.html