XSS LABS - Level 14 过关思路

2024-08-28 08:44
文章标签 14 level xss labs 思路 过关

本文主要是介绍XSS LABS - Level 14 过关思路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

0x01:关卡配置

这一关有些特殊,需要链接到外部站点,但是这个站点已经挂了,无法访问:

所以笔者就根据网上的资料,对这一关进行了修复。由于本关需要读取上传图片的 EXIF 信息(这个下面会讲),所以需要更改 PHP 的配置。下面所有的操作都是针对 PhpStudy 进行的。

1. 查看当前站点使用的 PHP 版本,这里我使用的是 php5.3.29nts:

2. 访问 php 环境目录:

3. 找到对应的配置文件 php.ini

4. 在 php.ini 中搜索下面的内容,然后将前面的分号去掉就好,如下(记得保存修改后的内容):

5. 配置完成后,打开小皮面板,重启 Apache 服务即可:

0x02:过关流程

有些网站具有读取并展示图片 EXIF 信息的功能,比如下面这个网站:

EXIF信息查看器无需安装软件,只需上传照片即可查看完整EXIF信息,包括机身、镜头型号、拍摄时间、相机快门次数,支持JPEG、TIFF、CR2、NEF、XMP等多种图片格式。无需下载,比Exif Show, ExifPro更好用的EXIF查看器!icon-default.png?t=N7T8https://exif.tuchong.com/

知识拓展:EXIF 信息

EXIF,即可交换图像文件格式,是一种包含各种元数据的数据,包括相机设置、拍摄日期和时间,如果打开了 GPS,可能还包括位置信息。

简而言之,就是图片中携带了信息,这个信息包括拍摄设备的参数,拍摄的时间,拍摄的地点等等敏感数据(之前是有过泄露的,CTF 也很爱出)。

而这些信息,我们是可以编辑的,回归本题,我们上传一张图片看看效果(笔者上传的时候代码报错了,虽然上传的确实是正常的图片,也不知道为啥,所以各位测试的时候,可以多备几张图片看看):

既然能回显图片的 EXIF 信息,那么每个位置其实都是回显点,下面我们来尝试编辑 EXIF 信息:

随便找个图片,右击,选择属性,然后选择详细信息,将 XSS Payload 随便找个位置写入:

 <script>alert(1)</script>

然后打开靶场,上传这张图片,可以看到攻击成功了,这关也就过啦(有点小众):

0x03:源码分析

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

 <html>​<head><meta http-equiv="content-type" content="text/html;charset=utf-8"><title>欢迎来到level14</title></head>​<body><h1 align=center>欢迎来到level14</h1><!-- <center><iframe name="leftframe" marginwidth=10 marginheight=10 src="http://www.exifviewer.org/" frameborder=no width="80%" scrolling="no" height=80%></iframe></center> --><center><iframe name="leftframe" marginwidth=10 marginheight=10 src="exifviewer.php" frameborder=no width="80%" scrolling="no" height=80%></iframe></center><center>这关成功后不会自动跳转。成功者<a href=level15.php?src=1.gif>点我进level15</a></center></body>​</html>

这个源码没啥,就是通过一个 iframe 框架,引入了一个新的页面(exifviewer.php 就是我后写的用来识别图片 EXIF 的网页)。这里面没有做任何过滤,主要就是提供一个新的思路。

