当前位置: 首页 > news >正文

攻防世界-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的过滤条件,然后根据过滤条件进行针对性的操作;本题绕过过滤条件还考察了爆破的知识点,这一点也增加了题目的难度

http://www.lryc.cn/news/165553.html

相关文章:

  • C语言的函数指针、指针函数, 函数数组
  • 笔记本开启WiFi
  • 力扣第37天----第322题、第279题
  • 【ArcGIS Pro二次开发】(67):处理面要素空洞
  • FPGA-结合协议时序实现UART收发器(一):UART协议、架构规划、框图
  • web请求cookie中expires总结
  • 如何学习Java核心知识
  • 【AWS】如何用SSH连接aws上的EC2实例(虚拟机)?
  • 数据结构——看完这篇保证你学会队列
  • 开源免费缺陷管理工具:对比6款
  • Weblogic反序列化漏洞
  • element-ui el-table 滚动到底部,进行加载下一页
  • 线性代数的学习和整理19,特征值,特征向量,以及引入的正交化矩阵概念(草稿)
  • 初步了解android如何锁键
  • 行业追踪,2023-09-13
  • $nextTick和setTimeout区别(宏任务微任务)
  • Linux内核及可加载内核模块编程
  • 软件设计师_备考笔记
  • Java学习笔记------抽象类和抽象方法
  • 毕业设计选题指南-25个优质选题
  • React使用useImperativeHandle实现父组件触发子组件事件
  • 【PowerQuery】Excel的PowerQuery的复制
  • 这个制作企业期刊的神器我怎么没早点发现
  • 核心实验18_ospf高级_ENSP
  • 【python零基础入门学习】python基础篇之系统模块调用shell命令执行(四)
  • 用python实现基本数据结构【01/4】
  • Ubuntu22.04 install Kafka
  • 实现JSONP请求
  • 如何将安防视频监控系统/视频云存储EasyCVR平台推流到公网直播间?
  • 使用内网负载机(Linux)执行Jmeter性能测试