【实战】Foxmail 5远程缓冲区溢出漏洞

Foxmail 5远程缓冲区溢出漏洞


创建时间:2004-03-22 更新时间:2004-03-22
文章属性:原创
文章提交: root (webmaster_at_xfocus.org)

安全焦点< http://www.xfocus.net>

注:本文是2004年2月xfocus成员在内部技术交流中提出的,在此之前,启明星辰技术人员已经发现这一漏洞,但未公开细节,xfocus成员听说存在这一漏洞后对Foxmail进行分析,并写出利用代码。2004年3月18日启明星辰公布漏洞并发布相关补丁。

测试环境:win2k sp4+foxmail 5.0.300

以前测试foxmail 4.x的时候曾经发现过溢出漏洞,不过后来一直没时间研究就先放下了,后来听说Foxmail5也有溢出,但是一直没有看见公布。于是没事的时候干脆自己研究一下,测试后发现以前的溢出漏洞已经补上了,不过出了一个新的漏洞。

问题出在PunyLib.dll里面的UrlToLocal函数,估计这是一个用来处理垃圾邮件的链接库,当一封邮件被判定为垃圾邮件时,就会调用UrlToLocal来处理邮件体的“From: ”字段,处理过程中发生堆栈溢出,可以导致执行任意代码。

具体处理过程如下:
.text:10002040                 public UrlToLocal
.text:10002040 UrlToLocal      proc near
.text:10002040
.text:10002040 arg_0           = dword ptr  4
.text:10002040 arg_4           = dword ptr  8
.text:10002040
.text:10002040                 mov     eax, dword_1000804C
.text:10002045                 mov     ecx, dword_10008030
.text:1000204B                 mov     edx, [esp+arg_4]
.text:1000204F                 push    offset aHttp    ; " http://"
.text:10002054                 push    eax
.text:10002055                 mov     eax, [esp+8+arg_0]
.text:10002059                 push    offset unk_10008034
.text:1000205E                 push    ecx
.text:1000205F                 push    edx
.text:10002060                 push    eax
.text:10002061                 call    sub_10002070  ;调用10002070,其中参数里保存的是邮件体的“From: ”字段后面的内容

.text:10002070 sub_10002070    proc near               ; CODE XREF: UrlToLocal+21p
.text:10002070                                         ; EmailAdrToLocal+107p
.text:10002070
.text:10002070 var_600         = dword ptr -600h
.text:10002070 var_500         = dword ptr -500h
.text:10002070 var_400         = dword ptr -400h
.text:10002070 var_300         = dword ptr -300h
.text:10002070 var_200         = dword ptr -200h
.text:10002070 var_100         = dword ptr -100h
.text:10002070 arg_0           = dword ptr  4
.text:10002070 arg_4           = dword ptr  8
.text:10002070 arg_8           = dword ptr  0Ch
.text:10002070 arg_C           = dword ptr  10h
.text:10002070 arg_10          = dword ptr  14h
.text:10002070 arg_14          = dword ptr  18h
.text:10002070
.text:10002070                 mov     edx, [esp+arg_0]
.text:10002074                 sub     esp, 600h
......
.text:100020DF                 push    eax
.te
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值