微尔网站管理系统注入漏洞

2010, April 10, 3:52 PM. 漏洞分析
Submitted by admin

漏洞页面:ProductShow.asp ,videoShow.asp

问题代码:

一:
videoShow.asp
<!--#include file="Inc/SysVideo.asp" -->
<!--#include file="inc/Check_Sql.asp"-->  //头文件调用了 防注入页面,
<!--#include file="inc/mkmenu.asp"-->
<!--#include file="admin/config.asp"-->  
------------------------------以上省略部分代码--------------------------------------------------

dim ID
ID=trim(request("ID"))  //问题出在这,request对象并没有指出用哪种方式提取变量id,
if Id="" then  
 response.Redirect("Video.asp")  //如果id为空,则跳到Video.asp页面,
end if

sql="select * from Download_video where ID=" & ID & "" //这里id直接代入数据库查询,
Set rs= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,3

----------------------------以下省略部分代码--------------------------------------------------

变量都可以用request来直接取得的,并且是有先后顺序的,譬如你用这样的语句request("id")取得id变量,asp会先从Form过来的数据找变量,然后是QueryString部分,然后是Cookie部分。但是如果你指定了request.cookies("id")就只会从cookie里找变量内容,没有的话就为空,同理,如果用的是request.form("id")就会只从表单里取变量而不会理会其他提交方式中的内容。这三个取得变量的地方也是是我们经常提交数据的地方,并且都是很容易就能修改的,而videoShow.asp他写的是直接request("id"),并没有指明是那种方式,即使加了防注入,我们也可以突破防注入,用cookies注入,修补办法就是加上request的方法,把request("id")改为request.queryString("id"),

看看防注入页面,防注入页面只对  '----- 对 get query 值 的过滤.和 '-----对 post 表 单值的过滤.

也就是过滤了request.QueryString和request.form的方法,而并没有过滤request.cookies的方法,cookies注

入也就产生了

二:

ProductShow.asp:

<!--#include file="Inc/SysProduct.asp" -->  //头文件
<!--#include file="jjfunc.asp"-->     //这里程序员忽略了调用 防注入系统,
<%
ShowSmallClassType=ShowSmallClassType_Article
dim ID
ID=trim(request("ID"))   /这里 trim函数过滤了空格  注意他是直接提取id变量的值,没指哪种方式,而防                          注入系统只检查request.form和request.queryString,而request.cookies忽略了                           存在cookies注入,修补办法就是将request("ID")改为request.queryString(ID),
if ID="" then
 response.Redirect("Product.asp")  //id为空,则转向Product.asp页面,
end if

sql="select * from Product where ID=" & ID & ""   //这里id参数直接代入数据库查询,
Set rs= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,3
if rs.bof and rs.eof then
 response.write"<SCRIPT language=JavaScript>alert('找不到此产品!');"
  response.write"javascript:history.go(-1)</SCRIPT>"
else 
 rs("Hits")=rs("Hits")+1
 rs.update
Start=Rs("Title")
BigClassName=Rs("BigClassName")
SmallClassName=Rs("SmallClassName")
 

%>

漏洞就为大家简单介绍完了,总结来说,就是ProductShow.asp ,videoShow.asp页面都存在cookies注入,而

ProductShow.asp 由于忽略了调用防注入页面,可以直接注入,

具体利用方法 看下个动画,就先到这里,


漏洞利用:

现在本机测试,直接注入ProductShow.asp页面,

  可以注入  现在去测试下 官方网站
  官方网站也可以注入

去网上找个

都可以注入  下面给大家演示下 cookies注入

 Powered by:VierCMS
  也可以注入

Tags: 微尔

« 上一篇 | 下一篇 »

只显示10条记录相关文章
微尔文章系统v1.51 (修正版)上传漏洞 (浏览: 10682, 评论: 0)
微尔文章系统v1.51漏洞 (浏览: 10952, 评论: 0)
Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
发表评论

评论内容 (必填):