upload-labs
方法总结
尝试普通的php,查看会不会有提示
禁用前端js
尝试大小写绕过
尝试空格绕过
尝试修改Content-Type
php3,4,5
上传.htacess文件
添加空格绕过
pass-07
最后添加一个点
pass08
双写绕过
.pphphp熔断截取
测试多个后缀
比如apache 的解析漏洞,不认识rar就可以构造成为
1
getshell.php.rar
pass-01
0x00
我先上传了一张正常的.png

0x01
尝试上传一个php,出现了这个

0x02
尝试修改后缀绕过
也不行
0x03
检查源代码

很明显的js前端验证,直接禁用,然后上传php

0x04
docker逃逸
宸极实验室—『杂项』Docker 逃逸方法汇总 - 知乎 (zhihu.com)
0x05
还有一种发现js前端验证的方法
当上传php的时候发现,使用bs抓包并没有数据包
pass-02
0x00
查看能上传什么文件

这次没有提醒,但是bs有数据包,说明是都断验证
0x01
尝试修改文件类型 Content-Type

发现这个上传成功


pass-03
0x00
先上传一个shell看什么情况

0x01
根据他的提示这个是黑名单
我们上传php5,php3之类的就能上传

这道题会改变名字,连接的时候注意一下

pass-04
0x01 尝试上传php

文件不允许上传
然后bs里也发现了包,说明不是前端限制
0x02 尝试上传.htacess文件


可以上传
0x03上传图片马


上传成功
0x04连接shell

pass-05
0x01 普通的php已经上传不了了

可以尝试使用空格绕过
0x02成功绕过

0x03
但是这里有一个大坑,注意空格绕过只针对win,所以这个上传完过后只能在win之下连接成功

如果是使用docker搭建的,那么他的后缀会变成.之前的php也会消失
pass-06
0x01
这个是大小写绕过

pass-07
0x01
查看源码

发现没有首位去空
0x02
上传.php 注意后面有一个空格

上传成功
pass-08
0x01 查看源码

缺少去除.
0x02
添加点

上传成功
pass-09
0x01
还是源码分析

发现没有对windows流特性进行处理
0x02
添加流

然后发现使用带::$data的不能连接,所以,我们去掉后连接

pass-10
0x01
使用. . 绕过


pass-11
0x01\
我先上传了一个普通的getshell.php
发现上传成功

0x02
但是分析上传后,发现文件类型没了
尝试双写后最

成功上传,尝试连接

pass-12
pass-13
pass-14
0x01
根据提示,发现了文件包含漏洞
但是这个需要3种后后缀名都需要上传成功
注意上传图片马,不是将php后缀改成图片后缀文件
JPG
0x01
上传图片马,然后连接


PNG
同理上传图片马

GIF
0x01
这个地方有点坑,小心gif的非法字符
0x02
然后和之前的差不多了,直接上传后连接就行了
pass-15
JPG
这道题的解决方法和上一道题的解决方法是一样的
PNG
0x01
直接使用图片马
0x02

GIF
同理,就不重复解释了
pass-16
还是一道图片马的题
pass-17
GIF
我这里直接上传gif之后就成功了,但是网上还有二次渲染啥的
下面是我使用的图片

pass-18
这个到体做起来就比较有压力了
0x01
这个是运用了竞争条件,简单的来说就是我们运行了将要删除的php
1 | |
由于会比较后面删除php文件所以我们可以尝试一直访问连接,知道访问成功
下面的php文件用于上传
1 | |
下面是用于创建访问的python
1 | |
但是我一直没有访问成功
0x02
在写完上面的文章之后,我仔细回想了一下问题,能上传upload.php,也能访问到,那么就是upload.php的问题
下面是upload.php
1 | |
为什么之前的那个不正常。那就请读到这篇文章的同学仔细想想,看看
为了简化,我也将python脚本进行了删减
1 | |
然后就能上传成功了

pass-19
这道题好像有点问题
pass-20
0x01
这个道题没有对上传的文件做限制,但是需要对修改的名字做限制了
这道题的话,可以理解为使用后缀名绕过
0x02
直接使用修改为php文件是不给过的
使用大小写绕过

能上传,尝试链接

发现不能上传
看一下upload文件夹里面的东西是什么情况