• PHP代码审计DVWA[XSS (Reflected)]


    XSS (Reflected)反射型XSS

    靶场搭建可用蓝易云服务器

    😘😘😘点击查看详细

    又称为非持久性跨站点脚本攻击,它是最常见的类型的XSS。漏洞产生的原因是攻击者注入的数据反映在响应中。一个典型的非持久性XSS包含一个带XSS攻击向量的链接(即每次攻击需要用户的点击) 恶意代码并没有保存在目标网站,由浏览器解析脚本。

    反射型xss,其实练习完就能感受到比起存储型xss,利用起来要困难很多

    反射型不像存储型会存储在网站上,当别人来访问时就会执行,这里需要我们自己来构造链接诱使用户点击,这比起存储型xss就明显复杂很多,存储xss,类似留言板我们把xss payload仍上去后不用管,只要不被删,用户的信息就会往我们的xss平台上发了

    所以说反射型和存储型在找漏洞的时候就是不一样的,反射型就需要见框就插。

    Low

    代码分析

    
    //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' ] . '
    '
    ; } ?>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在这里插入图片描述

    代码中可以看到,在low级别中没用进行任何的对XSS攻击的防御措施,用户输入什么都会被执行。

    那么我们直接

    <script>alert(/xss/)</script>
    
    • 1

    在这里插入图片描述

    Medium

    代码分析

     <?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
        //过滤掉了