这是一个图片下载的功能,点击球星名字即可下载他的图片
把下载链接复制出来是这样一串链接
172.16.1.99/vul/unsafedownload/execdownload.php?filename=kb.png
如果我们将链接修改为
172.16.1.99/vul/unsafedownload/execdownload.php?filename=../execdownload.php
可以看到当前页面的源代码可以被下载下来
如果修改下载路径,即可下载到数据库,配置文件等任意文件,此处链接被过滤,以图上为准
172.16.1.99/vul/unsafedownload/execdownload.php?filename=../inc/mysql.inc.php
三、默认策略效果测试
这里我们配置上安全策略,在【策略】-【安全防护策略】中新增【业务防护策略】,选择好区域和对象,策略就选【web应用防护】,使用【默认模板Ⅱ】
当我去下载当前页面源代码时,还是可以下载,而跨目录去下载文件时,则被拦截
查看日志,发现拦截我们的不是文件下载规则,而是目录遍历漏洞
经测试,如果有两个及以上的 ../ 就会触发规则并拦截
四、自定义策略
此处文件下载防护并没有起到作用,依下图在【对象】-【安全策略模板】-【WEB应用防护】-【默认模板Ⅱ】-【高级配置】-【数据泄密防护】-【文件下载过滤】的设置选项,看看文件下载的防护规则是怎么样的
可以看到这里是通过文件后缀来过滤文件的,里面内置的大多是配置文件和数据库文件等敏感文件的后缀,但是没有本次测试的php后缀,我们手动添加一个,注意这里需要把前面的勾选上才能生效
再次下载漏洞处源代码,已经无法无法访问
这时返回网页发现测试网站所有页面都访问不了,一看防火墙,所有的页面请求都被拦截了
五、总结
1、配置过滤文件类型时需要勾选上前面的勾选框
2、拦截脚本语言后缀可能造成网站无法访问,需谨慎使用