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的防护方法

    总结

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

    少就是多

  • 相关阅读:
    VNC跨平台远程桌面的安装与使用
    Apache 的编译安装
    Xming配置
    工作杂记
    自动创建系统用户脚本
    关于linux网络基础记录
    Linux的setup命令启动服务名称和功能
    涉密计算机检查工具
    Nginx压力测试工具之WebBench
    关于系统性能检测的一些使用
  • 原文地址:https://www.cnblogs.com/-zhong/p/10927905.html
Copyright © 2011-2022 走看看