Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2024-21546 — 自動化漏洞利用工具包與偵測範本,針對 CVE-2024-21546——UniSharp Laravel Filemanager 中的未驗證遠端程式碼執行(RCE)漏洞,具備 WAF 繞過功能與互動式 Shell。 | Kitploit
工具/GitHubGitHub/digitalsurgn/cve-2024-21546
侦察漏洞扫描器代码分析漏洞利用Web应用程序漏洞利用Web安全Payload 开发
GitHubdigitalsurgn/cve-2024-21546

CVE-2024-21546

自動化漏洞利用工具包與偵測範本,針對 CVE-2024-21546——UniSharp Laravel Filemanager 中的未驗證遠端程式碼執行(RCE)漏洞,具備 WAF 繞過功能與互動式 Shell。

查看仓库
10小时40分前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

UniSharp Laravel Filemanager 未认证 RCE(CVE-2024-21546)

本仓库包含安全评估工具、检测模板以及自动化利用工具包,用于识别和利用使用 UniSharp/laravel-filemanager 包(版本 < 2.9.1)的应用程序中的**未认证远程代码执行(RCE)**漏洞。


📑 目录

  • 1. 漏洞概述
  • 2. 根本原因分析
  • 3. Nuclei 检测模板(laravel-filemanager.yaml)
    • 为什么默认模板在本地化站点上会失效
    • 重建模板规范
    • 运行 Nuclei 扫描
  • 4. 自动化利用工具包(cve_2024_21546_rce.py)
    • 利用能力
    • 用法与参数
    • 示例
  • 5. 修复建议

1. 漏洞概述

该漏洞源于两个条件的组合:

  1. 未认证路由访问: 宿主应用程序注册 /laravel-filemanager 路由时未应用 'auth' 或 'web' 中间件管道。
  2. 尾随点扩展名验证绕过: 上传验证器未能正确清理尾随点字符(.),允许攻击者绕过可执行文件黑名单并将 PHP 脚本放入公共存储中。

2. 根本原因分析

A. 尾随点验证器缺陷(LfmUploadValidator.php)

在 v2.9.1 之前的版本中,LfmUploadValidator.php 使用以下方式检查文件扩展名是否在黑名单中:

root@kitploit:~
public function extensionIsNotExcutable($unallowed_extensions)
{
    $extension = strtolower($this->file->getClientOriginalExtension());
    if (in_array($extension, $unallowed_extensions)) {
        throw new \Exception('File extension is not allowed.');
    }
    return $this;
}

当攻击者上传名为 poc.php. 的文件时:

  • Symfony 的 getClientOriginalExtension() 提取最后一个点之后的字符。
  • 由于文件名以点结尾,getClientOriginalExtension() 计算结果为 ""(空字符串)。
  • 检查 in_array("", ['php', 'html']) 计算结果为 false,从而绕过扩展名黑名单。

B. 无扩展名解析与重命名链

在 Windows 和特定存储驱动上,文件以无扩展名的哈希(<hash>)形式持久化。该利用链结合 LFM 的 RenameController(GET /laravel-filemanager/rename?file=<hash>&new_name=runner.php)将上传的载荷重命名为活跃的 .php 文件,从而在 /storage/app/public/file-manager-files/items/runner.php 下获得即时 Web 执行能力。


3. Nuclei 检测模板(laravel-filemanager.yaml)

为什么默认模板在本地化站点上会失效

