什么是反射型XSS攻击(Reflected XSS Attacks)?
先来解释一下反射型XSS攻击的过程:攻击者把恶意代码注入到正常的URL之中,然后把带有恶意代码的URL通过邮件或者其他网站链接形式发送给用户。当用户被诱骗点击恶意链接、提交精心设计的表单,甚至浏览恶意网站时,注入的代码会传到易受攻击的网站服务器。服务器端接收数据处理后,再把带有恶意代码的数据返回用户的浏览器。由于数据来自可信网站,用户浏览器会正常接收、解析,最终照成了XSS漏洞。
整个过程就像一次反射过程,称为反射型XSS。
反射型XSS的特点是非持久化(Non-Persistent),必须由用户点击带有特定参数的URL才能引起,也称为Type-II XSS。
反射型XSS需要经过后端服务器,但是不经过数据库。而DOM型XSS是通过URL传入参数触发,它是不经过服务器端的。
low
先来最简单的测试一下,输入abcd<>’/",结果显示如下
应该是什么都不过滤的。
看看源代码
<?php
header ("X-XSS-Protection: 0");
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// Feedback for end user
echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}
?>
也确实如此,name参数没有任何过滤。
我们再输入<img src=1 alert(‘haha’)>
结果如下
Medium
直接看源码
<?php
header ("X-XSS-Protection: 0");
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] !&#