PHP伪协议与文件包含漏洞1
PHP文件包含漏洞花样繁多,需配合代码审计。
看能否使用这类漏洞时,主要看:
(1)代码中是否有include(),且参数可控;
如:
(2)php.ini设置:确保 allow_url_fopen=1, allow_url_include=1;
确定了使用的参数之后,就可以开始用伪协议了。
1. data://text/plain 伪协议
可以执行任何代码;需要fopen和include全部打开。
用法示例1:?page=data://text/plain,<?php phpinfo(); ?>
用法示例2:?page=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOyA/Pg==
注:经过base64编码后的加号和等号最好手动将其换成url编码形式,以免识别不了。( =[%3d]; +[%2b] )
2.php://input 伪协议
可以将post请求中的数据作为php代码执行;只需要include打开。
用法示例:(抓包,在get参数后输入伪协议,在post区域输入php代码。)
3.php://filter 伪协议
读取文件源代码;只需要fopen打开;一般在知晓网站路径的情况下使用。
用法示例:?page=php://filter/read=convert.base64-encode/resource=learn.php
这样,其返回的就是learn.php base64加密后的代码内容。此处learn.php与漏洞文件在同一目录下;否则,还要写相对路径的。
(我在测试时,稍微改动一下这个语句,它的效果就变成执行learn.php了;原理和更多用法还待探究。)
将参数改为post后,data和php://filter还可使用,php://input失效。
参考:https://blog.csdn.net/weixin_45588247/article/details/119348342?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.searchformbaiduhighlight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.searchformbaiduhighlight
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?