又称为非持久性跨站点脚本攻击,它是最常见的类型的XSS。漏洞产生的原因是攻击者注入的数据反映在响应中。一个典型的非持久性XSS包含一个带XSS攻击向量的链接(即每次攻击需要用户的点击) 恶意代码并没有保存在目标网站,由浏览器解析脚本。
反射型xss,其实练习完就能感受到比起存储型xss,利用起来要困难很多
反射型不像存储型会存储在网站上,当别人来访问时就会执行,这里需要我们自己来构造链接诱使用户点击,这比起存储型xss就明显复杂很多,存储xss,类似留言板我们把xss payload仍上去后不用管,只要不被删,用户的信息就会往我们的xss平台上发了
所以说反射型和存储型在找漏洞的时候就是不一样的,反射型就需要见框就插。
代码分析
//X-XSS-Protection: 1 :强制XSS保护(用户禁用XSS保护时有用)
//X-XSS-Protection: 0 :禁用XSS保护
header ("X-XSS-Protection: 0");
// Is there any input?
//判断值非空
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// Feedback for end user
//输入用户输出的值
echo 'Hello '
. $_GET[ 'name' ] . '';
}
?>

代码中可以看到,在low级别中没用进行任何的对XSS攻击的防御措施,用户输入什么都会被执行。
那么我们直接
<script>alert(/xss/)</script>

代码分析
<?php
//X-XSS-Protection: 1 :强制XSS保护(用户禁用XSS保护时有用)
//X-XSS-Protection: 0 :禁用XSS保护
header ("X-XSS-Protection: 0");
// Is there any input?
//获取用户输入的值
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// Get input
//过滤掉了
$name = str_replace( '