
Outil de sécurité pour trouver des paramètres potentiellement vulnérables de Server Side Request Forgery (SSRF).
Scanner de sécurité (désormais alimenté par l'IA 🤖) pour trouver des paramètres potentiels de falsification de requête côté serveur (Server Side Request Forgery - SSRF) dans votre application web. See-SURF vous aide non seulement à détecter les paramètres SSRF potentiels, mais aussi à les valider, protégeant ainsi votre application contre la compromission des données système et utilisateur.

Veuillez citer ce logiciel si vous l'utilisez dans vos articles de recherche, publications, etc.
@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}
}
Reconnaissance automatisée : Robot d'exploration multi-threadé qui collecte et analyse les données pour identifier les paramètres SSRF potentiels à l'aide d'une correspondance regex robuste (par exemple, mots-clés comme url, website ou adresses IP). Prend en charge l'authentification basée sur les cookies pour scanner les points d'accès derrière les pages de connexion.
Intégration Burp Suite : Analyse de manière transparente les plans de site Burp Suite (.xml) pour découvrir une gamme plus large de paramètres avant l'exploration.
Validation et exploitation : La nouvelle intégration IA propose une détection pilotée par l'IA via des fournisseurs comme Google Gemini et OpenAI en analysant les en-têtes de réponse et en générant des charges utiles personnalisées, un mécanisme de pivot intelligent pour cibler les services internes comme les métadonnées AWS, et une validation automatisée des vulnérabilités pour confirmer la fuite de données sensibles (pour SSRF réfléchi / non aveugle).
Pour la détection SSRF aveugle : Détection intégrée hors bande (OOB) utilisant Webhook.site (par défaut) ou un domaine fourni par l'utilisateur pour identifier les vulnérabilités où le serveur ne renvoie pas de réponse directe.

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
# Using Google Gemini
python3 see-surf.py -H http://vulnerable-site.com -p google -m gemini-1.5-flash --api-key YOUR_KEY
# Using OpenAI GPT-4
python3 see-surf.py -H http://vulnerable-site.com -p openai -m gpt-4 -a YOUR_KEY
# Using local 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 Nom d'hôte / adresse IP à scanner
-c Cookies pour le scan authentifié, séparés par des espaces (Certains sites web utilisent plusieurs cookies pour le suivi de session)
-p Fournisseur IA : ollama (pour inférence locale), gemini, OpenAI chatgpt, Anthropic claude
-m Nom du modèle spécifique (ex. gemini-1.5-flash, gpt-4o, llama3).
-a Clé API pour le fournisseur sélectionné (peut également être définie comme variable d'environnement API_KEY).
-e Pour tester la requête OOBE SSRF aveugle avec votre domaine externe personnalisé au format http://google.com, sinon webhook.site sera utilisé par défaut.
-b (Optionnel mais recommandé) - Spider la requête en utilisant le plan de site Burp Suite, exporter le fichier du plan de site et le donner à see-surf en entrée (voir fonctionnalités détaillées pour savoir comment faire).
-v (Optionnel) Par défaut, le mode normal est activé. Avec l'interrupteur verbeux, vous verrez le même paramètre vulnérable dans différents points d'accès. Le même paramètre peut ne pas être assaini partout. Mais le mode verbeux génère beaucoup de bruit.
[-] Interrupteur -b Le plan de site de Burp affiche les informations que Burp collecte lorsque vous explorez votre application cible, comme les URL collectées, etc. Fournissez les fichiers de plan de site Burp pour une meilleure découverte des paramètres SSRF potentiels. Le script analysera d'abord le fichier Burp pour identifier les paramètres potentiels, puis exécutera le robot d'exploration intégré dessus.
Naviguez sur la cible avec votre Burp Suite en arrière-plan, effectuez quelques requêtes GET/POST, plus il y en a, mieux c'est. Ensuite, allez dans Target, faites un clic droit -> "Save selected Items" et enregistrez. Fournissez cela au script comme suit.
)
Découverte : Le script explore la cible à la recherche de liens <a> et d'entrées <form>, ou analyse un fichier de plan de site Burp.
Correspondance de paramètres : Il recherche des mots-clés dans les noms de paramètres (ex. url, redirect, dest) ou des motifs d'URL dans les valeurs.
Sondage canari (Non aveugle) : Il tente d'abord de récupérer http://example.com. Si la signature "Example Domain" est trouvée dans la réponse, il signale un SSRF réfléchi/non aveugle potentiel.
Empreinte digitale et exploitation par IA (Non aveugle) : Si l'IA est activée, elle analyse les en-têtes du serveur et la pile technologique, puis génère des charges utiles internes spécifiques (AWS, etc.).
Validation (Non aveugle) : L'IA examine le résultat de la réponse d'attaque pour vérifier si les données retournées sont réellement sensibles ou internes, réduisant ainsi les faux positifs.
Sondage OOBE (Aveugle) : Pour chaque paramètre potentiel, il génère une charge utile Webhook.site unique. Il interroge ensuite l'API Webhook pour confirmer si le serveur cible a effectué une requête externe.
Utilisez See-SURF pour scanner des cibles avec un consentement mutuel préalable. Il est de la responsabilité de l'utilisateur final et le développeur décline toute responsabilité et n'est pas responsable de toute utilisation abusive ou de tout dommage causé par ce programme. Utilisez cet outil uniquement à des fins éducatives ou sur des domaines pour lesquels vous avez une autorisation explicite de tester. Utilisez-le à vos propres risques.
GNUV3 © [In3tinct]