php://filter是PHP中独有的协议,利用这个协议可以创造很多“妙用”,本文说几个有意思的点,剩下的大家自己下去体会。本来本文的思路我上半年就准备拿来做XDCTF2016的题目的,没想到被三个白帽的一题抢先用了,我也就只好提前分享一下。

XXE中的使用

php://filter之前最常出镜的地方是XXE。由于XXE漏洞的特殊性,我们在读取HTML、PHP等文件时可能会抛出此类错误parser error : StartTag: invalid element name 。其原因是,PHP是基于标签的脚本语言,<"php://filter/read=convert.base64-encode/resource=php://input");

如下:

浅谈php://filter的妙用

所以,在XXE中,我们也可以将PHP等容易引发冲突的文件流用php://filter协议流处理一遍,这样就能有效规避特殊字符造成混乱。

如下,我们使用的是php://filter/read=convert.base64-encode/resource=./xxe.php

浅谈php://filter的妙用

巧用编码与解码

使用编码不光可以帮助我们获取文件,也可以帮我们去除一些“不必要的麻烦”。

记得前段时间三个白帽有个比赛,其中有一部分代码大概类似于以下:

<"htmlcode">
<"phpexita"被正常解码,而后面我们传入的webshell的base64内容也被正常解码。结果就是<"text-align: center">浅谈php://filter的妙用

利用字符串操作方法

有的同学说,base64的算法我不懂,上面的方法太复杂了。

其实,除了使用base64特性的方法外,我们还可以利用php://filter字符串处理方法来去除“死亡exit”。我们观察一下,这个<"text-align: center">浅谈php://filter的妙用

可见,<"text-align: center">浅谈php://filter的妙用

除此之外,我们还可以利用rot13编码独立完成任务。原理和上面类似,核心是将“死亡exit”去除。<"text-align: center">浅谈php://filter的妙用

当然,这个方法的条件就是不开启短标签。

以上就是关于php://filter的妙用的疑惑全部内容,感谢大家对的支持。

标签:
php://filter

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com

评论“浅谈php://filter的妙用”

暂无“浅谈php://filter的妙用”评论...