Upload-Labs通关笔记

本文最后更新于:29 分钟前

配置环境

这里我直接装在以前绕waf的Windows服务器中,直接下载github中的Windows集成环境即可。解压后自带PHPstudy,一键启动即可。

Pass-01

第一关很简单,前端绕过。这里我为了方便,直接禁用了浏览器的js,这样就可以任意上传了(doge)。但是实战中不建议这样做,因为可能会影响网站正常功能。上传一个jpg或者png后缀的马子,再burpsuite抓包,把后缀改成php就行了。

Pass-02

查看提示,是mime类型检测,只需修改Content-Type处的值为image/png,并在文件内容开头加上GIF89a即可。

如下图,成功上传:

pass-02

Pass-03

这里只ban了几个常见后缀,直接改成PhP3即可。上传成功:

pass-03

Pass-04

查看提示中的黑名单,ban了不少后缀,但是漏掉了PhP这个后缀。抓包改后缀为PhP,没有绕过。这时想到先上传.htaccess配置文件,把jpg后缀的文件当作PHP文件解析:

1
AddType application/x-httpd-php .jpg

可以看到,上传成功:

再传一个图片马,也成功了:

pass-04-2

访问一下对应URL,证明PHP解析成功了:

pass-04-3

Pass-05

黑名单里ban的更多了,连.htaccess都ban了,但是漏掉了PhP后缀,上传成功后发现文件名也变了:

pass-05

Pass-06

这一关不仅和上一关一样ban了不少后缀,而且看代码后发现还加了强制大小写转换。正好最近刷CTF题遇到一道上传.user.ini的题,于是在这里试试,上传成功了:

再一看黑名单,漏掉了txt后缀,再把写有PHP代码的txt文档传上去:

pass-06-2

虽然上传成功了,但是没有解析为PHP文件,不知道为什么。看了其他师傅的wp,发现phP后缀也能绕,但是我的不行(可能关卡顺序不一样吧):

Pass-07

好家伙,所有后缀都ban了,不过可以试试双写绕过:

pass-07

不过没有解析为PHP文件,不知道为什么。后来发现可以试试在文件末尾加上点,也可以绕过。

Pass-08

这一关有了去除末尾点的代码,但是没有过滤后缀名::$DATA的代码,因此可以考虑在末尾加上这个:

pass-08

删掉::$DATA即可正常访问到上传的文件。

Pass-09

它来了它来了,白名单上传最终还是来了!哈哈,开个玩笑。看了代码以后才发现,依然是个黑名单上传,只不过拦截的规则是前面关卡的总和!

分析代码,先是去除文件名前后的空格,再去除文件名最后所有的.,再通过strrchar函数来寻找.来确认文件名的后缀,但是最后保存文件的时候没有重命名而使用的原始的文件名,导致可以利用1.php. .(点+空格+点)来绕过。因此使用burp抓包来修改文件后缀上传文件。

上传成功了,连文件名都没有改:

pass-09

Pass-10

又是一个后缀名双写绕过,这里不重复了。

Pass-11

完了,这次是真的白名单了!查看代码以后,发现有路径拼接,可以尝试00截断:

pass-11

上传成功。

Pass-12

同样是00截断,但不同的是这次的save_path是通过post传进来的,需要在二进制中进行修改,因为post不会像get对%00进行自动解码。

Pass-13

这一关要上传图片马,绕过检测只需要在文件头加入GIF89a。为了方便,我这里只上传jpg图片马,其它后缀还没有测试。

制作图片马:

1
copy bk.jpg /b + yjh.php /a webshell.jpg

pass-13

上传成功了,实战中需要结合文件包含漏洞来利用。

Pass-14、Pass-15

绕过方法同Pass-13。

Pass-16

这里存在一个二次渲染,还是传入之前的图片马。一直无法绕过,看了其它师傅的wp,换了几种后缀都不行,先存疑吧。


Upload-Labs通关笔记
https://rookieterry.github.io/2023/03/30/Upload-Labs通关笔记/
作者
HackerTerry
发布于
星期四, 三月 30日 2023, 11:19 晚上
许可协议