[渗透测试] 任意文件读取漏洞

任意文件读取漏洞

概述

漏洞成因

  • 存在读取文件的功能(Web应用开放了文件读取功能)
  • 读取文件的路径客户端可控(完全控制 或者影响文件路径)
  • 没有对文件路径进行校验或者校验不严格导致被绕过
  • 输出文件内容

漏洞危害

  • 下载服务器中的文件(源代码文件、系统敏感文件、配置文件等)
  • 可以配合其他漏洞,构成完整的攻击链。
  • 对源代码进行审计,查找更多漏洞。

任意文件读取漏洞

文件读取函数(PHP)

读取文件函数 函数特点
readfile() 直接读取文件内容自带输出功能
file_get_contents() 直接读取文件内容需要输出读取内容
fread() 需要使用fopen()函数打开一个文件计算文件的大小读取文件输出文件关闭文件

readfile:

php 复制代码
//readfile.php

$fp = "../phpinfo.php";
readfile($fp);

file_get_contents:

php 复制代码
//file_get_contents.php

$fp = "../phpinfo.php";
echo file_get_contents($fp);

fread:

php 复制代码
//fread.php

$fp = "../phpinfo.php";

$f = fopen($fp,'r');
$f_size = filesize($fp);

echo fread($f,$f_size);

fclose($f);

任意文件读取:

php 复制代码
$fp = $_GET['filepath'];
readfile($fp);

使用filepath传递,在filepath中输入地址来获取文件内容

使用Burp抓包:

结果:

任意文件下载漏洞

PHP实现文件下载

php 复制代码
<?php
$fp = './111.jpg';
header('Content-Type:image/jpg');
header('Content-Disposition:attachment;fileName='.basename($fp));
readfile($fp);

任意文件下载

php 复制代码
$fp = $_GET['filepath']
header('Content-Type:image/jpg');
header('Content-Disposition:attachment;fileName='.basename($fp));
readfile($fp);

任意文件读取攻防

路径过滤(.../)

1.过滤 .../

使用str_replace进行替换

php 复制代码
$fp = $_GET['filepath'];
$fp = str_replace("../","");
readfile($fp);

简单绕过

1.双写绕过

复制代码
..././..././..././windows/system32

2.绝对路径

复制代码
C:/windows/system32

**3.使用...\ **

复制代码
..\..\..\windows\system32

任意文件读取挖掘

手工挖掘

从文件名上看 从参数名上看
readfile.php filedownload.php filelist.php . . . f = file = filepath = fp = readfile = path = readpath = url = menu = META-INF = WEB-INF = content = . . .

漏洞修复方案

输入验证

让用户只能访问一定的路径

限定文件的访问范围

让用户不能访问根目录以外的路径:

​ php.ini配置文件中,限定文件访问范围

复制代码
open_basedir = c:\www\

不包含其他漏洞

不能有文件包含漏洞,目录遍历漏洞或者其他漏洞

相关推荐
时文鲜读1 小时前
算力基建提速,数据中心安全建设与工业可靠性如何同步升级?
大数据·人工智能·安全
yz_aiks1 小时前
Postman 自动给 Claude Code、Codex、Cursor 装插件怎么查和卸载:本机实测 5 处痕迹(Postman 12.34)
安全·postman·ai编程·开发工具·claude code
达梦产品与服务2 小时前
SQLark V4.2 更新 | 新增TiDB、SSL安全连接、数据字典、清空/截断表等40+项功能已上线!
数据库·安全·tidb·ssl
杨凯凡2 小时前
IT日报|2026-11-04:Copilot 接入 JetBrains Air、CodeQL 2.27.3、Agent 依赖自动更新
网络安全·github copilot·codeql·ai coding·dependabot
数字融合13 小时前
透明化视频孪生危化安全管控解决方案
人工智能·python·安全
迪康Defender15 小时前
终端供应链安全:应用白名单与软件正版化检测落地|终端安全治理实践
运维·服务器·网络·安全·web安全·自动化·运维开发
Flynn Liang15 小时前
AI 应用的安全红线:Spring AI 下的 Prompt 注入防护、PII 脱敏、输出审计与密钥管理
人工智能·安全·spring·数据泄露·springai·prompt注入
朗迪锋15 小时前
SoErgo重塑“四特”场景下的人机协同与安全边界
人工智能·安全·人机工程
jimmyleeee17 小时前
Agent安全之九:OWASP ASI09 人机信任利用------当人类成为攻击链上最后一道被攻破的关口
人工智能·安全
其实防守也摸鱼17 小时前
信创安全竞赛知识总结与题库
大数据·网络·人工智能·算法·安全·php