点击查看:
感觉像sql注入进行测试:
发现了另外的关键词语:include();
这不难让我们想到文件包含漏洞
使用伪协议查看源代码(感觉是一种思路)
php://filter/convert.base64-encode/resource=index(这里不能使用index.php)
进行base64解码获得源代码
(截取关键代码)
我们可以看到它对输入进行了白名单限制,这也合理的解释了为什么不能使用
php://filter/convert.base64-encode/resource=index.php
做到这里卡住了,白名单限制是真的有点麻烦,所以搜索了一下strpos函数
也就意味着payload中只要出现白名单中的词即可;
这里进行了一些本地测试结果如下:
判断脚本:
测试过程:
payload:?category=woofers/../flag
payload:?category=wooferssadasdsadasdassaas
我们可以发现strpos函数对我们的影响并不是很大,所以我们只要想办法获得flag.php即可构造
payload:
1、php://filter/convert.base64-encode/resource=index/../flag
另一个姿势:
2、php://filter/convert.base64-encode/index/resource=flag
(使用的是伪协议嵌套,没大弄懂推荐文章(32条消息) PHP Filter伪协议Trick总结_swtre33的博客-CSDN博客_filter伪协议)
解码获取flag
查阅链接