XSS LABS - Level 12 过关思路

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

0x01:过关流程

进入靶场,右击页面,查看网页源代码:

可以发现,本关依旧存在隐藏参数点,凭感觉,我觉得 t_ua 字段有搞头。这里的 t_ua 的值其实是请求包中的 User-Agent 字段值,通过 javascript 同样不可操作,但可以读取:

知识拓展:HTTP User-Agent

User-Agent 同样是 HTTP 请求头的一部分,它的主要作用是向服务器提供关于发起请求的客户端(如浏览器、移动应用、爬虫等)的型号信息。服务端获取这些信息后,可以做下面这些事情:

  1. 兼容性处理: 由于不同的浏览器对 HTML、CSS 和 JavaScript 等技术的支持程度不同,服务器可能会根据 User-Agent 字段来发送特定版本的脚本或者样式表,以确保网页在不同浏览器上都能正常显示和工作。

  2. 安全策略: 在一些情况下,服务器可能会根据 User-Agent 来实施安全策略。例如,如果 User-Agent 表明请求来自一个爬虫或自动化工具,而该工具没有遵循网站的 robots.txt 规则,服务器可能会拒绝其访问或限制其访问频率。

因为攻击需要修改请求包的 User-Agent 字段,所以需要我们借助一些专业的工具,这里我选择的是 HackBar(浏览器插件,比较方便),HackBar 的详细教程链接如下:

HackBar 插件详解:功能介绍、安装步骤与使用教程_hackbar 来编码-CSDN博客文章浏览阅读778次,点赞29次,收藏9次。HackBar 是一个辅助进行网络渗透测试和安全评估的浏览器插件。它提供了一系列快捷工具和功能,可以帮助用户执行各种网络攻击和测试,包括 XSS、SQL 注入、CSRF、XXE、路径穿越等漏洞,以下是 HackBar 插件的一些主要特点和功能:自定义请求发送:HackBar 允许用户自定义 HTTP 请求,并可以通过插件直接发送这些请求。用户可以手动构造 GET 和 POST 请求,并添加自定义的 HTTP 头部、参数等信息。编码/解码工具。_hackbar 来编码https://blog.csdn.net/m0_73360524/article/details/141298896本关过关还是比较容易的,构造参数,逃逸出 value 即可,所以 Payload 以及攻击流程如下:

html 复制代码
 " type="text" onmouseover="alert(1)

0x02:源码分析

下面是 XSS LABS Level 12 的后端源码,以及我对其的部分笔记:

php 复制代码
<!DOCTYPE html><!--STATUS OK-->
 <html>
 ​
 <head>
     <meta http-equiv="content-type" content="text/html;charset=utf-8">
     <script>
         // 修改 alert 的默认行为,跳转到下一关
         window.alert = function() {
             confirm("完成的不错!");
             window.location.href = "level13.php?keyword=good job!";
         }
     </script>
     <title>欢迎来到level12</title>
 </head>
 ​
 <body>
     <h1 align=center>欢迎来到level12</h1>
     <?php
     ini_set("display_errors", 0);
     $str = $_GET["keyword"];
     $str00 = $_GET["t_sort"];
     $str11 = $_SERVER['HTTP_USER_AGENT'];   // 接收请求包中的 User-Agent 字段值
     // 过滤了 User-Agent 中的 <> 号后,直接回显,导致了 XSS 漏洞的发生
     $str22 = str_replace(">", "", $str11);
     $str33 = str_replace("<", "", $str22);
     echo "<h2 align=center>没有找到和" . htmlspecialchars($str) . "相关的结果.</h2>" . '<center>
 <form id=search>
 <input name="t_link"  value="' . '" type="hidden">
 <input name="t_history"  value="' . '" type="hidden">
 <input name="t_sort"  value="' . htmlspecialchars($str00) . '" type="hidden">
 <input name="t_ua"  value="' . $str33 . '" type="hidden">
 </form>
 </center>';
     ?>
     <center><img src=level12.png></center>
     <?php
     echo "<h3 align=center>payload的长度:" . strlen($str) . "</h3>";
     ?>
 </body>
 ​
 </html>

源码没有什么,主要问题还是在于,如何利用?不同于 Referer 字段,多少还能带点控制,User-Agent 直接就是客户端的属性,这个咋改?(开发插件改?)

相关推荐
2601_9540056211 分钟前
# ricon SVG 编辑器:工业图元的“军火工厂“
前端·物联网·数学建模·架构·编辑器·制造
codeniu12 分钟前
一个人,5天,从想法到上线:我用 TRAE 跑通全链路开发的完整实录
前端
shaibdoio15 分钟前
RPA自动化获客怎么落地?瞬维AI评论区工程实践
前端·自动化·rpa·长沙瞬维ai
计算机魔术师19 分钟前
807亿亏配900%留存:ANT招股书把AI的拧巴摊在桌上了
前端
未来之窗软件服务30 分钟前
web网络请求竞态问题与取消方案-东方仙盟
前端·状态模式·仙盟创梦ide·东方仙盟·网络取消
wshzd1 小时前
LLM之Agent(120)|DeepSeek-Harness(二十七)Workflow 引擎与 Ralph 循环
前端·数据库·人工智能
涛涛ing1 小时前
React Compiler 1.0 之后,状态管理库正在被重新定义
前端
乘风gg1 小时前
出事了,AI 提效后,老板让我裁员20%
前端·后端·ai编程
Amos_Web1 小时前
Rspack 源码解析(三十二):rspack_plugin_runtime 如何抽象 chunk 加载与启动
前端
持敬chijing1 小时前
系统入侵与攻击工具-正反向 Shell 深度对比与多种反弹姿势
安全·网络安全·网络攻击模型