
잠재적으로 취약한 서버 측 요청 위조(SSRF) 매개변수를 찾는 보안 도구
웹 애플리케이션에서 잠재적인 SSRF(Server Side Request Forgery) 파라미터를 찾는 보안 스캐너 (이제 AI 🤖로 강화됨). See-SURF는 잠재적인 SSRF 파라미터를 탐지할 뿐만 아니라 검증까지 도와주어 시스템 및 사용자 데이터 침해로부터 애플리케이션을 보호합니다.

연구 논문, 기사 등에서 이 소프트웨어를 사용하는 경우 인용해 주시기 바랍니다.
@software{Agrawal_See-SURF_Detect_SSRF_2019,
author = {Agrawal, Vaibhav},
month = jul,
title = {{See-SURF: Detect SSRF security vulnerability}},
url = {https://github.com/In3tinct/See-SURF},
version = {2.0.0},
year = {2019}
}
자동 정찰: 강력한 정규식 매칭(예: url, website 또는 IP 주소와 같은 키워드 매칭)을 사용하여 잠재적인 SSRF 파라미터를 식별하기 위해 데이터를 수집하고 파싱하는 멀티스레드 크롤러. 로그인 페이지 뒤의 엔드포인트를 스캔하기 위한 쿠키 기반 인증 지원.
Burp Suite 통합: 크롤링 전에 Burp Suite 사이트맵(.xml)을 원활하게 파싱하여 더 넓은 범위의 파라미터를 발견합니다.
검증 및 익스플로잇: 새로운 AI 통합은 Google Gemini 및 OpenAI와 같은 제공자를 통해 응답 헤더를 분석하고 맞춤형 페이로드를 생성하는 AI 기반 탐지, AWS 메타데이터와 같은 내부 서비스를 타겟팅하는 스마트 피벗 메커니즘, 민감한 데이터 유출(Reflected/Non-blind SSRF의 경우)을 확인하는 자동화된 취약점 검증을 특징으로 합니다.
블라인드 SSRF 탐지를 위해, Webhook.site(기본값) 또는 사용자 제공 도메인을 사용하는 통합된 OOB(Out-of-Band) 탐지를 통해 서버가 직접 응답을 반환하지 않는 취약점을 식별합니다.

git clone https://github.com/In3tinct/See-SURF.git
cd See-SURF/
pip3 install -r requirements.txt
python3 see-surf.py -H https://www.target.com
# Google Gemini 사용
python3 see-surf.py -H http://vulnerable-site.com -p google -m gemini-1.5-flash --api-key YOUR_KEY
# OpenAI GPT-4 사용
python3 see-surf.py -H http://vulnerable-site.com -p openai -m gpt-4 -a YOUR_KEY
# 로컬 Ollama 사용
python3 see-surf.py -H http://vulnerable-site.com -p ollama -m llama3
python3 see-surf.py -H https://www.target.com -c "cookie_name1=value1 cookie_name2=value2"
python3 see-surf.py -H https://www.google.com -c cookie_name1=value1 cookie_name2=value2 -b burp_file.xml
-H 스캔할 호스트 이름/IP 주소
-c 인증 스캔을 위한 쿠키, 공백으로 구분 (일부 웹사이트는 세션 추적을 위해 여러 쿠키를 사용합니다)
-p AI 제공자: ollama (로컬 추론), gemini, OpenAI chatgpt, Anthropic claude
-m 특정 모델 이름 (예: gemini-1.5-flash, gpt-4o, llama3).
-a 선택한 제공자의 API 키 (API_KEY 환경 변수로도 설정 가능).
-e 블라인드 SSRF OOBE 요청 테스트를 위한 사용자 지정 외부 도메인 (http://google.com 형식). 그렇지 않으면 기본적으로 webhook.site가 사용됩니다.
-b (선택 사항이지만 권장) burpsuite 사이트 맵을 사용하여 요청을 스파이더링하고, 사이트 맵 파일을 내보낸 후 see-surf에 입력으로 제공합니다 (자세한 기능은 방법 참조).
-v (선택 사항) 기본적으로 일반 모드가 켜져 있으며, 자세한 스위치를 사용하면 동일한 취약한 파라미터가 다른 엔드포인트에서 나타나는 것을 볼 수 있습니다. 동일한 파라미터가 모든 곳에서 검증되지 않을 수 있습니다. 그러나 자세한 모드는 많은 노이즈를 생성합니다.
[-] -b 스위치 Burp의 사이트 맵은 수집된 URL과 같이 대상 애플리케이션을 탐색하면서 Burp가 수집한 정보를 보여줍니다. 잠재적인 SSRF 파라미터를 더 잘 발견하기 위해 Burp 사이트맵 파일을 제공하세요. 스크립트는 먼저 Burp 파일을 파싱하여 잠재적인 파라미터를 식별한 다음 내장 크롤러를 실행합니다.
백그라운드에서 Burp Suite를 실행하면서 대상을 탐색하고, 가능한 많이 GET/POST 요청을 보내세요. 그런 다음 Target으로 이동하여 오른쪽 클릭 -> "Save selected Items"를 선택하고 저장합니다. 다음과 같이 스크립트에 제공합니다.

발견: 스크립트는 대상에서 <a> 링크와 <form> 입력을 크롤링하거나 Burp 사이트맵 파일을 파싱합니다.
파라미터 매칭: 파라미터 이름(예: url, redirect, dest) 또는 값의 URL 패턴에서 키워드를 찾습니다.
카나리 프로빙 (Non-Blind): 먼저 http://example.com을 가져오려고 시도합니다. 응답에서 "Example Domain" 시그니처가 발견되면 잠재적인 Reflected/Non-Blind SSRF를 제기합니다.
AI 핑거프린팅 및 익스플로잇 (Non-Blind): AI가 활성화된 경우 서버 헤더 및 기술 스택을 분석하고 특정 내부 페이로드(AWS 등)를 생성합니다.
검증 (Non-Blind): AI가 공격 응답 결과를 검토하여 반환된 데이터가 실제로 민감하거나 내부 정보인지 확인하여 오탐을 줄입니다.
OOBE 프로빙 (Blind): 각 잠재적 파라미터에 대해 고유한 Webhook.site 페이로드를 생성합니다. 그런 다음 Webhook API를 폴링하여 대상 서버가 외부 요청을 했는지 확인합니다.
사전 상호 동의 하에 See-SURF를 사용하여 대상을 스캔하십시오. 최종 사용자의 책임이며, 개발자는 어떠한 책임도 지지 않으며 이 프로그램으로 인한 오용이나 손해에 대해 책임을 지지 않습니다. 교육 목적으로만 또는 테스트할 명시적 권한이 있는 도메인에서만 이 도구를 사용하십시오. 사용에 따른 위험은 사용자 본인에게 있습니다.
GNUV3 © [In3tinct]