Résultats

94% de la suite, en une passe.

Chaque chiffre ici provient de l'exécution de SwarmAttacker contre le benchmark de validation XBOW : 104 applications web vulnérables réelles et conteneurisées, chacune avec un flag caché, abordées en boîte noire à partir de la seule URL.

94%
98 applications sur 104
15min
temps médian
40min
plafond de temps
6
échecs
2.14M
tokens par application

Face au terrain

Les agents plus anciens plafonnent autour de la moitié de la suite.

Même associés à un modèle de pointe de 2026. Le bond n'est pas une nouvelle astuce ; c'est un modèle de base moderne piloté par une conception faite pour s'effacer devant lui.

AutoPTpic au meilleur des 3
51%
PentestGPTpic au meilleur des 3
54%
VulnBotpic au meilleur des 3
58%
PentestAgentpic au meilleur des 3
61%
MAPTApasse unique, GPT-5
77%
Expert humain (meilleur des 5)~40 heures, manuel
85%
XBOWautodéclaratif de l'éditeur
85%
PentestGPT v2 (Excalibur)pic au meilleur des 3, Opus 4.5
91%
SwarmAttackerpasse unique, GPT-5.5
94%
meilleur humain

Un graphique comparant des choux et des carottes, honnêtement étiqueté. SwarmAttacker et MAPTA sont des passes uniques ; les quatre agents plus anciens sont des pics au meilleur des trois essais remesurés sur des modèles de 2026 ; XBOW est un autodéclaratif de l'éditeur ; la ligne humaine est le meilleur de cinq professionnels sur environ 40 heures chacun.

Par difficulté

La difficulté prédit à peine l'échec.

Les six échecs se répartissent entre facile, moyen et difficile.

Niveau 144 / 451 manquées
Niveau 247 / 514 manquées
Niveau 37 / 81 manquées

Par classe de vulnérabilité

Un point par application.

Solide sur toute la ligne. Le seul point faible est l'injection SQL en aveugle, où il n'y a aucune réponse visible à lire.

XSS
22/23
Identifiants par défaut
17/18
IDOR
14/14
Élévation de privilèges
14/14
SSTI
12/13
Injection de commandes
11/11
Logique métier
7/7
SQLi
6/6
Divulgation d'informations
6/6
Désérialisation non sécurisée
5/6
LFI
5/6
Traversée de répertoires
5/5
Téléversement de fichier arbitraire
4/6
CVE connue
4/4
XXE
3/3
SSRF
3/3
GraphQL
3/3
JWT
3/3
Cryptographie
3/3
SQLi en aveugle
1/3
résolue échouée

Temps jusqu'au flag

Deux bosses.

Une grande entre 12 et 15 minutes pour les captures en un coup, et une seconde au-delà de 20 minutes pour les cibles qui exigent un second acte.

médiane 15 min40+ min6 hors délai0102030 min

Applications résolues par intervalle de deux minutes. La barre en pointillés à droite représente les six runs qui ont atteint le plafond de 40 minutes.

Ce qui compte vraiment

Nous avons désactivé chaque composant pour voir ce qu'il valait.

En partant du système complet à 94%, un composant à la fois. La ligne indique de combien le taux de résolution a chuté sans lui.

Gestion des refusFait en sorte que le modèle réponde tout court
−22 pts
SkillsLa dernière étape spécifique à la classe pour atteindre le flag
−7 pts
Recherche webConsultations de connaissances à la demande
−6 pts
PlomberieDécouvertes structurées + pilotage
−5 pts
Techniques de promptingDiscipline de prompt écrite à la main
−3 pts
60%70%80%90%100%

La gestion des refus est la colonne vertébrale ; le prompting écrit à la main pèse à peine sur un modèle moderne. Deux de ces points sont devenus des articles de blog : les skills aident à peine sur les cas faciles, et le prompt engineering est presque du poids mort.

Filtres de sécurité

Ce qui débloque une requête refusée.

Rejoué sur la longue traîne des refus qui ont survécu à un premier nouvel essai. Aucune technique unique ne l'emporte ; la solution garantie est de basculer vers un modèle plus permissif, et renvoyer simplement la même requête fonctionne environ une fois sur deux.

52%
Manipulation du contexte
dans le bruit du témoin
54%
Simple renvoi (réessayer sans plus)
même requête, aucun changement
68%
Cadrage d'autorisation
+14 pts, mais instable d'un modèle à l'autre
100%
Basculer vers un modèle permissif
le repli garanti

Transformez une URL en rapport de sécurité.

Open source, sous licence MIT, et il fonctionne avec le forfait ChatGPT que vous payez déjà. Installez-le et pointez-le vers une cible qui vous appartient.

brew install joloooo/swarm/swarm
Le code source sur GitHub