Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pfsense-voucher-expire-sqli — pfSense CE 2.9.0-DEVELOPMENT - 중간 - 원격 - SQLi - voucher_expire WHERE | Kitploit
도구/GitHubGitHub/abraxas/pfsense-voucher-expire-sqli
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingLabs & Practice
GitHubabraxas/pfsense-voucher-expire-sqli

pfsense-voucher-expire-sqli

pfSense CE 2.9.0-DEVELOPMENT - 중간 - 원격 - SQLi - voucher_expire WHERE

저장소 보기
124일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - pfsense-voucher-expire-sqli

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-voucher-expire-sqli

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)
CWECWE-89
CVSSMedium: 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 tokencaptiveportal_read_db WHERE username = '{$voucher}'무결성: 랩에서 입증됨: UNION으로 다른 sessionid를 선택했고 stacked-UPDATE로 해당 행을 재작성했다. CONTROL expire는 A만 삭제했다. 비인증 로그인 경로는 이스케이프된 상태로 유지되었다.
동일한 잔여 코드동일한 sink정찰: 추론됨: UNION으로 captiveportal{zone}.db의 다른 세션 컬럼을 읽을 수 있다.
동일한 잔여 코드동일한 sink가용성: 랩에서 입증됨: 주입된 첫 번째 행의 연결 해제; 해당 zone DB의 다른 세션을 삭제/재작성할 수 있다.

필요 조건: 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 사용. 셸 없음. 다른 zone DB 없음. GUI 쿠키 없음.

해당 페이지도 함께 부여되지 않는 한 Diagnostics: Command 없음.

랩

cd lab
./run.sh

루프백 127.0.0.1:19280. Compose 프로젝트 pfsense-voucher-expire-sqli. Witness PFSENSE-VOUCHER-EXPIRE-SQLI-WITNESS. 루프백 전용: 127.0.0.1:19280. Compose 프로젝트 pfsense-voucher-expire-sqli. Witness 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에 연결하는 것을 중단하라.

참고 자료

  • github.com/pfsense/pfsense 9363ac5b8651a1c7a333180425ce7719070f95f9
  • CWE-89
  • 시리즈: https://abraxaslabs.tech/research/pfsense-ce-leftovers
도구 다운로드