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

相关文章:

攻防世界-web-file_include

1. 题目描述 打开界面,如下代码: 代码很简单,从参数中获取到filename然后include这个filename 2. 思路分析 2.1 首先参考常见做法,将参数设置为php://filter/readconvert.base64-encode/resourceflag.php,看是否有…...

C语言的函数指针、指针函数, 函数数组

函数指针 是指向函数的指针,它允许您在程序运行时动态选择要调用的函数。函数指针可以像普通变量一样传递、存储和使用,这使得它们在许多编程场景中非常有用,如回调函数、函数表、插件架构等。 以下是一个简单的例子来说明函数指针的概念&a…...

笔记本开启WiFi

笔记本开启WiFi 为了节省流量:笔记本开启WiFi 条件 支持热点的电脑;我的是华硕飞行堡垒7。 注意事项 笔记本连接公司网络,公司网络通常都在监管下的,手机连接wifi后,刷抖音、购物网站,公司后台会捕获你…...

力扣第37天----第322题、第279题

力扣第37天----第322题、第279题 文章目录 力扣第37天----第322题、第279题一、第322题--零钱兑换二、第279题--组合总和 Ⅳ 一、第322题–零钱兑换 ​ 整体思路,跟前面的几道完全背包差不多,就不具体解释了。有一些细节要注意,见代码注释。…...

【ArcGIS Pro二次开发】(67):处理面要素空洞

这个一个简单的小功能。 有些面要素可能会存在空洞,这个工具的目的就是获取面要素的空洞,或者去除空洞获取要素的边界。 这个功能其实在之前做拓扑功能的时候就已经有了,这次只是单独把它提取出来。因为有时候会单独用到这个功能。 一、要实…...

FPGA-结合协议时序实现UART收发器(一):UART协议、架构规划、框图

FPGA-结合协议时序实现UART收发器(一):UART协议、架构规划、框图 记录FPGA的UART学习笔记,以及一些细节处理,主要参考奇哥fpga学习资料。 本次UART主要采用计数器方法实现,实现uart的稳定性发送和接收功能…...

web请求cookie中expires总结

用意 cookie 有失效日期 "expires",如果还没有过失效期,即使重新启动电脑,cookie 仍然不会丢失 注意:如果没有指定 expires 值,那么在关闭浏览器时,cookie 即失效。 设置 如果cookie存储时间大…...

如何学习Java核心知识

Java作为一门广泛应用于软件开发的编程语言,拥有着强大的生态系统和丰富的资源,是值得投入时间和精力去学习的。以下是一些建议,帮助你系统地学习Java核心知识。 1. 学习Java语言基础: 学习Java语言基础是学习Java的第一步&…...

【AWS】如何用SSH连接aws上的EC2实例(虚拟机)?

目录 0.环境 1.连接结果示例 2.SSH连接思路 3.具体步骤 1)安装并运行ssh服务 2)启动ssh服务 3)在AWS上找到正在运行的EC2实例,并且根据提供的ssh连接语句进行连接 0.环境 windows 11 64位 前提: 有aws账户&…...

数据结构——看完这篇保证你学会队列

数据结构——队列 一、队列的概念二、队列的实现方式三、队列所需要的接口四、接口的详细实现4.1初始化4.2销毁4.3入队4.5出队4.6获取队头元素4.7获取队尾元素4.8获取队列元素个数4.9判空 五、完整代码5.1Queue.h5.2Queue.c5.3test.c 一、队列的概念 队列:只允许在…...

开源免费缺陷管理工具:对比6款

在软件开发环境中,缺陷管理工具是关键的基础设施。例如,在构建一个电商平台时,这些工具能系统地跟踪从发现到解决的各个问题阶段。它们支持多用户协作,实现信息和状态的实时共享。通过数据分析,这些工具还能帮助团队识…...

Weblogic反序列化漏洞

文章目录 1、搭建环境2、漏洞特征3、漏洞利用1)获取用户名密码2)后台上传shell 4、检测工具 1、搭建环境 漏洞环境基于vulhub搭建–进入weak_password的docker环境 sudo docker-compose up -d拉取靶场 2、漏洞特征 404特征Weblogic常用端口:7001 3、漏洞利用…...

element-ui el-table 滚动到底部,进行加载下一页

