upload-lab题解
Pass-01
javascript绕过,通过抓包修改文件后缀名
Pass-02
对MIME类型进行了检查,抓包修改MIME类型即可
Pass-03
黑名单绕过
批量fuzz后缀名上传文件,比如cer,phtml等等偏僻的后缀都有可能被解析运行
在phpstudy中需要添加部署环境
Pass-04
思路:上传.htacess文件,后上传php文件后缀任意,都可以被php解析执行
htaccess文件内容
SetHandler application/x-httpd-php
什么是.htaccess文件
概述来说,htaccess 文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置。
通过 htaccess 文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
由于windows不允许通过文件直接创建.htcaccess文件,可以通过rename来创建
上传.htaccess文件后,又上传
然后访问
Pass-05
过滤了.htaccess文件,但是没有过滤php大小写,使用phP可以绕过也可以修改.htaccess文件大小写的方式绕过
访问201907111505514027.phP
Pass-06
在判断后缀名的时候没有先去除多余的空格
思路:后缀名添加空格即可绕过后端php脚本的检测,再上传到windows服务器上,会自动去除后缀名后的空格。
Pass-07
根据windows系统特性会自动忽略最后一个点,添加点即可绕后端的php检测,而且可以正常解析
Pass-08
没有过滤::$DATA
访问的时候需要把php后面的去掉
Pass-09
思路:构造点加空格加点,经处理后文件名变成sad.php.,即可绕过。
Pass-10
思路:传一个普通的文件上去,会把php后缀过滤掉,但可以直接访问
还有个思路就是双写绕过
Pass-11
白名单绕过,%00截断,
条件:php<5.3.4
magic_quotes_gpc=off
Pass-12(POST型)
这里需要用0x00截断,使用%00不行
php1对应的十六进制,把1的十六进制改为00
Pass-13
这里阅读源文件可知这里对文件前2字节内容进行了检测,这里上传的是图片木马,需要结合文件包含漏洞引用。
推荐制作工具:edjpgcom
Pass-14
这里也是一样,只是源文件对检测文件内容使用了不同的函数。
Pass-15
这里是用php_exif模块的exif_imagetype来检查文件内容
Pass-16
参照:(https://xz.aliyun.com/t/2657)
Pass-17
存在条件竞争:先将文件上传到服务器,然后通过rename修改名称,再通过unlink删除文件,因此可以通过条件竞争的方式在unlink之前,访问webshell
但是使用burpsuite爆破,然后访问没有成功
Pass-18
同17题一样,这里结合了apache解析漏洞
Pass-19
同11题一样,00截断,只是这里开启黑名单检测,用phP即可绕过。
Pass-20
由源码知,最终文件后缀名是$
f
i
l
e
[
c
o
u
n
t
(
file[count(
file[count(file) - 1],所以我们可以让
f
i
l
e
[
0
]
为
1.
p
h
p
/
,
也
就
是
f
i
l
e
数
组
第
一
个
变
量
值
,
然
后
设
置
f
i
l
e
[
2
]
的
值
,
这
样
既
可
以
让
e
n
d
(
f
i
l
e
)
=
j
p
g
,
又
可
以
让
f
i
l
e
[
c
o
u
n
t
(
file[0]为1.php/,也就是file数组第一个变量值,然后设置file[2]的值,这样既可以让 end(file)=jpg,又可以让file[count(
file[0]为1.php/,也就是file数组第一个变量值,然后设置file[2]的值,这样既可以让end(file)=jpg,又可以让file[count(file) - 1]的值为空
从而拼接后就是
1.php/.最终move_uploaded_file会忽略掉/.,最后为1.php
访问