动易2006网站管理系统NewComment.asp页面参数过滤不足导致sql注入漏洞

鬼仔注:
h4k_b4n授权( http://www.huaidan.org/blog )首发,转载请注明。

h4k_b4n授权内容:
今天委托鬼仔( http://www.huaidan.org/blog )所公开的漏洞信息均为我方提交漏洞后,保留一定时间以后所公开的!任何与该信息产生的责任,与我方以及授权转载方无关!据知已有部分所谓黑客论坛在内部偷取信息然后进行小范围的信息传播,我们鄙视这样子的行为,鄙视偷取信息的某人!

信息来源:Bug.Center.Team内部论坛( http://www.cnbct.org )

发布日期:2006-10-18 应急事件响应公告(BCTCERA0607)

受影系统:动易网站管理系统2006

安全综述:动易2006网站管理系统是一个采用ASP和MSSQL等其他多种数据库生成静态页面构建的高效网站解决方案。

漏洞描述:

第5行:ModuleName = Trim(request("ModuleName"))
……………………
第85行:sqlComment = "Select top " & Num & " C.* from PE_Comment C left join PE_" & ModuleName & " A on C.InfoID=A." & ModuleName & "ID where A.ChannelID= " & ChannelID & " and A.ClassID= " & ClassID & " and C.Passed =" & PE_True
…………

第98行 :Set rsComment = Server.CreateObject("ADODB.Recordset")
rsComment.open sqlComment, conn, 1, 1

上面这段代码没有对ModuleName进行任何过滤就放进了数据库。构造合适的语句,就可以进行注射攻击。

解决方案:过滤request("ModuleName")

测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

Sobiny(Bug.Center.Team)提供了如下测试方法:

NewComment.asp?ChannelID=1&ModuleName=Article A on C.InfoID=A.ArticleID where A.ChannelID=1 and 1=1 ';mssql语句--

其中的mssql可以为任意合法的mssql语句。

厂商补丁:厂商已经发布补丁

关于Bug.Center.Team:
Bug.Center.Team(又名:漏洞预警中心小组)是国内较早成立的以脚本安全为主要方向的网络安全组织,致力于网络和脚本安全问题的研究,在对于脚本程序的修补、维护、漏洞检测都有专业水平,是国内最专业、最经验的安全服务组织,有关Bug.Center.Team的详情请参见: http://www.cnbct.org

相关日志

楼被抢了 5 层了... 抢座Rss 2.0或者 Trackback

  • naughtycat

    呵呵 好牛呀~
    授权鬼仔首发!
    虽然不利用还是支持下吧~

    也BS下偷取内部信息小范围利用的伪黑客 :razz:

  • Asawhite

    发布日期:2006-10-18 应急事件响应公告(BCTCERA0607)
    鬼仔哥,这个日期好像不对吧..

  • naughtycat

    To Asawhite:

    呵呵 我想这是没什么问题的
    因为文中已经很明确的说道,这些漏洞都是先被人发现后,在论坛内部讨论,然后得出结论后,通知程序开发者Bug,然后等待其回应或者补丁发布,在一个国际默认的超时等待之后,漏洞发现者就可以公布漏洞了!

    这是一个惯例,而那个日期证明是去年已经发现的漏洞,只不过现在才公布出来。
    呵呵 替鬼仔回答了,不知道对不对……

    :mad:

  • 鬼仔

    嗯,大概就是naughtycat说的那个意思。

  • xiaoju

    丢`

发表评论