upload-labs 文件上传靶场

第一关

  1. 查看源码
    image-20220418232008287
  2. 使用burp抓包,发现第一关点击上传时没有发送数据包,因此判断改关卡是使用前端对上传的文件进行验证的。
    image-20220418232008287
  3. 查看前端页面,发现点击提交时,会触发checkFile函数对上传的文件名进行验证。
    image-20220418232008287
  4. 由于前端我们是可以修改的,因此只需要把οnsubmit="return checkFile()去掉,即提交文件时不再触发checkFile函数对文件名进行验证。
    image-20220418232008287
  5. 成功并且访问到了所提交的文件
    image-20220418232008287

第二关

  1. 查看源码
    image-20220418232008287
  2. 抓包
    image-20220418232008287
  3. 提交,发现能够成功提交,进行访问也正常。
    image-20220418232008287

第三关

  1. 查看源码
    image-20220418232008287
  2. 先在配置文件中添加以下配置,让php3、php5能够使用
    image-20220418232008287
  3. 发现成功上传了.php5文件,并且通过抓包能够找到上传的路径。
    image-20220418232008287
  4. 访问成功
    image-20220418232008287

第四关

  1. 源码,源码和第三关基本一致,就是黑名单更多了,但是没有对.htaccess文件进行过滤。
    image-20220418232008287
  2. 上传一个.htaccess,.htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
    下面的代码是将4.jpg以php格式运行。
    image-20220418232008287
  3. 上传一个含phpinfo()代码的4.jpg图片
    image-20220418232008287
  4. 进行访问,发现成功访问到了里面的phpinfo代码
    image-20220418232008287

第五关

  1. 查看源码
    image-20220418232008287
  2. 进行上传文件,文件后缀是.php. .
    image-20220418232008287
  3. 发现上传成功
    image-20220418232008287

第六关

  1. 查看源码,发现没有对大小写进行严格过滤,和前面几关比起来少了个将后缀名转化为小写的函数。
    image-20220418232008287
  2. 将后缀名随机切换为大小写进行上传,发现上传成功。
    image-20220418232008287
  3. 访问成功
    image-20220418232008287

第七关

  1. 查看源码,发现少了一个处理点的函数,因此可以对点进行下手。
    image-20220418232008287
  2. 上传文件
    image-20220418232008287
  3. 发现上传成功
    image-20220418232008287

第八关

  1. 查看源码,发现源码大同小异,只是第八关少了对上交后的文件进行随机化。
    image-20220418232008287
  2. 上传文件
    image-20220418232008287
  3. 发现上传成功
    image-20220418232008287

第九关

  1. 查看源码,发现少了::$DATA进行处理的函数,在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,他的目的就是不检查后缀名。
    image-20220418232008287
  2. 上传文件
    image-20220418232008287
  3. 发现提交成功
    image-20220418232008287

第十关

  1. 查看源码,发现只是处理了一次点,因此可以从这里入手。
    image-20220418232008287
  2. 上传文件
    image-20220418232008287
  3. 发现提交成功
    image-20220418232008287

第十一关

  1. 查看源码
    image-20220418232008287
  2. 上传文件
    image-20220418232008287
  3. 发现提交成功
    image-20220418232008287

以上关卡都是黑名单,下面开始是白名单

第十二关

  1. 查看源码,发现是白名单,采取%00阶段的方式进行尝试,%00截断的条件是php版本小5.3.4,并且php的配置文件php-ini中的magic_quotes_gpc设置为Off。
    image-20220418232008287
  2. 上传文件
    image-20220418232008287
  3. 发现提交成功
    image-20220418232008287

第十三关

  1. 源码,可以看到只是保存路径的方式使用了POST方式以外,其他都是和上一关一样的。
    image-20220418232008287
  2. 上传文件,由于是POST方式保存路径,所以不能在url中写,只能在下面写。具体如图所示。
    image-20220418232008287
  3. 发现提交成功
    image-20220418232008287

第十四关

  1. 查看源码,发现验证了头部,因此可以通过头部来进行处理。
    image-20220418232008287
  2. 图片一句话制作方法,copy 1.jpg /b + shell.txt /a 14.jpg
    image-20220418232008287
    上传,并且查看图片的路径。
    image-20220418232008287
  3. 发现上传成功,使用文件包含的php代码进行尝试。
    image-20220418232008287
    image-20220418232008287

第十五关

  1. 查看源码,可以发现该关卡使用了getimagesize函数,该函数的作用是获取文件类型是不是图片格式的,但是该函数也还是根据文件头进行判断的,所以该关卡和第十四关的步骤一致
    image-20220418232008287

第十六关

  1. 查看源码,发现使用了和getimagesize函数类似的exif_imagetype函数,下面的步骤和第十四关一致。
    image-20220418232008287

第十七关

  1. 查看源码,发现分别对jpg、png、gif图片所提交的重新进行了二次渲染,渲染后的图片与原提交的图片内部会有一些不一致。可以根据网上的jpg脚本进行运行并且对产生后的图片进行提交即可,png和gif也类似。
    image-20220418232008287

第十八关

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值