使用element-ui 自带的InfiniteScroll 无限滚动组件无法使用在table里面,所以项目只能组件写一个 俺的方法是写了一个自定义组件,进行监听滚动条是否拉到最底部进行一个处理。方法如下 直接复制完事了, loadTableMore: { bind(el, binding…...

线性代数的学习和整理19,特征值,特征向量,以及引入的正交化矩阵概念(草稿)

目录 1 什么是特征值和特征向量? 1.1 特征值和特征向量这2个概念先放后 1.2 直观定义 1.3 严格定义 2 如何求特征值和特征向量 2.1 方法1:结合图形看,直观方法求 2.1.1 单位矩阵的特征值和特征向量 2.1.2 旋转矩阵 2.2 根据严格定义…...

初步了解android如何锁键

百年三万六千日,光阴只有瞬息间。 手机下面的三个图形,正方形,园形,三角形分别的什么建?都起到什么功能? 三角形的那个叫返回键,就是可以返回你的上一个操作; 圆形是HOME键,按一下可…...

行业追踪,2023-09-13

自动复盘 2023-09-13 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…...

$nextTick和setTimeout区别(宏任务微任务)

nextTick 在vue 源码中是利用 Promise.resolve()实现的。该问题实际就是Promise与setTimeout的区别,本质是Event Loop中微任务与宏任务的区别。 nextTick:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。…...

Linux内核及可加载内核模块编程

图1 Linux系统整体结构 图2 Linux的源代码结构 下面显示一段内核模块代码案例&#xff1a; #include <linux/moduLe.h> #include <linux/kernel.h #include <linux/intt.h> /*模块的初始化函数lkp_ init()_init是用于初始化的修饰符 */ static int __init lk…...

软件设计师_备考笔记

考试介绍及考点分布情况 考试要求&#xff1a; &#xff08;1&#xff09;掌握数据表示、算术和逻辑运算&#xff1b; &#xff08;2&#xff09;掌握相关的应用数学、离散数学的基础知识&#xff1b; &#xff08;3&#xff09;掌握计算机体系结构以及各主要部件的性能和基…...

Java学习笔记------抽象类和抽象方法

抽象方法 抽象方法&#xff1a;将共性的行为&#xff08;方法&#xff09;抽取到父类之后&#xff0c;由于每一个子类执行的内容是不一样的&#xff0c;所以&#xff0c;在父类中不能确定具体的方法体&#xff0c;该方法就可以定义为抽象方法抽象类&#xff1a;如果一个类中存…...

CircuitMaker免费PCB设计工具:从开源协议到实战避坑指南

1. 从“Freemium”到“全免费”&#xff1a;CircuitMaker的定位之变与我的选择时间过得真快&#xff0c;距离Altium首次推出免费的CircuitMaker工具&#xff0c;仿佛就在昨天。我记得当时业界一片哗然&#xff0c;大家都在讨论这家以高端、专业的Altium Designer闻名的公司&…...

Flutter + 开源鸿蒙跨端实战|基于空间地理信息的**城市全域智慧泊车调度与多维运维管理平台** Day1 项目架构基座与工程化环境搭建

Flutter 开源鸿蒙跨端实战&#xff5c;基于空间地理信息的城市全域智慧泊车调度与多维运维管理平台 Day1 项目架构基座与工程化环境搭建 欢迎入驻开源鸿蒙全栈技术实战社区&#xff1a;https://openharmonycrossplatform.csdn.net <!-- Schema.org 结构化数据 --> <…...

汉字信息聚合工具开发:从数据可视化到工程实践

1. 项目概述&#xff1a;一个汉字学习者的“浏览器” 如果你是一个对汉字结构、字源、演变历史有浓厚兴趣的学习者&#xff0c;或者是一位从事中文教学、字体设计、文化研究的专业人士&#xff0c;你肯定有过这样的经历&#xff1a;为了查清一个汉字的来龙去脉&#xff0c;你需…...

如何将Android电视变身全能上网终端:TV Bro电视浏览器终极指南

如何将Android电视变身全能上网终端&#xff1a;TV Bro电视浏览器终极指南 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro 还在为智能电视上网操作困难而烦恼吗&#xf…...

保姆级避坑指南:在Ubuntu 18.04上用ROS Melodic和easy_handeye搞定UR5+Realsense D435i手眼标定

保姆级避坑指南&#xff1a;Ubuntu 18.04下ROS Melodic与UR5机械臂手眼标定实战 在工业机器人应用开发中&#xff0c;手眼标定是连接视觉系统与机械臂的关键环节。本文将针对UR5机械臂与Realsense D435i相机的组合&#xff0c;深入剖析ROS Melodic环境下使用easy_handeye进行标…...

5分钟上手Sticky:Linux桌面终极便签管理工具完全指南

5分钟上手Sticky&#xff1a;Linux桌面终极便签管理工具完全指南 【免费下载链接】sticky A sticky notes app for the linux desktop 项目地址: https://gitcode.com/gh_mirrors/stic/sticky 你是否厌倦了在电脑桌面上寻找重要信息的混乱体验&#xff1f;是否曾因为忘记…...

从图形变换到机器学习:行列式到底在‘衡量’什么?一个直观的几何理解指南

从图形变换到机器学习&#xff1a;行列式到底在‘衡量’什么&#xff1f;一个直观的几何理解指南 想象你手中有一张弹性薄膜&#xff0c;拉伸、旋转或挤压它时&#xff0c;薄膜覆盖的面积会如何变化&#xff1f;这种直观的几何变换背后&#xff0c;隐藏着线性代数中行列式的本质…...

构建离线优先应用终极指南:Material Components Web 与 Service Worker 完美集成

构建离线优先应用终极指南&#xff1a;Material Components Web 与 Service Worker 完美集成 【免费下载链接】material-components-web Modular and customizable Material Design UI components for the web 项目地址: https://gitcode.com/gh_mirrors/ma/material-compone…...

从零开始将Taotoken接入现有Nodejs项目实践步骤

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 从零开始将Taotoken接入现有Nodejs项目实践步骤 1. 准备工作&#xff1a;获取API密钥与模型信息 在开始代码改造之前&#xff0c;…...

实战 | 性能瓶颈无处遁形,揭秘 mPaaS 全链路压测的落地策略与调优秘籍

1. 从性能焦虑到精准定位&#xff1a;为什么需要全链路压测&#xff1f; 第一次接手移动应用性能优化项目时&#xff0c;我盯着监控大屏上跳动的红色警报线手足无措。用户投诉像雪片般飞来&#xff1a;"支付页面卡死"、"图片加载转圈半分钟"、"活动页…...