首页 > 其他分享 >文件上传漏洞--之upload-labs靶场详解11-15关

文件上传漏洞--之upload-labs靶场详解11-15关

时间:2024-07-28 23:53:22浏览次数:16  
标签:11 文件 15 exif -- upload gif php 上传

第11关

第一步:查看源码

这是一个白名单,里面限制了只可以提供它所规定文件jpg,png,gif。

 

这段 PHP 代码主要实现了文件上传的功能,并进行了一些条件判断和处理:

 

首先,定义了两个变量 $is_upload 并初始化为 false ,$msg 初始化为 null 。

 

然后,检查是否通过 POST 方法提交了表单中的 submit 按钮。

 

接着,定义了一个允许上传的文件扩展名数组 $ext_arr ,包含 jpg 、 png 和 gif 。

 

获取上传文件的扩展名,并使用 in_array 函数检查扩展名是否在允许的数组中。

 

如果扩展名合法:

 
  • 获取临时文件的路径 $temp_file 。
  • 生成保存文件的路径 $img_path ,路径包括通过 $_GET['save_path'] 获取的保存位置、随机数、当前时间和文件扩展名。
  • 如果文件移动成功(使用 move_uploaded_file 函数),将 $is_upload 设为 true ;否则,将 $msg 设为 '上传失败!' 。
 

如果扩展名不合法,将 $msg 设为 '只允许上传.jpg|.png|.gif 类型文件!' 。

 

例如,如果用户上传了一个扩展名为 jpg 的文件,并且文件移动成功,那么 $is_upload 会变为 true ,表示上传成功。如果用户上传了一个扩展名为 pdf 的文件,那么 $msg 会被设置为 '只允许上传.jpg|.png|.gif 类型文件!' ,提示用户上传的文件类型不被允许。

 由代码可以得知,文件的路径是可控的,所以save_path是一个可控的变量,后面还有一个后缀名需要绕过,这个时候需要使用%00截断。

第二步:修改php版本,和修改php配置文件内容

修改php版本

修改配置文件内容

修改内容为如图magic_quote_gpc = Off

第三步:burpsuite抓包修改文件路径

第四步:查看访问上传的文件即可

 第12关:

第一步:查看源码

看着和第11关差不多,但是这里换成了post

第二步:抓包看一下

思路就和第十一关一样,但是post方式不会自行解码,所以要对%00进行urldecode编码。

选中%00右键Convert selection进行url编码后放包。

第三步:查看访问muma.php文件

第13关:

第一步:查看源码

第二步:上传图片马

首先,上传一个png图片,在该png图片当中写入我们的php代码,上传成功后,使用文件包含漏洞去调用即可,

别忘了把引用文件的地址写对.其他类型的图片均可以按照此模式进行

需要有一个include.php配合使用

将include.php放在www\upload-labs目录下

include的 内容如下

 <?php
/*
本页面存在文件包含漏洞,用于测试图片马是否能正常运行!
*/
header("Content-Type:text/html;charset=utf-8");
$file = $_GET['file'];
if(isset($file)){
    include $file;
}else{
    show_source(__file__);
}
?> 

第三步:查看访问、成功  例如:http://192.168.1.10/upload-labs/include.php?file=upload/1220240728232019.gif

 第14关:

第一步:查看源码

关键函数是getimagesize

第二步:修改图片马的内容

getimagesize函数会对目标的十六进制的前几个字符串进行读取。比如GIF的文件头问GIF89a,png的文件头为塒NG。所以这关和第十三关一样,我们只需要用notepad打开图片马,在前面加上GIF89A,保存为22.gif

 第三步:访问地址,例如我的是

http://192.168.1.10/upload-labs/include.php?file=upload/9520240728233114.gif

第15关:

第一步 :查看源码

第二步:开启 PHP 的 exif 扩展

要开启 PHP 的 exif 扩展,需要对 PHP 的配置文件(php.ini)进行相应的修改。以下是在 Linux 服务器上开启 exif 扩展的一般步骤:

  1. 找到 PHP 的配置文件,通常在/etc/php/7.x/apache2/php.ini或者/etc/php/7.x/cli/php.ini中(其中7.x表示 PHP 的具体版本号,你需要根据实际情况进行调整)。

  2. 打开配置文件后,搜索关键词exif,找到以下行:

    ;extension=exif

  3. 去掉前面的分号,将其改为:

    extension=exif

  1. 同时,确保满足 exif 扩展的依赖条件。通常需要启用php_mbstring.dll扩展,并且确保它在php_exif.dll之前被加载。如果php.ini文件中php_mbstring.dll扩展被注释掉(前面有分号),则去掉分号。另外,建议将包含php_mbstring.dll的行移动到extension=php_exif.dll之前。例如:

    extension=php_mbstring.dll
    extension=php_exif.dll

  1. 保存修改后的 php.ini 文件。

  2. 最后,重启 apache 服务器或者 php-fpm 服务,以使配置生效。