下面是 exifviewer.php 的文件内容(从靶场介绍中可以直接下载我修改后的靶场文件,没必要自己一个一个改,挺麻烦的,靶场介绍我会在当前靶场过关笔记都发布完成后最后发布,别问为啥不先发布,问就是因为存货。)

 // exifviewer.php<!-- Level 14 调取页面 -->​<!DOCTYPE html><html lang="en">​<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>exifviewer</title></head>​<body><center><form action="#" method="post" enctype="multipart/form-data"><label for="file">请上传一张图片:</label><input type="file" name="file" id="file"><input type="submit" name="submit" value="提交"></form></center></body>​</html><?php// 允许上传的图片后缀$allowedExts = array("gif", "jpeg", "jpg", "png");$temp = explode(".", $_FILES["file"]["name"]);$extension = end($temp);​// 检查文件扩展名  if (!in_array($extension, $allowedExts)) {echo "错误:非法的文件格式。";exit;}​// 尝试获取图像尺寸以验证图像  $imageInfo = getimagesize($_FILES["file"]["tmp_name"]);if (!$imageInfo) {echo "错误:上传的不是有效的图像文件。";exit;}​// 检查文件上传错误  if ($_FILES["file"]["error"] > 0) {echo "错误:上传文件时发生错误: " . $_FILES["file"]["error"] . "<br>";exit;}​// 尝试移动文件  $uploadDir = "uploads/"; // 确保此目录存在且可写  $targetPath = $uploadDir . basename($_FILES["file"]["name"]);if (!move_uploaded_file($_FILES["file"]["tmp_name"], $targetPath)) {echo "错误:无法移动文件。";exit;}​// 读取EXIF信息  $exif = exif_read_data($targetPath, 0, true);if ($exif !== false) {echo "<h4>[" . basename($_FILES["file"]["name"]) . "]的EXIF信息:</h4>";foreach ($exif as $key => $section) {foreach ($section as $name => $val) {echo "$key.$name: $val<br />\n";}}} else {echo "无法读取EXIF信息。";}?>

这篇关于XSS LABS - Level 14 过关思路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1114282

相关文章

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

三相直流无刷电机(BLDC)控制算法实现:BLDC有感启动算法思路分析

一枚从事路径规划算法、运动控制算法、BLDC/FOC电机控制算法、工控、物联网工程师,爱吃土豆。如有需要技术交流或者需要方案帮助、需求:以下为联系方式—V 方案1:通过霍尔传感器IO中断触发换相 1.1 整体执行思路 霍尔传感器U、V、W三相通过IO+EXIT中断的方式进行霍尔传感器数据的读取。将IO口配置为上升沿+下降沿中断触发的方式。当霍尔传感器信号发生发生信号的变化就会触发中断在中断

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

如何打造个性化大学生线上聊天交友系统?Java SpringBoot Vue教程,2025最新设计思路

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 | SpringBoot/SSM Python实战项目 | Django 微信小程序/安卓实战项目 大数据实战项目 ⚡⚡文末获取源码 文章目录

PMP–一、二、三模–分类–14.敏捷–技巧–看板面板与燃尽图燃起图

文章目录 技巧一模14.敏捷--方法--看板(类似卡片)1、 [单选] 根据项目的特点,项目经理建议选择一种敏捷方法,该方法限制团队成员在任何给定时间执行的任务数。此方法还允许团队提高工作过程中问题和瓶颈的可见性。项目经理建议采用以下哪种方法? 易错14.敏捷--精益、敏捷、看板(类似卡片)--敏捷、精益和看板方法共同的重点在于交付价值、尊重人、减少浪费、透明化、适应变更以及持续改善等方面。

2021-8-14 react笔记-2 创建组件 基本用法

1、目录解析 public中的index.html为入口文件 src目录中文件很乱,先整理文件夹。 新建components 放组件 新建assets放资源   ->/images      ->/css 把乱的文件放进去  修改App.js 根组件和index.js入口文件中的引入路径 2、新建组件 在components文件夹中新建[Name].js文件 //组件名首字母大写

2021-08-14 react笔记-1 安装、环境搭建、创建项目

1、环境 1、安装nodejs 2.安装react脚手架工具 //  cnpm install -g create-react-app 全局安装 2、创建项目 create-react-app [项目名称] 3、运行项目 npm strat  //cd到项目文件夹    进入这个页面  代表运行成功  4、打包 npm run build

用Python实现时间序列模型实战——Day 14: 向量自回归模型 (VAR) 与向量误差修正模型 (VECM)

一、学习内容 1. 向量自回归模型 (VAR) 的基本概念与应用 向量自回归模型 (VAR) 是多元时间序列分析中的一种模型,用于捕捉多个变量之间的相互依赖关系。与单变量自回归模型不同,VAR 模型将多个时间序列作为向量输入,同时对这些变量进行回归分析。 VAR 模型的一般形式为: 其中: ​ 是时间  的变量向量。 是常数向量。​ 是每个时间滞后的回归系数矩阵。​ 是误差项向量,假