文件包含漏洞基础

php 中的文件包含函数:
incude :
require
incude_once
require_once
为了减少重复性代码的编写;
任意后缀的文件当中只要存在 php 代码就会被当作 php 执行;
本质:由于包含的文件不可控,导致文件包含漏洞的产生
文件包含漏洞常见于 CTF
分类:
①本地文件包含 LFI ( local file include )
包含的代码需要满足 php 的语法规范,无配置文件要求
②远程文件包含 RFI(remote file include)
php 是否开启远程文件包含,受 allow_url_include=off (默认配置),在 php.ini 文件中
该漏洞的前提条件 allow_url_include=on
windows 中路径位置


linux 中
文件位置

文件内容可通过 vim 配和 / 快速搜索
改完之后需重启 apache 服务

当靶机没有红色证明修改配置成功,既 fi_remote.php 不报红

实验:
在物理机中设置一个 1.txt 文件
文件内容如下:
<?php
phpinfo();
?>
通过虚拟机中的 pikachu 容器去访问该文件
访问成功之后,结果如下,

也可将命令替换为任意文件操作,此时打开虚拟机检测目录是否存在
<?php
system( 'mkdir 666' );
//phpinfo();
?>
如果本机访问正常,容器无法访问物理机 web 服务可选择关闭防火墙(最方便)
或修改网络状态为专用网络
目录穿越 & 文件包含
由于用户输入可控,且后端代码未限制访问文件的路径,可拼接任意路径访问任意文件
../../../../../../../../../../../../../../../../../../../etc/passwd
伪协议在文件包含中的应用
如果后台代码中存在指定路径的情况,协议的使用会受限
file:// 文件路径
php://fliter/
常用
① convert.base64-encode/resource (读取 php 代码, php 文件通过包含会直接加载执行)
② read=string.rot13/resource ()
等等。。。。。
编码转换较好用,可最大限度规避检测
php://input 接收 post 传参数据
受配置
allow_url_open
allow_url_include
影响

data://text/plain, 数据
data://text/plain;base64, 编码后的数据( base64 编码后)
注: get 请求中 + 会变成空格,故需要使用 url 编码处理 + ;

相关推荐
Gnevergiveup2 分钟前
ATT&CK红蓝对抗实战指南-Windows安全基础
笔记·网络安全
白帽攻防录1 小时前
某pc客户端app从xss到rce实战案例
前端·网络安全·黑客·xss·rce·src漏洞·app漏洞
福大大架构师每日一题1 小时前
redis 8.10.3正式发布:聚焦集群总线超大消息传播场景的安全修复,8.10.3 Latest更新解读
数据库·redis·安全
Linux运维技术栈1 小时前
WAF部署在防火墙后面,获取不到真实IP怎么办?
服务器·网络·tcp/ip·安全·防火墙·waf
是真的小外套3 小时前
网络安全实战第6期:Hydra爆破SSH实战
安全·web安全·ssh
是真的小外套3 小时前
网络安全实战第5期:Wireshark抓明文密码
安全·web安全·wireshark
学网安的肆伍3 小时前
认证机制攻防学习|PortSwigger Authentication 靶场复现总结(二):用户名枚举进阶
学习·web安全·网络安全·burpsuite·portswigger·认证安全·靶场复现
KeyAction66663 小时前
从西班牙高铁追尾看安全系统设计:当违规指令成为输入,防护逻辑如何兜底
运维·服务器·安全
网络小江4 小时前
组网第41课:ACL 门禁——标准/扩展、规则顺序、time-range、in/out 方向
运维·网络安全·acl·访问列表·in/out
桐盛科技5 小时前
中央空调全链路管控:基于边缘计算的负荷预判与安全联锁实现
物联网·安全·能源·边缘计算