php://filter技术分享

news/2024/5/19 21:56:18 标签: php, web, ctf
webkit-tap-highlight-color: rgba(0, 0, 0, 0);">

0x00 前言

php://filter是PHP中的一个协议,利用这个协议我们可以解决一些ctf的题目,或者挖掘出一些漏洞。

phpfilter">0x01 php://filter

php://filter可以作为一个中间流来处理其他流,具有四个参数:

名称描述备注
resource=<要过滤的数据流>指定了你要筛选过滤的数据流。必选
read=<读链的筛选列表>可以设定一个或多个过滤器名称,以管道符(|)分隔。可选
write=<写链的筛选列表>可以设定一个或多个过滤器名称,以管道符(|)分隔。可选
<;两个链的筛选列表>任何没有以 read= 或 write= 作前缀 的筛选器列表会视情况应用于读或写链。

例子:

php"><?php
#这里没有指定过滤器
readfile("php://filter/resource=http://www.example.com");
?>

php"><?php
/* 这会以大写字母输出 www.example.com 的全部内容 */
readfile("php://filter/read=string.toupper/resource=http://www.example.com");

/* 这会和以上所做的一样,但还会用 ROT13 加密。 */
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
?>

这里使用了管道符|来对多个过滤器的名称进行了分割

ctf中的应用">0x02 ctf中的应用

——————————————————————————

①使用base64获取源码

例:bugku ctf练习平台的 flag在index里面 题目
这里写图片描述
题目提示flag在index里面,但是无法通过查看源码得到有效信息,因此尝试使用php://filter获取源码
这里写图片描述
可以看到通过base64加密后的源码已经爆出
解密,排版,轻松得到flag
这里写图片描述

②绕过关键限制

这一部分思路来源于:leavesongs大牛 https://www.leavesongs.com/PENETRATION/php-filter-magic.html
我是勤劳的搬运工

思路一

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

这里的$content在开头增加了exit,使得我们即使可以成功写入一句话,也无法执行。
我们通过php://filter巧妙绕过这里的限制
1.对我们想要写入的一句话进行base64encode
2.php://filter/read=convert.base64-decode进行解码
那么\<\?php exit;?>这一部分在经过解码后,php不对其解析,而我们想要写入的一句话正好被成功解码。因此得以成功上传webshell。

这里写图片描述

思路二

上面的题目除了base64外,还有另一种做法。
我们可以发现我们想要去除的代码片其实是一个XML标签,因此我们可以想到一个函数去去除它:strip_tags

如果这样进行处理的话,我们想要写入的一句话也会被处理。
不过,我们的php://filter是可以使用多个过滤器的,因此我们可以先对我们想要的一句话进行编码,过滤器中先使用strip_tags函数进行处理再使用对应的解码方法即可!(如base64,rot-13
这里写图片描述

如果使用rot-13,则该方法仅限于当short_open_tag不开启的时候


http://www.niftyadmin.cn/n/1352522.html

相关文章

base64和rot-13

0x00 前言 我们来索一索ctf中常用的编码&#xff0c;加密方式&#xff0c;base64和rot-13 0x01 base64 之前也提到过&#xff0c;编码都是为了某些传输的需要&#xff0c;而base64就是一种 基于64个可打印字符来表示二进制数据的表示方法。 —— 我们可以看一下base64的…

BDCTF2017-初赛第一阶段writeup

0x00 前言 由于某些不可描述的原因暂时停赛了&#xff0c;现在分享一下题目writeup&#xff0c;不按顺序写 0x01 正文 childhood 下载题目后&#xff0c;打开有个压缩包&#xff0c;历经各种方法都搞不开&#xff0c;只能爆破出结果了 密码bdctf2017 压缩包中两个文件&am…

无线网络安全之ARP欺骗攻击

0x00 相关背景知识 一、中间人攻击 通过各种技术手段将攻击者控制的一台计算机虚拟放置于网络连接中的两台通信计算机之间&#xff0c;从而达到信息窃听&#xff0c;会话劫持&#xff0c;断网等攻击目标。 二、ARP欺骗 针对ARP协议漏洞发起的攻击&#xff0c;攻击者在局域网…

USTC2017 writeup

0x00 前言 突然发现了这个比赛&#xff0c;作为校外同学参加了一下科大的第四届校内赛&#xff0c;题目质量挺不错的&#xff0c;发下wp做下记录&#xff08;部分思路来自官方题解&#xff09; 1.看不见的字 这道题挺有意思的&#xff0c;各种常规misc做法轮番轰炸&#xff…

第四届miac安全赛第一阶段writeup

0x00 web 1.签到题 简单的php sha1漏洞 2.七环 这道题是真的坑&#xff0c;提示写着777&#xff0c;把思维都往权限方向跑了。 其实一开始就留意到这个奇怪的cookie&#xff0c;但是也没有经验。 AGI-dAGMAdA-fAHsAQABiAGw-ueAEA-dAG8-nAEA-eduAEAAfQ- 尝试了各种常规手…

misc常用查询表(不定时更新)

0x00 ascii表 0x01 base64转化表 即经过计算后得出的值查表即可得到对应的base64编码字符 0x02 手机按键对应的双频 0x03 维吉尼亚密码

计算机网络复习笔记

说明 这个笔记是我在学习该课程时做的一个比较详细的笔记&#xff0c;一共有85页&#xff0c;由于是用word文档编写的&#xff0c;文档的图片不少&#xff0c;所以不想再仔细整理到博客上&#xff0c;所以下面发一个预览版&#xff08;大概10页&#xff09;&#xff0c;供大家…

第四届miac安全赛第二阶段writeup

WEB 签到题 前端不能输入超过三位的数&#xff0c;抓包修改即可 简单的题 strcmp去比较password和flag&#xff0c;如果0的话&#xff0c;就给出flag 我们知道strcmp是不可以处理数组的&#xff0c;因此password[]即可 其实这里有个思路&#xff0c;如果基础不够&#xff…