upload-labs文件上传靶场实操

文章目录

  • 1.Pass-01
  • 2.Pass-02
  • 3.Pass-03
  • 4.Pass-04
  • 5.Pass-05
  • 6.Pass-06
  • 7.Pass-07
  • 8.Pass-08
  • 9.Pass-09
  • 10.Pass-10
  • 11.Pass-11
  • 12.Pass-12
  • 13.Pass-13
  • 14.Pass-14
  • 15.Pass-15
  • 16.Pass-16

upload-labs文件上传靶场实操_第1张图片

1.Pass-01

改后缀名绕过
只能上传图片,先上传一个jpg格式的图片,然后抓包改格式
改成3.php,以及Content-Type
Content-Type: application/octet-stream
upload-labs文件上传靶场实操_第2张图片

上传成功后点击图片位置右键获取链接
upload-labs文件上传靶场实操_第3张图片

得到http://127.0.0.1:9005/upload/3.jpg
改成php格式的就是payload
http://127.0.0.1:9005/upload/3.php
upload-labs文件上传靶场实操_第4张图片

2.Pass-02

Content-Type绕过
使用上一关的方法还是提示报错,说明存在过滤
upload-labs文件上传靶场实操_第5张图片

这里的办法是使用重复类型Content-Type
即既然它以Content-Type为准,那么我就先给他一个正确的Content-Type,然后再改后缀为.php

发现上传成功
upload-labs文件上传靶场实操_第6张图片
upload-labs文件上传靶场实操_第7张图片
upload-labs文件上传靶场实操_第8张图片upload-labs文件上传靶场实操_第9张图片

getshell成功

3.Pass-03

方法一:本地文件包含
直接上传非php文件,使用本地包含文件getshell
upload-labs文件上传靶场实操_第10张图片upload-labs文件上传靶场实操_第11张图片

方法二:httpd.conf黑名单绕过
黑名单规则不严谨,在某些特定环境中某些特殊后缀仍会被当作php文件解析
php、php2、php3、php4、php5、php6、php7、pht、phtm、phtml
upload-labs文件上传靶场实操_第12张图片

但是以上方法对nts版本的apache无效,需使用类似如下的版本
upload-labs文件上传靶场实操_第13张图片

然后在httd.conf新增类型,再重启服务就可以解析php4了
在这里插入图片描述在这里插入图片描述

4.Pass-04

htaccess绕过
在这里插入图片描述

但是看来被过滤了
在这里插入图片描述

上传htaccesss试下
upload-labs文件上传靶场实操_第14张图片

该文件的意思是,只要遇到文件名中包含有”backlion.jpg”字符串的任意文件,统一被当作php执行。如果这个” backlion.jpg”的内容是一句话木马,即可利用中国菜刀进行连接
前提条件是:大于等于php版本5.3.39以下
在这里插入图片描述

成功了
那么上传一个backlion.jpg的文件试下
在这里插入图片描述

上传成功,也被解析了
在这里插入图片描述

使用菜刀成功getshell

upload-labs文件上传靶场实操_第15张图片upload-labs文件上传靶场实操_第16张图片

5.Pass-05

大小写绕过
这关过滤了htaccess
upload-labs文件上传靶场实操_第17张图片在这里插入图片描述

但是,只是通过大小写就上传成功了
在这里插入图片描述
在这里插入图片描述
upload-labs文件上传靶场实操_第18张图片

6.Pass-06

空格绕过
在这里插入图片描述在这里插入图片描述

测试的时候可以这样测
3.php
3.php .jpg
3.php . .jpg
3.php . . jpg

7.Pass-07

点绕过
在这里插入图片描述在这里插入图片描述

8.Pass-08

特殊符号::$DATA绕过
在这里插入图片描述在这里插入图片描述

测试是需把::$DATA删掉
upload-labs文件上传靶场实操_第19张图片

9.Pass-09

. .绕过
在这里插入图片描述

执行后会自动去掉最后一个点
在这里插入图片描述

然后保存时又会去掉最后1个点
结果就保存了5.php
upload-labs文件上传靶场实操_第20张图片

10.Pass-10

多写绕过
在这里插入图片描述

会自动删掉php
在这里插入图片描述

那么我就多写绕过
在这里插入图片描述在这里插入图片描述

11.Pass-11

%00截断目录
由于目录可控,且是百名单过滤,因此使用%00截断
并新建55.php,而filename里依旧上传jpg
upload-labs文件上传靶场实操_第21张图片
upload-labs文件上传靶场实操_第22张图片

12.Pass-12

16进制00截断目录
这关目录还是可控
upload-labs文件上传靶场实操_第23张图片

33.php的16进制后面加00
在这里插入图片描述
在这里插入图片描述

上传后会自动新建33.php而抛弃后面的.jpg
upload-labs文件上传靶场实操_第24张图片

13.Pass-13

本地文件包含+文件头绕过
文件头简介,不同的图片文件都有不同文件头,如:
PNG: 文件头标识 (8 bytes) 89 50 4E 47 0D 0A 1A 0A
JPEG: 文件头标识 (2 bytes): 0xff, 0xd8
GIF: 文件头标识 (6 bytes) GIF89a
白名单过滤,而且必须在内容里添加图片文件头,根据文件头生成图片
upload-labs文件上传靶场实操_第25张图片
upload-labs文件上传靶场实操_第26张图片
upload-labs文件上传靶场实操_第27张图片

jpg需要输入16进制的ffd8

upload-labs文件上传靶场实操_第28张图片
在这里插入图片描述
在这里插入图片描述

png文件头是16进制的8950
在这里插入图片描述
在这里插入图片描述
upload-labs文件上传靶场实操_第29张图片

但是试想这一关如果没有文件包含漏洞的话又该怎么破呢

14.Pass-14

本地文件包含+图片马
和上一关一样,提示还是使用文件包含和图片马
GIF89a
在这里插入图片描述
upload-labs文件上传靶场实操_第30张图片

Jpg 需在cmd使用copy命令制作图片马绕过
在这里插入图片描述
upload-labs文件上传靶场实操_第31张图片

Png 89 50 4E 47 0D 0A 1A 0A
在这里插入图片描述
upload-labs文件上传靶场实操_第32张图片
upload-labs文件上传靶场实操_第33张图片

15.Pass-15

本地文件包含+图片马
源代码提示需开启php_exif
在这里插入图片描述

打开php.ini
把;extension=php_exif.dll前面的;去掉就行,然后重启服务
在这里插入图片描述

GIF:GIF89a
在这里插入图片描述

Jpg 需制作图片马
在这里插入图片描述

Png:
‰PNG

在这里插入图片描述

16.Pass-16

这关好像用到了二次渲染,因为上传后的图片马都找不到一句话木马了
针对二次渲染,需要用到一个对比工具Emeditor,找出没有改动的那块贴进一句话木马进去
首先把一句话木马复制出来
在这里插入图片描述

3C 3F 70 68 70 20 40 65 76 61 6C 28 24 5F 50 4F 53 54 5B 22 66 6E 61 6D 65 22 5D 29 3B 3F 3E 1A
然后找到没有改动的地方
upload-labs文件上传靶场实操_第34张图片

这里我们选择下面的
在这里插入图片描述
在这里插入图片描述

保存出来再试下
upload-labs文件上传靶场实操_第35张图片
upload-labs文件上传靶场实操_第36张图片

Jpg和PNG的情况目前搞不定,因为jpg是压缩编码的,据说需要使用脚本实现,而且成功率不高,而png几乎找不到没改动的,这两个单独提取出来做一个任务

你可能感兴趣的:(web安全)