ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DVWA-XSS (Reflected) 反射性 XSS

2022-06-02 10:05:14  阅读:170  来源: 互联网

标签:XSS name Reflected DVWA 源码 cookie Hello 弹窗


反射性XSS,是非持久性,也是最常见的XSS,通过解析传入前段页面,常见为交互式输入框

LOW

审计源码


<?php
// 发送请求头 
header ("X-XSS-Protection: 0");

// 判断是否传入是否通过 name 键名传参
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // 将 name 传入的内容输入到页面
    echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}

?>

没有对传参name进行任何过滤,所以可以直接进行弹窗
<script>alert(document.cookie)</script>

成功获取cookie

反弹cookie可以去看我的另一篇博客,DVWA-XSS (DOM) DOM型跨站脚本攻击

Medium

审计源码


<?php
// 设置请求头
header ("X-XSS-Protection: 0");

// 判断是否传入 name 键名,和 name 的值是否为空
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // 获取传入的 name值
    // str_replace 替换 <script> 为空
    $name = str_replace( '<script>', '', $_GET[ 'name' ] );

    // 将name 传参内容输入到页面
    echo "<pre>Hello ${name}</pre>";
}

?>

这里将我们传入的<script>脚本标签转为了空,根据str_replace函数的特性,只会进行一个过滤,所以可以进行双写绕过
<scri<script>pt>alert(document.cookie)</script>

成功弹窗

High

审计源码


<?php
// 设置请求头
header ("X-XSS-Protection: 0");

// 判断 name 是否传承那
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // 获取传入的内容
    // 使用 preg_replace 进行正则匹配
    // /.../之间的内容为正则匹配语法
    // .匹配除了换行的任意字符
    // * 匹配前面表达式零次或者多次
    // .* 就是匹配任意字符 
    //  /i 不区分大小写
    // 对 <script> 标签进行了严格的过滤
    $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );

    // 将 name 输入到页面
    echo "<pre>Hello ${name}</pre>";
}

?>

<script>标签进行了严格的过滤,可以使用<img />src自加载特性,进行弹窗
<img src=1 one rror='alert(document.cookie)' />

成功弹窗

Impossible

审计源码

<?php

// 判断是否传入 name
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // 检查 user_token
    checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );

    // 获取传入的 name
    // htmlspecialchars() 函数会对 html 标签进行实例化
    $name = htmlspecialchars( $_GET[ 'name' ] );

    // 将 name 输入到页面
    echo "<pre>Hello ${name}</pre>";
}

// 生成user_token
generateSessionToken();

?>

可以看到,XSS也是非常容易防护的,只需要使用htmlspecialchars函数对html标签进行实例化即可

标签:XSS,name,Reflected,DVWA,源码,cookie,Hello,弹窗
来源: https://www.cnblogs.com/Junglezt/p/16336667.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有