DVWA靶场(八、反射XSS)

一、XSS介绍

XSS,全称Cross Site Scripting,即跨站脚本攻击,某种意义上也是一种注入攻击,是指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行,需要强调的是,XSS不仅仅限于JavaScript,还包括flash等其他脚本语言。根据恶意代码是否存储在服务器中,XSS可以分为存储型的XSS和反射型的XSS。
DOM型的XSS由于其特殊性,常常被分为第三种,这是一种基于DOM树的XSS。例如服务器端经常使用document boby innerHtml等函数动态生成html页面,如果这些函数在引用某些变量时没有进行过滤或检查,就会产生DOM型的XSS。DOM型的XSS可能是存储型,也有可能是反射型。

二、反射XSS(low)

2.1、代码分析,header函数表示禁用xss保护

<?php

header ("X-XSS-Protection: 0"); //禁用xss保护

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Feedback for end user
    echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}

?> 

2.2、输入,出现弹框,存在XSS

三、反射XSS(medium)

3.1、代码分析,通过str_replace()进行过滤,将<script>替换为空

通过大小写绕过,提交,显示弹框

四、反射XSS(high)

4.1、代码分析,使用正则表达式彻底过滤script

4.2、可以采用<img src='1' onerror=alert(/xss/)/>代替script

五、反射XSS(impossible)

5.1、代码分析,进行了csrf防御,另外htmlspecialchars函数把预定义的字符&、”、’、<、>转换为HTML实体,防止浏览器将其作为HTML元素。

常见防范措施

1、过滤用户输入
2、使用htmlspecialchars()过滤
3、使用owasp等安全xss处理API

原文地址:https://www.cnblogs.com/tonywell/p/14033550.html