(这关没做出来,姑且还是写下自己的思路)
感谢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
开始打靶
解析漏洞就是你验证代码的盲点,我个人把它分为两类。
一种是代码的解析漏洞
比如你过滤php,我上传asd.Php
比如你把php替换为空,我上传asd.phphpp
比如你只替换一次php,我上传asd.phpphp
比如你检测后缀名是否为php,我上传asd.php.
二种是后台框架的解析漏洞
比如IIS6.0的一个解析漏洞:网站上传图片的时候,将网页木马文件的名字改成“*.asp;.jpg”,也同样会被 IIS 当作 asp 文件来解析并执行。例如上传一个图片文件,名字叫“vidun.asp;.jpg”的木马文件,该文件可以被当作 asp 文件解析并执行。
比如IIS 7.0/ Nginx <8.03的一个解析漏洞:在默认Fast-CGI开启状况下,黑阔上传一个名字为wooyun.jpg,内容为<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>’);?>的文件,然后访问wooyun.jpg/x.php,在这个目录下就会生成一句话木马 shell.php
这些解析漏洞会涉及到后台具体的框架及版本,所以如果你知道了这些信息的话,不妨百度谷歌看看有没有解析漏洞或者其他漏洞。
观察
首先还是直接把Ctrl+S保存到本地改代码,把前端拦截过了再进行下一步
1、上传正常图片wife.jpg,成功
2、上传一个简单的webshell(asd.php),失败
猜测是检测到1、内容有敏感字符 2、名字有敏感字符 3、两者皆有 4、conten-type类型错误
接下来就一一排除猜测
1、把wife.jpg改为wife.php,上传失败,排除检测内容
2、上传wife.jpg,抓包把wife.jpg改为wife.php,上传失败,排除检测conten-type
3、把asd.php改为asd.jpg,上传成功,确认只检测名字
如上,排除了猜测1、3、4,确认检测只检测名字。接下来获取更多检测信息。
4、上传php.jpg,上传成功,确认只检测后缀名
5、上传asd.php.,(注意,有个点号)上传失败
上传asd.php.jpg,上传成功
上传asd.jpg.php,上传失败,确认是根据点号划分,取最后一个点号的字符进行判断
至于后台是通过白名单还是黑名单来实现的,这个就没办法弄出来了(不过白名单不好过)
过拦截
1、大小写
上传asd.Php,失败
2、后缀名
上传asd.php2,失败
上传asd.php3,失败
上传asd.php4,失败
上传asd.php5,失败
上传asd.phtml,失败
看来真的是白名单呢,那我们就根据标题解析漏洞来下手。
我可以想到的可以利用的漏洞有如下两种形式:
一、上传的文件名为XX.jpg,但是可以被当作php执行。
打开F12查看上传文件的请求
我们可以知道服务端容器为apache,则联想到了apache的多后缀名解析的漏洞。Apache默认一个文件可以有多个
以点分割的后缀,当最右边的后缀无法识别(不在mime.types内),则继续向左识别。比如shell.php.asd,asd后缀
无法识别而可以识别php,则交给php来处理这个文件。
但是这个为白名单检测,上传文件已经为能识别的jpg了,此条路不通
二、上传XX.php.jpg,或者其他千奇百怪的形式,能让后台过了白名单的后缀名检测,然后在写入文件时写入指定
的文件名,而不是上传文件名。
我在这一步困了很久,%00啊、::$DATA啊,也把大佬给的博客上的姿势试了遍都不行,心累。弄到最后的时候虽然能把文件名写为php后缀,但是里面没有任何内容。至于用了哪些姿势呢,就懒得写了,反正没成功