风云对话 专题
ZDC 调研 Vista
高清/时尚二手
笔 记 本MP3/MP4
台 式 机GPS
移动存储UMPC
CPU内存硬盘光 驱
音频机箱电源显示器
耳机键盘鼠标摄像头
安全企业存储
方案工 作 站
通讯信 息 化
打印机软件攒机排行榜
耗  材下载社区网站地图
家  电游戏博客网吧频道
热点推荐

最新漏洞!拿到动网8.1后台权限(图)

黑客X档案 08年03月03日 【转载】 作者:

    国内用户最多的BBS程序——动网也不断地推陈出新,出到了现在的8.1.1版本。不过动网这次又暴出了一个高危漏洞,使攻击者可以直接获得管理员的密码MD5值,通杀Access和SQL版本。存在漏洞的文件为UserPay.asp,此文件传递的变量过滤不严,导致出现注入漏洞。受影响版本为:8.0.0 Sp1以上版本以及更新过支付宝接口的用户(引自动网官方论坛,不包含8.0.0 Sp1。经测试8.0.0和8.0.0 Sp1版本不受影响)。

    一、漏洞成因

    先简单介绍下漏洞形成的原因。

    UserPay.asp代码第12-64行:

If Request("raction")="alipay_return" Then
AliPay_Return()
Dvbbs.Footer()
Response.End
ElseIf Request("action")="alipay_return" Then
AliPay_Return()
Dvbbs.Footer()
Response.End
'ElseIf Request("action")="Re_inmoney" Then
' Re_inmoney()
' Dvbbs.Footer()
' Response.End
End If


    由代码可以看出,无论是用户提交的raction为alipay_return,还是action为alipay_return,都同样调用了AliPay_Return()过程。

    AliPay_Return()的代码原型在第329-351行,代码如下:

Sub AliPay_Return()
If Dvbbs.Forum_ChanSetting(5) <> "0" Then
    AliPay_Return_Old()
    Exit sub
Else
    Dim Rs,Order_No,EnCodeStr,UserInMoney
    Order_No=Request("out_trade_no")
    Set Rs = Dvbbs.Execute("Select * From [Dv_ChanOrders] Where O_IsSuc=3 And O_PayCode='"&Order_No&"'")
    If not(Rs.Eof And Rs.Bof) Then
   AliPay_Return_Old()
   Exit sub
    End if
    Response.Clear
    Set Rs = Dvbbs.Execute("Select * From [Dv_ChanOrders] Where O_IsSuc=0 And O_PayCode='"&Order_No&"'")
    If Rs.Eof And Rs.Bof Then
   Response.Write "N"
    Else
   Response.Write "Y"
   Dvbbs.Execute("Update Dv_ChanOrders Set O_IsSuc=3 Where O_ID = " & Rs("O_ID"))
    End If
    Response.End
End If
End Sub

    代码表明,如果Dvbbs.Forum_ChanSetting(5) <> "0" ,就执行代码下面的SQL语句。我们再来看看数据库里默认的Forum_ChanSetting的值吧:

1,1,0,0,pay@aspsky.net,0,b63uvb8nsvsmbsaxszgvdr6svyus0l4t,1,1,1,1,1,1,1,100,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

Forum_ChanSetting(5)缺省值为0,满足上面提到的条件,执行以下代码:

Order_No=Request("out_trade_no")
    Set Rs = Dvbbs.Execute("Select * From [Dv_ChanOrders] Where O_IsSuc=3 And O_PayCode='"&Order_No&"'")

    直接把获取的Order_No放到SQL里面执行去了,漏洞就这样出现了。

本文导航:
  • 第1页:漏洞成因
文章评论
笔记本,台式机 拨打800-858-2339,为您量身打造!

ZOL简介 | 用户注册 | 广告服务 | 人员招聘(月) | ZOL历程 | 互动营销中心 | 站点地图 | 联系方式 | 欢迎投稿 | RSS订阅 | 友情链接
北京海淀区知春路113号银网中心A座9F 传真:010-62529275 反馈留言板 欢迎批评指正
Copyright © 1999 - ZOL. All rights reserved. 中关村在线 版权所有. 京ICP证010391号