webug 4.0 第十九关 文件上传(畸形文件)

时间:2024-03-21 18:37:29

感谢webug团队一直以来的更新维护!

webug是什么

WeBug名称定义为“我们的漏洞”靶场环境基础环境是基于PHP/mysql制作搭建而成,中级环境与高级环境分别都是由互联网漏洞事件而收集的漏洞存在的操作环境。部分漏洞是基于Windows操作系统的漏洞所以将WeBug的web环境都装在了一个纯净版的Windows 2003的虚拟机中。

Webug官网:http://www.webug.org

Webug 4.0百度云地址: https://pan.baidu.com/s/1euUY4UG43BuOjhPqkJBvcw 提取码: 3xpy

来源:226安全团队

微信号:safeteam226

开始打靶

这一节也有前端校验,先直接去掉再说吧

观察

1、上传wife.jpg

返回C:/phpStudy/WWW/template/upload/1556178993.jpg,咦~,名字变了

2、上传asd.php

返回C:/phpStudy/WWW/template/upload/1556179070.,有个单独的“.”号,名字也变了

可以观察到:1、上传一个文件的时候名字都会变 2、会检测上传的文件然后更改其文件名后缀

第一点不影响我们上传webshell

第二点的话,既然返回数据了就代表上传成功了,但是不清楚里面的数据有没有被更改。这一点让我们用菜刀连一下看看

菜刀http://192.168.136.130/template/upload/1556179070.(有点号),报404错误。

没找到?那会不会实际上没有点号,但是前端显示了点号。突然想起来是不是windows的锅,赶紧在自己电脑上试了下,把xx.jpg改为xx.,发现后面的点号会被直接删除变成xx。

菜刀http://192.168.136.130/template/upload/1556179070(无点号),成功连接,并且文件内容没有被改变。
webug 4.0 第十九关 文件上传(畸形文件)

但是因为不是.php后缀,所以无法getshell,所以可以确定我们接下来的目标就是让上传的文件有php后缀。

同时因为文件内容没有变,所以可以确定不是检测文件内容而是检测文件名,因为文件名有问题所以把文件名后缀名做了处理。

开始上传

1、确定大小写检测

上传asd.pHP,失败

2、确定重复检测

上传asd.phpphp,失败

3、确定是否是检测到了php字符,然后就把整个后缀名去除

上传asd.phpaaaaaa,返回C:/phpStudy/WWW/template/upload/1556182118.aaaaa

确定只是过滤掉了php字样且不区分大小写

这样的话,我们就可以构造独特的字符串使去掉了php字符之后依旧是php

比如asd.pphphp、asd.phphpp之类的

上传asd.pphphp,返回C:/phpStudy/WWW/template/upload/1556182263.php,成功