打开题目环境:
进行PHP代码审计,发现这是一个文件包含漏洞。
我们尝试利用PHP伪协议中的 php://filter来读取 check.php 中的内容。
构造payload 并提交:
发现payload被过滤掉了,我们就需要尝试使用不同的转换器。
PHP各类转换器
首先尝试 字符串过滤器--失败。
然后尝试转换过滤器,前四种转换过滤器均失效,最后尝试 convent.iconv转换器。
该 PHP 扩展支持的字符编码有以下几种:
- UCS-4*
- UCS-4BE
- UCS-4LE*
- UCS-2
- UCS-2BE
- UCS-2LE
- UTF-32*
- UTF-32BE*
- UTF-32LE*
- UTF-16*
- UTF-16BE*
- UTF-16LE*
- UTF-7
- UTF7-IMAP
- UTF-8*
利用 Burpsuite intruder模式中的集束炸弹 cluster bomb 对其进行暴力破解:
再将该PHP支持的字符编码导入字典中:
进行爆破:
显示 check.php 的源码,将 resource=check.php 改为 resource=flag.php。
拿到flag。