文章分类
全部分类
文章存档
2007年08月
最新评论
1.天方听书网有声图书领域的技术航母航母航母
2133333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333...
--匿名
2.天方听书网有声图书领域的技术航母航母航母
tst
--匿名
3.动网论坛短消息模块过滤不严格的注入漏洞
不错
--woaishei
4.天方听书网有声图书领域的技术航母航母航母
我来测试一下超长的文字,是否能全部显示?我来测试一下超长的文字,是否能全部显示?我来测试一下超长...
--woaishei
5.天方听书网有声图书领域的技术航母航母航母
枯栽奔要棋霜
--woaishei
6.天方听书网有声图书领域的技术航母航母航母
我来测试一下超长的文字,是否能全部显示?我来测试一下超长的文字,是否能全部显示?我来测试一下超长...
--我是谁?
7.天方听书网有声图书领域的技术航母航母航母
asdfasdf
--asdf
文章
  • 《动网论坛短消息模块过滤不严格的注入漏洞 》 2007-08-25 10:32

    危害:可构造特殊SQL语句注入动网论坛
    测试环境:Dvbbs 7.1.0 Sql版 Sp1 20051114 (到目前2007年3月15日为止最新版本)
    实施条件:有论坛后台管理论坛基本信息的权限。(怎么获得?自己想吧)
    write by :flower.b
    漏洞原因:动网论坛中有很多自动发送PM的地方,很多地方都没有做参数的过滤就直接构造了SQL语句,如:

    '文件 reg.asp
       If Dvbbs.Forum_Setting(46)="1" Then
        
    '发送注册短信
        Dim sender,title,body,UserMsg,MsgID
        sender
    =Dvbbs.Forum_Info(0)
        title
    =Dvbbs.lanstr(2)&Dvbbs.Forum_Info(0)
        body 
    = template.html(18)
        body 
    = Replace(body,"{$Forumname}",Dvbbs.Forum_Info(0))
        sql
    ="insert into dv_message(incept,sender,title,content,sendtime,flag,issend) values('"&username&"','"&sender&"','"&title&"','"&body&"',"&SqlNowString&",0,1)"
        Dvbbs.Execute(sql)
        
    Set rs=Dvbbs.execute("select top 1 ID from [Dv_message] order by ID desc")
        MsgID
    =rs(0)
        Rs.close:
    Set Rs=Nothing
        UserMsg
    ="1||"& MsgID &"||"& sender
        Dvbbs.execute(
    "UPDATE [Dv_User] Set UserMsg='"&Dvbbs.CheckStr(UserMsg)&"' WHERE UserID="&Dvbbs.userid)
    End If


    上面代码中的 sender,title,body 虽然不是用户输入的内容,但配置文件中的字符串就一定没有问题不用过滤?
    此时只要有后台的管理权限,修改下论坛的标题或注册注册消息的模板....嘿嘿。

    同样的问题,还出现在 savepost.asp 中的用户订阅短消息更新提示部分:

    Dvbbs.Execute("insert into dv_message(incept,sender,title,content,sendtime,flag,issend) values('"&Rs(3)&"','"&Dvbbs.Forum_info(0)&"','"&template.Strings(26)&"','"&mailbody&"',"&SqlNowString&",0,1)")

    解决办法:对这些变量增加 Dvbbs.CheckStr() 过滤后再构造SQL。

    后记:动网论坛的注入漏洞层出不穷,与日月同辉。自从SQL注入这门编程“新科学”,被小猪之流在中国发扬光大,动网论坛是所有系统中被爆SQL注入最多、最严重、波及范围最广的ASP网站程序。动网论坛最烂?不是,动网论坛做为结构话编程来说论坛已经太大了!向上面两个地方在使用ADO.NET中的参数方法完全可以避免,但是动网论坛的这种方式,仅依靠程序员个人能力,小心、小心+小心,根本注意不过来这么大的系统,也就不可避免的出现各种各样的注入漏洞。动网论坛做为国内ASP编程的领军人,应该把ASP向面向对象方向发展了!而不是去做什么并不占优势的PHP版!(沙滩的市场是怎么考虑的?)

   分类:[默认分类]阅读(417)评论(1)
网友评论
  • 听书网会员:woaishei 2007-08-28 09:02   
    不错
9314:    
  发表评论
     
  姓名:
  内容: