| 字段 | 详情 |
|---|---|
| CVE ID | CVE-2023-37191 |
| 产品 | Issabel PBX (issabel-pbx) |
| 受影响版本 | 4.0.0-6 |
| 漏洞类型 | 存储型跨站脚本(XSS) |
| 严重性 | 中危 |
| 发现日期 | 2023年7月7日 |
| 发现者 | Sahil Ojha |
| 厂商主页 | https://www.issabel.org/ |
| 源代码 | https://github.com/IssabelFoundation/issabelPBX |
| 测试环境 | Windows |
Issabel PBX 4.0.0-6 版本中存在一个**存储型跨站脚本(XSS)**漏洞。该应用程序未能对用户提供的输入进行适当的清理或编码,直接将其存入数据库,并在浏览器中渲染。这使得经过身份验证的攻击者能够通过 系统 → 用户 → 组 下的 组 和 描述 输入字段注入任意的 JavaScript 或 HTML 代码。
一旦恶意载荷被保存,便会持久存储在服务器上。每当任何用户(包括管理员)访问受影响页面时,注入的脚本会自动在其浏览器会话中执行——攻击者无需进一步操作。这就是存储型(持久性)XSS与反射型XSS的区别;其影响范围更广、危险性更高,因为载荷会影响该页面的所有访问者。
系统 → 用户 → 组 模块组(名称字段)和 描述(文本字段)成功利用此漏洞可允许攻击者:
由于载荷存储在服务器上,每个访问受感染页面的用户都会受到影响——与反射型XSS攻击相比,损害被放大。
步骤1: 使用管理员凭据登录 Issabel PBX Web 界面。
步骤2: 导航至 系统 → 用户 → 组。在 组 和/或 描述 输入字段中输入以下 XSS 载荷:
"><script>alert(1)</script>
字段应类似于以下截图:

步骤3: 点击 保存。载荷现已持久存储在应用程序的数据库中。
步骤4: 再次导航至 系统 → 用户 → 组 页面(或让其他用户访问该页面)。注入的脚本在浏览器中自动执行,如下所示:

为缓解此漏洞,Issabel PBX 开发团队应应用以下修复:
<、>、"、'、&)的值。htmlspecialchars() 或 htmlentities() 函数,而非自定义过滤。此信息仅供教育及研究目的使用。作者不对任何滥用此信息的行为负责。在对任何非自己拥有的系统进行漏洞测试前,请务必获得适当的书面授权。