当前位置: 首页 > article >正文

XSS LABS - Level 1 过关思路

关注这个靶场的其他相关笔记:XSS - LABS —— 靶场笔记合集-CSDN博客

0x01:过关流程

通过 URL 可以看到,name 字段后面的值被回显到了页面上,我们可以通过更改 name 字段对应的值,来操作页面上的内容:

比如,我这里传参:name=Blue17

既然有回显点,那就推测可能存在 XSS 漏洞,这里直接对 name 参数传递一个简单的 XSS Payload 进行测试:

 <script>alert(1)</script>

成功过关:

0x02:源码分析

下面的内容是 Level 1 的 PHP 源码,以及我对源码的一些注解:

<!DOCTYPE html><!--STATUS OK-->
<html>

<head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <script>
        // 修改 alert 的默认行为,当你通过 XSS 漏洞调用 alert 函数的时候,实际执行的会是下面 function() 中的内容
        window.alert = function() {
            confirm("完成的不错!"); // 弹出“鼓励的话”
            window.location.href = "level2.php?keyword=test"; // 跳转到 Level2 并通过 GET 方式向 keyword 传参 test
        }
    </script>
    <title>欢迎来到level1</title>
</head>

<body>
    <h1 align=center>欢迎来到level1</h1>
    <?php
    ini_set("display_errors", 0); // 关闭错误信息的显示
    $str = $_GET["name"];   // 获取 GET 参数中 name 对应的值
    echo "<h2 align=center>欢迎用户" . $str . "</h2>"; // 直接将 name 字段拼接后显示,没做任何过滤 => XSS 漏洞
    ?>
    <center><img src=level1.png></center>
    <?php
    echo "<h3 align=center>payload的长度:" . strlen($str) . "</h3>"; // 输出 name 变量值的长度
    ?>
</body>

</html>

这个是 Level 1 的关卡,没有做过滤,只是简单的将用户输入内容进行拼接回显,导致出现了 XSS 漏洞,通过源码分析,我们知道了为啥我们只有注入 alert() 的时候,才会进入下一关。


http://www.kler.cn/a/280438.html

相关文章:

  • 【代码随想录训练营第42期 Day38打卡 - 动态规划Part6 - LeetCode 322. 零钱兑换 279.完全平方数 139.单词拆分
  • 【硬核】开源的高性能轻量级ORM框架
  • nacos 动态读取nacos配置中心项目配置
  • 数据结构与算法(快速基础C++版)
  • 【2024】Datawhale AI夏令营-从零上手Mobile Agent-Task1笔记
  • SpringBoot + AOP 解决审计日志记录
  • MySQL中处理JSON数据
  • 【自动驾驶】控制算法(四)坐标变换与横向误差微分方程
  • html标签大合集一文入门
  • Ubuntu 24.04 安装 intel 编译器
  • SpringBoot集成kafka-自定义拦截器(可以在拦截器中做记录日志、安全检查等操作)
  • 《上海服饰》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • 垃圾分类目标检测检测系统源码分享 # [一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]
  • iframe中postmessage重复返回多次相同信息
  • Python办公自动化实现考试系统生成Word试卷【2】
  • Redis | 非关系型数据库Redis的初步认识
  • Java | Leetcode Java题解之第372题超级次方
  • 这个神奇的网站提供各种图的R代码供您参考!
  • 基于smach的状态机设计【1】
  • 【Three.js基础学习】19.Custom models with Blender