首页 > 其他分享 >记录自己在upload-labs的解题过程

记录自己在upload-labs的解题过程

时间:2024-06-02 11:33:12浏览次数:22  
标签:文件 upload labs 解题 file php 上传 图片

第十二关(get%00截断)

打开第十二关,查看源代码发现进行了白名单过滤,只允许上传jpg、png、gif的图片格式,

move_uploaded_file

本函数检查并确保由 file 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 newloc 指定的文件。 

该函数遇到%00会被截断,从而可以实现对php文件的上

那么我们就先上传一个php文件,配合burpsuite抓包,上传之后如图下所示

我们的目的主要是想上传一个php文件,然后对php文件进行绕过(若上传一个png的图片,那就直接获得webshell了

可以看到,该php文件不允许上传,但是我们可以从save_path(保存的文件路径)中得到提示,我们需要在upload/添加webshell11.php%00,将filename的后缀进行修改,改成webshell11.png,如下图

我们先在浏览器上看看能否访问成功,如果成功再使用蚁剑进行连接后台,糟糕,发现不能访问成功,发现上述又出现了警告的提示,暂时还未找到原因,找到的时候再告诉大家巴。

第十三关(post%00截断)

进入第十三关,查看源代码发现跟12关相比,只是提交方式发生了改变,继续上传一个php文件,使用burpsuite抓包得到如下图

还是跟第1关一样的做法,只是位置发生了改变,继续在save_path上加入webshell12.php%00,在filename上修改后缀为png,将content-type修改成image/png,如下图

这里要注意一下,post使用%00是需要经过url解码之后的,原因是post不会自动解码,而get方式会自动解码

但是发现还是上传失败,思路,方法就在这里啦

重新下载了一个新的upload-load,里面配合着文件包含的漏洞进行

第十四关(图片马+文件包含漏洞)

进入第十四关,发现提示,说需要上传一个图片马

使用notepadd在一张图片编辑木马格式(此图片可以先找一张正常的图片,因为正常的图片文件头会显示,这样就能避开文件头的影响

上传之后复制图片地址路径,进入浏览器访问,访问时我们可以用文件包含漏洞继续访问,该文件存在include.php文件,里面存在file参数,我们进行传参可以得到下图

使用蚁剑进行连接,这样就表示上传成功啦!

第十五关(图片马getimagesize()+文件包含)

进入第十五关,发现提示使用getimagesize()检查是否为图片文件,我们依旧使用图片马的格式进行上传,上传之后,先访问浏览器看是否访问成功,若成功,就可以使用蚁剑进行连接

发现上图,访问成功,使用蚁剑进行连接

第十六关(exif_imagetype()函数绕过)

进入第十六关,查看源代码,发现了一个函数exif_imagetype() 

exif_imagetype() 读取一个图像的第一个字节并检查其签名。

发现需要开启php_exif模块,打开phpstudy--->点击其他选项菜单--->打开配置文件--->php.ini--->擦查找exif文件,将前面的;去掉保存即可

上传一个图片马,利用文件包含漏洞得到访问地址,再利用蚁剑进行连接,

不知道为什么我上传的图片的时候页面显示黑色了,操作都跟前两题差不多

第十七关(二次渲染绕过)

进入第十七关,查看源代码,发现此关对上传图片进行了文件后缀的判断以及文件类型判断

(($fileext == "jpg") && ($filetype=="image/jpeg"))

还有imagecreatfromjpeg函数对图片的判断

$im = imagecreatefromjpeg($target_path)

对于二次渲染:二次渲染指的是网站接受用户上传的文件后会再进行对文件的二次操作 

二次渲染最好用的是gif格式的图片,方便绕过

文件上传之二次渲染(专用图).zip - 蓝奏云

那我们就先上传一个gif格式的图片 ,再利用文件包含漏洞配合获取webshell权限

127.0.0.1/upload-labs/include.php?file=upload/xxx.gif

这里我上传的时候跟第十六关一样,也是上传的时候黑屏了,我就不演示给大家看了,重要的还是思路

第十八关(条件竞争)

进入第十八关,查看提示说要代码审计,查看源代码,解释一下

首先创建$ext_arr数组,用于存储允许的文件扩展名(jpg、png、gif) 

使用move_uploaded_file()函数将文件从临时目录移动到目标目录。

如果文件成功移动,则检查文件扩展名是否在允许的数组中。如果是,则使用随机数和当前日期时间重命名文件,并将

标签:文件,upload,labs,解题,file,php,上传,图片
From: https://blog.csdn.net/2302_78903258/article/details/139365048

相关文章

  • CF720B 解题报告
    题目大意给定一个仙人掌,每条边有颜色,求将原仙人掌断边成树后边权最多有多少不同的。解题报告仙人掌有性质为:一条边不会在多个环内。意味着各个环的操作是独立的。考虑统计所有环上的颜色和数量,此部分易实现。最大化颜色种类数,等价于最小化所失去的颜色数量。易转化成强制无法......
  • 【408精华知识】Cache类题目解题套路大揭秘
    有关Cache的题目,需要理解Cache的工作原理,也即给出一个地址,要知道如何在Cache中寻找或者如何将其从主存中复制入Cache,同时理解Cache中具体是如何存储的,包含三种存储方式,分别是直接映射、全相联映射、组相联映射。下面我们就此进行探讨。先看这张图,详细展示了Cache的工作......
  • 【408精华知识】主存相关解题套路大揭秘!
    讲完了Cache,再来讲讲主存是怎么考察的,我始终认为,一图胜千言,所以对于很多部件,我都是通过画图进行形象的记忆,那么接下来我们对主存也画个图,然后再来详细解读其考察套路~文章目录零、主存的真面目一、按存储方式分类的存储器(一)随机存取存储器(RandomAccessMemory,RAM)1.......
  • 【全网最全】2024电工杯A题22页参考论文+所以小问配套解题代码+可视化图表
             A题:园区微电网风光储协调优化配置2024电工杯数学建模A题成品论文+Matlab,py双版本解题代码+代码运行高清结果图https://mbd.pub/o/bread/ZpaVlZ1s问题1:各园区独立运营储能配置方案及其经济性分析  (1)分析未配置储能时各园区运行的经济性,包括:购......
  • INFINI Labs 产品更新 | Easysearch 1.8.0 发布数据写入限流功能
    INFINILabs产品又更新啦~,包括Easysearchv1.8.0、Gateway、Console、Agent、Loadgenv1.25.0。本次各产品更新了很多亮点功能,如Easysearch新增数据写入限流功能,可实现节点、分片级限流;Gateway修复数据迁移过程中因消费不及时解压缩导致部分数据记录损坏而丢失记录问题,进一......
  • INFINI Labs 产品更新 | Console 1.24.0 操作日志审计功能发布
    INFINILabs产品又更新啦~,包括Console,Gateway1.24.0。本次各产品更新了很多亮点功能,如Console增加操作日志审计功能,优化数据探索字段统计,修复Gateway增加认证后添加实例失败等问题。以下是本次更新的详细说明。INFINIConsolev1.24.0INFINIConsole是一款非常轻量级的......
  • [996] Upload a file to an Amazon S3 bucket and obtain the URL of it using Python
    Certainly!TouploadafiletoanAmazonS3bucketusingPython(specificallywiththeboto3library)andobtainthelink(URL)forthatfile,followthesesteps:InstallBoto3:Makesureyouhavetheboto3libraryinstalled.Ifnot,youcaninstallit......
  • UploadLabs靶场
    目录Pass-01Pass-02Pass-03Pass-04Pass-05Pass-06Pass-07Pass-08Pass-09Pass-10Pass-11Pass-12Pass-13Pass-14Pass-15Pass-16Pass-17Pass-18Pass-19Pass-20都是鄙人做题思路记下来的一些心得笔记罢了。Pass-01先传一个图片过去,成功上传。尝试传muma过去,提示失败,但是这个提......
  • antd upload action 不写(前端解析内容)
     在使用AntDesign的Upload组件时,如果不提供action属性,那么文件的上传处理需要通过customRequest属性来自定义实现。以下是一个不使用action属性,而是通过customRequest实现文件上传的例子: importReactfrom'react';import{Upload,message,Button}from'antd';imp......
  • El-Upload组件上传图片并添加水印
    背景有的时候我们需要在上传图片中添加一些水印标识,然后上传至服务器效果图代码需求:点击直接预览图片,而不需要使用dialog上传图片添加水印后才预览图片上传图片文件添加水印。使用watermarkjs库转换将添加水印的图片转换成base64,更新预览图片的内容,否则预览的......