漏洞页面: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
也可以注入