攻防世界-web-file_include

1. 题目描述

打开界面,如下代码:
在这里插入图片描述
代码很简单,从参数中获取到filename然后include这个filename

2. 思路分析

2.1 首先参考常见做法,将参数设置为php://filter/read=convert.base64-encode/resource=flag.php,看是否有效果
在这里插入图片描述
果然没这么简单,有WAF过滤了这种参数,所以现在的思路是如何绕过这个WAF,尝试修改参数,看WAF是在什么情况下才会拦截
在这里插入图片描述
通过实验,我们发现,拦截的是

  1. 参数中的read
  2. convert后面的编码函数base64-encode

2.2 因此,我们尝试去掉read,另外将base64-encode替换成其它的函数,看是否能够通过WAF
参考官网https://www.php.net/manual/zh/filters.convert.php,有三种转换过滤器

  1. convert.base64-encode 和 convert.base64-decode
  2. convert.quoted-printable-encode 和 convert.quoted-printable-decode
  3. convert.iconv.*

经过尝试,前面两种都会被WAF拦截掉,只有第三种不会拦截.
在这里插入图片描述
官方也给出了iconv的用法,后面接了输入编码方式和输出编码方式两个参数,如果能够明确输入编码和输出编码都是什么即可

3. 解题过程

3.1 先获取到php支持的编码列表
官网:https://www.php.net/manual/zh/mbstring.supported-encodings.php
在这里插入图片描述
3.2 burpsuite配置爆破参数位置(这里选择集束炸弹)
在这里插入图片描述
payloads设置为各种编码
在这里插入图片描述
3.3 开始爆破,发现满足条件的有多种

在这里插入图片描述
这些都是满足条件的,我们看下返回结果,最终的flag为:cyberpeace{5fc26b214436ecef7de1c166c95d1487}
在这里插入图片描述

4. 总结

这道题的难点在于如何绕过WAF,在存在WAF的情况下,找出WAF的过滤条件,然后根据过滤条件进行针对性的操作;本题绕过过滤条件还考察了爆破的知识点,这一点也增加了题目的难度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值