完成上述步骤后,就成功开启了 PHP 的 exif 扩展。

第三步:访问地址,例如我的是

http://192.168.1.10/upload-labs/include.php?file=upload/2920240728234554.gif

 

标签:11,文件,15,exif,--,upload,gif,php,上传
From: https://blog.csdn.net/weixin_57240513/article/details/140756775

相关文章

  • Spring Core——资源加载与访问(Resource)
    Spring中的资源加载在Spring框架中,Resource接口用于简化和统一对各种底层资源(如xxx.xml、application.yml、application.properties等文件、类路径资源、URL等)的访问。它提供了一个通用的抽象层,使开发者无需关注不同资源类型的具体访问方式。在Java开发中,访问资源是一个常......
  • javascript中的symbol
    symbol的使用功能类似于一种标志唯一性的ID理解唯一性<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><script>lets1=Symbol()lets......
  • 一个贝塞尔曲线编辑工具(2d)
    曲线在unity下如何绘制?类似绘制圆,是用一段一段的线段拼接来模拟的,这边也是类似,可以用一段一段的线段来模拟曲线。 既然要模拟,那我们也得知道贝塞尔曲线的公式才行。一般用的比较多的就是3次贝塞尔曲线,该曲线由起点p1,p1的控制点c1,终点p2,p2的控制点c2组成。公式为:p=p1*(1-t......
  • 从《一兆游戏》学到的知识点
    最近刷到了《一兆游戏》这部日剧,原来以为只是一部热闹夸张的创业爽剧,没想到学到了不少新老知识点。Fakeittilyoumakeit(假装成功直到你能做到)男主从一开始就一直信奉和践行这个原则,没法实现完全的人工智能,就用人工去完成最难的智能的部分。从没有沟通下来投资,就利用不同的......
  • E. Boring Segments
    原题链接题解只要求最大值和最小值的差尽量小,也就意味着,权值位于最大值和最小值之间的线段可以任意取也就是说,我们将线段按权值排序,我们只需要取其中一段区间,然后查看是否覆盖了完整的区间,如果是,判断能否更新最小值这样看起来是两次for循环找区间,对于查看是否完整覆盖区间的部......
  • cpu 爆满了,怎么处理
    一、问题定位1)缓存命中率过高:缓存命中率过高可能导致大量请求直接落在Redis上,而Redis单线程模型在处理这些请求时可能无法及时响应,从而导致CPU使用率上升。2)高并发写入:在高并发的数据写入场景下,Redis需要频繁处理写入请求,这会导致CPU使用率升高。3)慢查询或高消耗命令:使用了......
  • 烧录算法制作
    前言在使用Keil的时候,我们一般会通过一个下载器与目标芯片连接,这样就可以实现的代码下载或调试。那么下载器是如何将我们的应用程序烧写在我们芯片内部Flash当中的呢,是否可以同样的方式烧录在外部Flash上呢?这是此片文章所要说明的。MDK下载算法原理通过MDK创建一批与地址信息无......
  • Mocreak Office Installer(Office安装部署工具) v2.3.0.703 中文绿色版
    概述Mocreak是一款一键自动化下载、安装、部署正版Office的办公增强工具。该工具完全免费、无广告、绿色、无毒、简约、高效、安全。软件特点一键快速下载、安装、部署最新版MicrosoftOffice软件。提供简约、高效,且可自定义的图形界面,提升部署效率。支持将Office安装......
  • vue路由处理
    npminstall-g@vue/clivuecreatevue3-dynamic-routingcdvue3-dynamic-routing```npminstallvue-router@nextvuex@next 我们先定义一个简单的权限模型,以便后续使用。 在实际应用中,权限模型会更加复杂,我们可以根据实际需求进行扩展```javascript//src/store/inde......
  • Ascend C算子开发指南2
    AscendC算子开发指南AscendC的特点C/C++原生编程:AscendC原生支持C和C++标准规范。屏蔽硬件差异:编程模型屏蔽了硬件差异,提高了代码的通用性。API封装:类库API封装,既保证易用性,又兼顾高效性。孪生调试:支持在CPU侧模拟NPU侧的行为,便于调试。开发基本流程环境准备:安装CANN开......