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

    总结

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

    少就是多

  • 相关阅读:
    图解MySQL | [原理解析] MySQL使用固定的server_id导致数据丢失【转】
    故障分析 | 记一次 MySQL 主从双写导致的数据丢失问题【转】
    MySQL8.0之XtraBackup【转】
    使用pt-table-checksum校验MySQL主从复制【转】
    MySQL基于 GTID 的多源复制【转】
    pyenv虚拟环境管理python多版本和软件库【转】
    MySQL SQL编写笔记
    linux安装oracle客户端【转】
    spring-cloud-gateway获取post请求body参数以及响应数据
    spring-webflux中Flux<DataBuffer> 转String
  • 原文地址:https://www.cnblogs.com/-zhong/p/10927905.html
Copyright © 2011-2022 走看看