abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-rss-file-redirect
类别: 文件读取 可达性: 远程
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
is_URL() 并非仅限 HTTP。SimplePie 的 fix_protocol() 会将直接的 file:// 重写为 http。递归的 3xx Location: file:/// 不会调用 fix_protocol(),并以 root 身份对路径执行 file_get_contents。
| ID | 暂无 CVE |
| 类别 | 文件读取 |
| 可达性 | 远程(除非另有说明,需已认证的 WebGUI) |
| CWE | CWE-73 |
| CVSS | 中危:6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N |
| 产品 | pfSense CE |
| 受影响版本 | 2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) |
| 认证 | 具有 page-dashboard-all / widgets MATCH 的 WebGUI 会话 |
| 许可证 | GNU Affero GPL v3.0 |
| 实验环境 | 仅 127.0.0.1 |
我固定了公共 master 分支 9363ac5。实验环境是针对该固定版本 sink 的 PHP gadget,在 127.0.0.1:19100 上提供回环 HTTP。
系列文章:https://abraxaslabs.tech/research/pfsense-ce-leftovers
| 方法 | Sink | 权限 |
|---|---|---|
| 在仪表盘 RSS 中保存一个会 302 跳转到 file:// 的 HTTP URL | SimplePie File 递归 Location file_get_contents | 完整性: 无。仅读取。 |
| 同一遗留问题 | 同一 sink | 侦察: 实验环境已证实:HTTP 302 Location: file:/// 返回了植入的 XML。直接的 file:// 会被重写掉。 |
| 同一遗留问题 | 同一 sink | 可用性: 未显示。 |
需要: page-dashboard-all / widgets MATCH。除非另有说明,POST 上有 CSRF-magic。WebGUI PHP-FPM 以 root 运行。
需要: page-dashboard-all / widgets MATCH。除非另有说明,POST 上有 CSRF-magic。WebGUI PHP-FPM 以 root 运行。除非另有说明,POST 上有 CSRF-magic。WebGUI PHP-FPM 以 root 运行。
在此固定版本上,26_04 标题编码。操作员的 HTTP(S) feed URL 是该功能。直接的 file:// 会被重写。
除非该页面也被授权,否则没有 Diagnostics: Command。
cd lab
./run.sh
回环 127.0.0.1:19100。Compose 项目 pfsense-rss-file-redirect。见证 PFSENSE-RSS-FILE-REDIRECT-WITNESS。仅回环:127.0.0.1:19100。Compose 项目 pfsense-rss-file-redirect。见证 PFSENSE-RSS-FILE-REDIRECT-WITNESS。针对固定代码行的 PHP gadget。运行后栈会被拆除。
最后一行:
SUCCESS PFSENSE-RSS-FILE-REDIRECT control-rewritten-away=yes trigger-file-location=yes PFSENSE-RSS-FILE-REDIRECT-WITNESS
强制使用 HTTP(S) feed。不要跟随 file: Location。CURLOPT_PROTOCOLS HTTP(S)。
9363ac5b8651a1c7a333180425ce7719070f95f9