文件上传是web十大安全漏洞之一,它是我们在信息安全渗透测试中最常见的漏洞类型
他主要是一些网站上传用的的头像文件的时候没有进行过滤,利用PHP本身的远程木马执行,利用中国菜刀,蚁剑之类的工具进行连接,获取服务器其权限,方便在进行提取等进行拿去服务器web shell权限
下面我们主要进行upload-labs靶场进行练习
Pass-01
我们先直接上传试试
显示请上传jpg类型的文件我们在打开bure抓包
把后缀名改为php
使用中国菜刀进行连接
连接成功
Pass-02
我们使用上一关的方法
是一样的
Pass-03
我们使用上一关的方法
出现了提示:不允许上传.asp,.aspx,.php,.jsp后缀文件!
一个过滤,我们改成php4
Pass-04
我们安装以前方法发现过滤的太多了
写个htaccess将shell.Jpg转换为PHP
Pass-05
我们发现这个验证是先过滤一个点,遇见空格删除,我们可以尝试改为..
Pass-06
这关是没有过滤大写
直接.PHP
Pass-07
发现没有收尾去空
得到位置
192.168.161.134/upload/upload/202203170341342213.php
打开中国菜刀
连接成功
Pass-08
这个没有对后缀名后面的点进行过滤,根据Windows的特性后缀名后面的点不后使用
最后看看源码没有对后缀名后面的点进行过滤导致了在判断的时候识别成了.Php.通过了上传
Pass-09
这关我们试试::$DATA
‘’
上传成功
得到图片位置
连接成功
查看源码
没有对::$DAT后缀名进行过滤
在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名
Pass-10
我们试试多点空格绕过
上传成功
我们看看用中国菜刀试试
源码只删除了末尾的点,和首尾去空在遇见例如.php. .的时候就无法过滤
Pass-011通过测试发现
第十一关也是黑名单的绕过,他的意思是如果你上传了上面规定的文件,他就会把你的后缀名去掉,我们使用pphphph这样就是只剩下php了
我们从发测试一下怎么样可以发php上去
测试结果为shell.pphpphphp可以绕过PHP过滤
接下来就是文件上传的白名单
Pass-12
我们看看
这道题我们要使用%00截断这样可以截断过滤语句
Pass-013
这关是接受值变成了post,get会自动解码,但是post是不会的我们可以对%00进行编码就行了
Pass-014
这关开始就是图片木马
输入这行命令制作图片木马
直接上传
http://192.168.161.134/upload/include.php?file=upload/7920220317154236.jpg
成功连接
Pass-015
getimagesize函数,这个函数的意思是:会对目标文件的16进制去进行一个读取,去读取头几个字符串是不是符合图片的要求的
对其头部进行验证
和上关的方法是一样的
Pass-016
这道题要我们打开
extension=php_mbstring.dll
使用15关的方法
上传成功
Pass-017
源码分析
imagecreatefromjpeg — 由文件或 URL 创建一个新图象。
然后将第一个我们写入的一句话木马给转码掉了,我们找到渲染的分割线,在分割线之前来进行写入一句话木马
打开十六进制编辑器
对我们的图片码进行编辑
先上传
发现下载下来的缺失了后面的PHPinfo代码
是设计到jpg二次渲染绕过
我们将上传前的和上传后的进行16进制对比,找到一样的
但是我没有找到。
Pass-018
这到题主要利用的是条件竞争,利用的是文件是先上传到服务器,再进行判断,如果是
Pass-019
我们先弄一个图片马
上传试试
再下载下来看看有没有做二次过滤
直接 上传成功
菜刀也连接上了
Pass-020
这
这道题和上关很像,只不过制定了保存的文件名字
没什么影响直接上传
上传成功
一句话木马在文件的开头
拿菜刀连接一下
成功获取webshell权限
Pass-021
最后一关主要是数组绕过验证的利用,我们像前几关一样先上传png
文件上传成功
成功使用菜刀连接
总结
文件上传漏洞的本质其实就是客户机提交给服务器的文件,被一些不怀好意的人来恶意获取服务器的的webshell权限,这个是漏洞是我们最快获取web服务权限的方法,但是我们的过滤手段要不断的加强。
分为白名单过滤和黑名单过滤,最好还是白名单过滤更安全一些
黑名单过滤容易出现一些问题,可以在后缀名加上点和空格来进行绕过
服务器最好还是及时更新版本安装web应用防火墙,和安全狗等一些软件,使用白名单过滤,和文件图片重构,先过滤在上传吗,要定时的对服务器进行评估和杀毒。
对其他的php漏洞练习平台感兴趣的读者可以自行搭建dvwa