zoukankan      html  css  js  c++  java
  • DVWA-10.3 XSS (DOM)(DOM型跨站脚本攻击)-High-锚的使用

    High Level

    查看源码

    <?php
    
    // Is there any input?
    if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) {
    
        # White list the allowable languages
        switch ($_GET['default']) {
            case "French":
            case "English":
            case "German":
            case "Spanish":
                # ok
                break;
            default:
                header ("location: ?default=English");
                exit;
        }
    }
    
    ?>

    可以看出,服务器端代码先判断defalut值是否为空,如果不为空的话,再用switch语句进行匹配,如果匹配成功,则插入case字段的相应值,如果不匹配,则插入的是默认的值。

    由于开发人员现在在服务器端只列出允许的语言白名单,我们必须找到一种无需将代码发送到服务器即可运行代码的方法。

    漏洞利用

    URL的锚(#符号之后的任何内容)不会发送到服务器,因此无法被阻止。

    访问链接:

    http://127.0.0.1/dvwa/vulnerabilities/xss_d/?default=English # <script>alert(1)</script>

    可以看到,我们的script脚本成功执行了。

    我们查看源代码,可以看到,脚本被插入到代码中,所以执行了。

  • 相关阅读:
    OCP-1Z0-052-V8.02-112题
    OCP-1Z0-052-V8.02-109题
    OCP-1Z0-052-V8.02-41题
    OCP-1Z0-052-V8.02-40题
    OCP-1Z0-053-V12.02-492题
    基于MysqlConnector/C++的数据库连接池的实现
    mysql Connector C/C++ 多线程封装
    OCP-1Z0-052-V8.02-108题
    OCP-1Z0-052-V8.02-105题
    OCP-1Z0-052-V8.02-104题
  • 原文地址:https://www.cnblogs.com/zhengna/p/12780406.html
Copyright © 2011-2022 走看看