
pfSense CE 2.9.0-DEVELOPMENT - 중간 - 원격 - 오픈 리다이렉트 - HTTP 301 $http_host
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-https-host-redirect
분류: 오픈 리다이렉트 도달 범위: 원격
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
system.inc는 return 301 https://$http_host$redirectport$request_uri;를 포함하고 server_name이 없는 포트 80 server{} 블록을 생성합니다. nginx는 php-fpm보다 먼저 301을 반환하므로, auth.inc의 DNS 리바인딩은 실행되지 않습니다.
| ID | 아직 CVE 없음 |
| 분류 | 오픈 리다이렉트 |
| 도달 범위 | 원격 (별도 언급이 없는 한 인증된 WebGUI) |
| CWE | CWE-601 |
| CVSS | 중간: 4.7 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:N/A:N |
| 제품 | pfSense CE |
| 영향받는 버전 | 2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) |
| 인증 | WebGUI HTTP 리스너에 접근할 수 있는 미인증 클라이언트를 사용한 WebGUI 세션 |
| 라이선스 | GNU Affero GPL v3.0 |
| 랩 | 127.0.0.1 전용 |
저는 공개 master 9363ac5를 고정했습니다. 랩은 고정된 싱크의 PHP 가젯이며, 127.0.0.1:19210에서 루프백 HTTP를 사용합니다.
시리즈 분석 글: https://abraxaslabs.tech/research/pfsense-ce-leftovers
| 방법 | 싱크 | 권한 |
|---|---|---|
| 악의적인 Host를 사용한 TCP/80의 미인증 GET / | nginx return 301 https://$http_host... | 무결성: 없음. |
| 동일한 잔여 코드 | 동일한 싱크 | 정찰: 랩에서 입증됨: Host evil.example이 Location https://evil.example/index.php가 됨. PHP DNS 리바인딩 501은 이 301에서 실행되지 않음. |
| 동일한 잔여 코드 | 동일한 싱크 | 가용성: 표시된 것 없음. |
요구 사항: WebGUI HTTP 리스너에 접근할 수 있는 미인증 클라이언트. 별도 언급이 없는 한 POST에 CSRF-magic 적용. WebGUI PHP-FPM은 root.
요구 사항: WebGUI HTTP 리스너에 접근할 수 있는 미인증 클라이언트. 별도 언급이 없는 한 POST에 CSRF-magic 적용. WebGUI PHP-FPM은 root. 별도 언급이 없는 한 POST에 CSRF-magic 적용. WebGUI PHP-FPM은 root.
HTTPS GUI 자체에 대한 PHP DNS 리바인딩.
해당 페이지도 권한이 부여되지 않는 한 Diagnostics: Command 없음.
cd lab
./run.sh
루프백 127.0.0.1:19210. Compose 프로젝트 pfsense-https-host-redirect. Witness PFSENSE-HTTPS-HOST-REDIRECT-WITNESS. 루프백 전용: 127.0.0.1:19210. Compose 프로젝트 pfsense-https-host-redirect. Witness PFSENSE-HTTPS-HOST-REDIRECT-WITNESS. 고정된 라인의 PHP 가젯. 실행 후 스택은 해체됩니다.
마지막 줄:
SUCCESS PFSENSE-HTTPS-HOST-REDIRECT control-localhost=yes trigger-evil=yes php-rebind-skips-301=yes PFSENSE-HTTPS-HOST-REDIRECT-WITNESS
$http_host가 아닌 구성된 호스트 이름 또는 (허용 목록에 있는) $host를 사용하십시오.
9363ac5b8651a1c7a333180425ce7719070f95f9