上游社区模板(http/exposed-panels/laravel-filemanager.yaml)(https://github.com/projectdiscovery/nuclei-templates/blob/main/http/exposed-panels/laravel-filemanager.yaml)依赖于硬编码的英文字符串匹配器:

root@kitploit:~
matchers:
  - type: word
    words:
      - "Laravel FileManager" # Fails on localized deployments or non english versions

当应用程序被本地化(例如阿拉伯语、法语、中文)时,HTML 正文中不存在英文字符串,导致误报(漏报)。

重建模板规范

现代化模板通过匹配不可变的供应商资源路径和上传表单操作来检测面板:

root@kitploit:~
id: laravel-filemanager

info:
  name: Laravel File Manager - Panel Detect
  author: digitalsurgn
  severity: critical
  description: Laravel File Manager panel was detected.
  reference:
    - https://github.com/UniSharp/laravel-filemanager
  classification:
    cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N
    cwe-id: CWE-200
  metadata:
    max-request: 1
  tags: panel,laravel,filemanager,fileupload,intrusive

http:
  - method: GET
    path:
      - "{{BaseURL}}/laravel-filemanager?type=Files"

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "vendor/laravel-filemanager"
          - "laravel-filemanager/upload"
        condition: or

      - type: status
        status:
          - 200

运行 Nuclei 扫描

root@kitploit:~
nuclei -u https://target.com/ -t laravel-filemanager.yaml

4. 自动化利用工具包(cve_2024_21546_rce.py)

独立的 Python 工具(cve_2024_21546_rce.py)自动化端到端的未认证利用,内置 WAF 规避和自我清理机制。

利用能力

  • 协议与端口自动协商: 自动发现目标使用 HTTP 还是 HTTPS,并支持非标准自定义端口。
  • 预检访问验证: 在尝试利用之前确认 /laravel-filemanager 无需认证即可访问。
  • 动态文件跟踪: 对目录列表(jsonitems)进行前后快照,以识别上传的哈希,无需依赖硬编码的文件夹或文件名。
  • WAF 规避: 使用 PHP 短标签(<?=)、动态函数调用(('pas'.'sthru'))以及 Base64 编码的 X-Cmd 头来规避检测规则。
  • 交互式 Shell 模式: 支持持续的交互式 Shell 会话(--interactive)。
  • 零痕迹自动清理: 每次命令执行后自动删除投放的 Web Shell。

用法与参数

root@kitploit:~
python3 cve_2024_21546_rce.py [OPTIONS]

示例

1. 交互模式(提示输入目标、端口和命令)

root@kitploit:~
python3 cve_2024_21546_rce.py

2. 单条命令执行(CLI)

root@kitploit:~
python3 cve_2024_21546_rce.py -t xyz.com -c "whoami"

3. 自定义非标准端口配合交互式 Shell

root@kitploit:~
python3 cve_2024_21546_rce.py -t 10.10.10.50 -p 8080 --interactive

5. 修复建议

  1. 升级包: 通过 Composer 将 unisharp/laravel-filemanager 更新到 2.9.1 或更高版本:
    root@kitploit:~
    composer update unisharp/laravel-filemanager
    
  2. 强制认证中间件: 确保 config/lfm.php 中所有文件管理器路由均受认证保护:
    root@kitploit:~
    'middlewares' => ['web', 'auth'],
    
  3. 限制公共存储: 配置 Web 服务器规则,拒绝在公共上传目录(例如 /storage/)中执行 .php 脚本。
下载工具
指标详情
漏洞名称UniSharp Laravel Filemanager 不受限制的文件上传导致 RCE
CVE 标识符CVE-2024-21546
受影响组件unisharp/laravel-filemanager(< 2.9.1)
常见弱点CWE-94(代码注入)/ CWE-434(不受限制的上传)
严重性严重(CVSS 9.8)
攻击向量远程 / 未认证 HTTP
标志参数描述
-t, --target<host>目标域名或 IP 地址(例如 example.com 或 192.168.1.50)。
-p, --port<port>目标端口(如果不同于标准的 80/443)(例如 8080、8443)。
--schemehttp / https显式指定协议方案(默认:自动检测)。
-c, --cmd<command>要执行的单条命令(例如 whoami、id、ipconfig)。
-i, --interactive标志启动交互式命令执行 Shell。
-d, --dir<path>目标 LFM 工作目录(默认:/items)。