Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-59712_CVE-2025-59713 — Exploit PoC pour Snipe-IT CVE-2025-59712 et CVE-2025-59713 | Kitploit
Outils/GitHubGitHub/synacktiv/cve-2025-59712_cve-2025-59713
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionRed TeamingDéveloppement de Charges Utiles
GitHubsynacktiv/cve-2025-59712_cve-2025-59713

CVE-2025-59712_CVE-2025-59713

Exploit PoC pour Snipe-IT CVE-2025-59712 et CVE-2025-59713

Voir le dépôt
2351il y a 1 anPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

PoC pour CVE-2025-59712 et CVE-2025-59713

Ce PoC fournit un script automatisé pour exploiter CVE-2025-59712 (XSS dans l'en-tête User-Agent) et CVE-2025-59713 (désérialisation non sécurisée).

Contexte

Ces deux vulnérabilités ont été découvertes par Synacktiv lors de travaux de recherche en sécurité sur le logiciel Snipe-IT. Snipe-IT est un système open-source de gestion des actifs basé sur Laravel, conçu pour aider les organisations à suivre et gérer leurs actifs physiques et numériques.

Une analyse technique est disponible dans l'avis de sécurité dédié sur le site de Synacktiv.

Modes

Ce script fournit trois sous-commandes, correspondant aux modes d'exploitation : xss, rce et fullchain.

XSS

Cette sous-commande exploite CVE-2025-59712, qui permet à un utilisateur à faibles privilèges d'injecter du JavaScript arbitraire dans la page HTML rendue lors de l'appel à la route /reports/activity. Cette action ne peut être effectuée que par un administrateur, ou un utilisateur disposant des droits de visualisation explicites pour les rapports. L'injection est possible en raison d'un assainissement incorrect du champ User-Agent lorsqu'un utilisateur met à jour ses informations de profil.

Pour ce faire, il se connecte d'abord en tant qu'utilisateur à faibles privilèges, puis injecte le code JavaScript défini dans le fichier fourni via l'option --javascript.

$ python3 exploit.py xss --help

 Usage: exploit.py xss [OPTIONS]

 Execute XSS attack only with custom JavaScript payload

╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *  --url         -u       TEXT                    Target Snipe-IT URL [required]                                                                                                             │
│ *  --login       -l       TEXT                    Low-privileged username [required]                                                                                                         │
│ *  --password    -p       TEXT                    Low-privileged password [required]                                                                                                         │
│ *  --new-name    -n       TEXT                    New name for low-privileged user [required]                                                                                                │
│ *  --javascript  -js      TEXT                    Path to custom JavaScript file [required]                                                                                                  │
│    --proxy       -x       TEXT                    HTTP proxy (http://ip:port)                                                                                                                │
│    --verbose     -v       [quiet|normal|verbose]  Logging verbosity [default: normal]                                                                                                        │
│    --help                                         Show this message and exit.                                                                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

[!IMPORTANT]
Au cours de la recherche en sécurité, les tests ont été effectués sur une version de Snipe-IT qui affichait, par défaut, le champ User-Agent dans lequel le JavaScript malveillant est injecté. Depuis le commit 10e5d88, la propriété User-Agent n'est plus affichée par défaut lors du rendu de la table des journaux d'actions. L'administrateur qui déclenchera le XSS doit donc avoir coché la case User-Agent dans les options d'affichage pour les versions de Snipe-IT postérieures à ce commit.

RCE

Cette sous-commande exploite CVE-2025-59713, qui permet une exécution de code à distance lorsque les identifiants d'un administrateur ou super-administrateur sont connus. Pour ce faire, les étapes suivantes sont effectuées :

  1. Une sauvegarde de l'instance Snipe-IT est déclenchée.
  2. La sauvegarde générée est téléchargée, modifiée en mémoire puis renvoyée sur Snipe-IT. La modification de la sauvegarde inclut des instructions SQL supplémentaires dans le fichier db-dumps/mysql-snipeit.sql, qui créent un nouveau champ personnalisé et modifient le dernier journal d'action avec un objet JSON contenant la pop chain Laravel lors de la restauration.

[!TIP] Par défaut, Snipe-IT inclut le fichier .env dans la sauvegarde. Si le script le détecte, la valeur de APP_KEY est affichée et le fichier .env est enregistré dans le répertoire ./output (un emplacement personnalisé pour ce fichier peut être spécifié avec --output-dir).

  1. Une restauration depuis la sauvegarde modifiée est déclenchée, ce qui exécutera les instructions SQL ajoutées.

[!CAUTION] Restaurer une sauvegarde déconnecte tous les utilisateurs connectés à l'instance.

  1. Une fois la restauration terminée, la route /api/v1/reports/activity est appelée, ce qui déclenche la désérialisation et exécute la pop chain Laravel.
$ python3 exploit.py rce --help

 Usage: exploit.py rce [OPTIONS]

 Execute RCE attack only (requires existing admin account)

╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *  --url         -u       TEXT                    Target Snipe-IT URL [required]                                                                                                             │
│ *  --admin-user  -au      TEXT                    Admin username [required]                                                                                                                  │
│ *  --admin-pass  -ap      TEXT                    Admin password [required]                                                                                                                  │
│    --output-dir  -od      PATH                    Output dir for .env file [default: /home/ninja/Téléchargements/snipe-it-advisory/exploit/output]                                           │
│    --shell-ip    -si      TEXT                    Reverse shell IP address                                                                                                                   │
│    --shell-port  -sp      INTEGER                 Reverse shell port                                                                                                                         │
│    --command     -c       TEXT                    Custom command (overrides reverse shell)                                                                                                   │
│    --proxy       -x       TEXT                    HTTP proxy (http://ip:port)                                                                                                                │
│    --verbose     -v       [quiet|normal|verbose]  Logging verbosity [default: normal]                                                                                                        │
│    --help                                         Show this message and exit.                                                                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Fullchain

Télécharger l’outil