abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-voucher-expire-sqli
类别: SQLi 可达性: 远程
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
voucher.inc captiveportal_read_db("WHERE username = '{$voucher}'") 然后将第一行的 sessionid 传入 captiveportal_remove_entries。未认证登录 INSERT 使用 SQLite3::escapeString。
| ID | 暂无 CVE |
| 类别 | SQLi |
| 可达性 | 远程(除非另有说明,否则为已认证 WebGUI) |
| CWE | CWE-89 |
| CVSS | 中危:6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L |
| 产品 | pfSense CE |
| 受影响版本 | 2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) |
| 认证 | 具有 page-status-captiveportal-expire / page-services-captiveportal-vouchers 的 WebGUI 会话 |
| 许可证 | GNU Affero GPL v3.0 |
| 实验环境 | 仅 127.0.0.1 |
我固定了公共 master 9363ac5。该实验环境是固定 sink 的 PHP gadget,在 127.0.0.1:19280 上提供回环 HTTP。
系列文章:https://abraxaslabs.tech/research/pfsense-ce-leftovers
| 方法 | Sink | 权限 |
|---|---|---|
| POST voucher expire token | captiveportal_read_db WHERE username = '{$voucher}' | 完整性: 实验证明:UNION 选择了另一个 sessionid,且 stacked-UPDATE 重写了该行。CONTROL expire 仅删除了 A。未认证登录路径仍保持转义。 |
| 同一遗留点 | 同一 sink | 侦察: 推断:UNION 可以从 captiveportal{zone}.db 读取其他 session 列。 |
| 同一遗留点 | 同一 sink | 可用性: 实验证明:断开注入的第一行;可以删除/重写该 zone DB 上的另一个 session。 |
需要: page-status-captiveportal-expire / page-services-captiveportal-vouchers。除非另有说明,否则 POST 上启用 CSRF-magic。WebGUI PHP-FPM 以 root 运行。
需要: page-status-captiveportal-expire / page-services-captiveportal-vouchers。除非另有说明,否则 POST 上启用 CSRF-magic。WebGUI PHP-FPM 以 root 运行。除非另有说明,否则 POST 上启用 CSRF-magic。WebGUI PHP-FPM 以 root 运行。
未认证登录转义。voucher_auth 仍使用 escapeshellarg。无 shell。无其他 zone DB。无 GUI cookie。
除非该页面也被授予,否则无 Diagnostics: Command。
cd lab
./run.sh
回环 127.0.0.1:19280。Compose 项目 pfsense-voucher-expire-sqli。见证 PFSENSE-VOUCHER-EXPIRE-SQLI-WITNESS。仅回环:127.0.0.1:19280。Compose 项目 pfsense-voucher-expire-sqli。见证 PFSENSE-VOUCHER-EXPIRE-SQLI-WITNESS。固定行的 PHP gadget。运行后栈会拆除。
最后一行:
SUCCESS PFSENSE-VOUCHER-EXPIRE-SQLI control-expire-only-a=yes control-login-escaped=yes trigger-rewrite-b=yes PFSENSE-VOUCHER-EXPIRE-SQLI-WITNESS
绑定参数。停止将 voucher 拼接到 SQL 中。
9363ac5b8651a1c7a333180425ce7719070f95f9