abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-wizard-uid0
类别: 权限残留 可达性: 远程
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
wizard.php?xml=setup_wizard.xml 第 7 步 getUserEntryByUID(0) 加上 local_user_set_password()。权限 MATCH wizard.php* 没有 warn-root。xml= 在 /usr/local/www/wizards 下经过 realpath 前缀处理。
| ID | 暂无 CVE |
| 类别 | 权限残留 |
| 可达性 | 远程(除非另有说明,需已认证 WebGUI) |
| CWE | CWE-269 |
| CVSS | 高危:8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 产品 | pfSense CE |
| 受影响版本 | 2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) |
| 认证 | 具有 page-pfsensewizardsubsystem 的 WebGUI 会话 |
| 许可证 | GNU Affero GPL v3.0 |
| 实验环境 | 仅 127.0.0.1 |
我固定了公共 master 9363ac5。实验环境是该固定 sink 的 PHP gadget,在 127.0.0.1:19020 上使用回环 HTTP。
系列文章:https://abraxaslabs.tech/research/pfsense-ce-leftovers
| 方法 | Sink | 权限 |
|---|---|---|
| POST wizard.php?xml=setup_wizard.xml 第 7 步 | getUserEntryByUID(0) local_user_set_password | 完整性: 实验环境已证实:第 7 步重写了 uid 0 的 bcrypt 哈希。xml= LFI 已关闭(../etc/passwd 和绝对路径均被拒绝)。 |
| 同一残留 | 同一 sink | 侦察: 推断:同一向导会重写 WAN/LAN/DHCP/主机名。 |
| 同一残留 | 同一 sink | 可用性: 推断:将操作员锁在 LAN 之外。 |
需要: page-pfsensewizardsubsystem。除非另有说明,POST 上有 CSRF-magic。WebGUI PHP-FPM 以 root 运行。
需要: page-pfsensewizardsubsystem。除非另有说明,POST 上有 CSRF-magic。WebGUI PHP-FPM 以 root 运行。除非另有说明,POST 上有 CSRF-magic。WebGUI PHP-FPM 以 root 运行。
xml= realpath 前缀 LFI。page-system-usermanager 对同一类别是 warn-root。
除非该页面也被授予,否则没有 Diagnostics: Command。
cd lab
./run.sh
回环 127.0.0.1:19020。Compose 项目 pfsense-wizard-uid0。见证 PFSENSE-WIZARD-UID0-WITNESS。仅回环:127.0.0.1:19020。Compose 项目 pfsense-wizard-uid0。见证 PFSENSE-WIZARD-UID0-WITNESS。固定行的 PHP gadget。运行后栈会拆除。
最后一行:
SUCCESS PFSENSE-WIZARD-UID0 lfi-closed=yes control-no-hash-change=yes trigger-uid0-hash-change=yes wizard-no-warn-root=yes usermanager-warn-root=yes PFSENSE-WIZARD-UID0-WITNESS
将 wizard.php 标记为 standard-warning-root,或在首次启动后从设置向导中移除 uid 0 密码。
9363ac5b8651a1c7a333180425ce7719070f95f9