
Outil de pentesting de chat-box IA en C : envoie des charges utiles d'injection de langage (SQLi/NoSQL/XSS/SSTI) et de prompt injection aux interfaces de chat et signale celles qui font mouche
thc-BloodMiamiOutil de pentesting de chat-box IA, écrit en C. Envoie des charges utiles d'injection de langage (SQL/NoSQL/XSS/SSTI) et de prompt vers une interface de chat et signale celles qui mordent — chaînes d'erreur DB, marqueurs de script reflétés, signaux de jailbreak du modèle. Rapide, multithreadé, basé sur libcurl.
Ce qu'il faitInjection de langage (-i L) — sondes d'injection SQLi, NoSQL, XSS, JS ; compare la réponse aux listes d'erreurs/signatures (mysql_fetch_array, ORA-01756, <script>, onerror=, ...)Injection de prompt (-i P) — sondes de jailbreak/contournement de prompt ; classe les détections en Low (confusion du modèle), Medium (contournement possible), Critical (signal de jailbreak)Émetteur multithreadé — concurrence réglable (-c, par défaut 10)En-têtes personnalisés, user-agent, timeouts, mode verbose, résultats vers fichier (-o)wordlist/language.txt, wordlist/prompt.txtCompilationgit clone https://github.com/foxcornlab/thc-BloodMiami.git
cd thc-BloodMiami
# deps: gcc, make, libcurl dev headers
sudo apt install libcurl4-openssl-dev # debian/ubuntu
make
Utilisation# language injection scan
./build/bloodmiami -t https://example.com/chat -i L -d wordlist/language.txt
# prompt injection scan, verbose, results to file
./build/bloodmiami -t https://example.com/chat -i P -d wordlist/prompt.txt -v -o results.txt
# 20 threads, 10s timeout, custom header
./build/bloodmiami -t https://example.com/chat -i L -d wordlist/language.txt -c 20 -T 10 \
-H "Authorization: Bearer <token>"
Usage: bloodmiami [OPTIONS]
Required:
-t, --target URL Target chat interface URL
-i, --injection TYPE Injection type: L (language) or P (prompt)
-d, --dictionary FILE Dictionary file with payloads
Optional:
-v, --verbose Enable verbose output
-T, --timeout SEC Request timeout in seconds (default: 5)
-U, --user-agent STR Custom User-Agent string
-H, --header STR Add custom HTTP header
-c, --concurrency NUM Concurrent requests (default: 10)
-o, --output FILE Save results to file
-h, --help Show help
-V, --version Show version
Comment ça fonctionneChaque ligne du dictionnaire devient un POST (Content-Type: application/json) avec la charge utile intégrée dans un corps JSON de style chat. Le corps de la réponse est analysé à la recherche de :
SQL — mysql_fetch_array, ORA-01756, Unclosed quotation mark, PostgreSQL query failed, ...NoSQL — MongoError, BSONObj, WriteResult, ...XSS — <script>, javascript:, onerror=, document.cookie, ...JS — SyntaxError, ReferenceError, eval(, ...HTTP 5xx — signalé comme une possible erreur serveur déclenchée par l'injectionLes charges utiles sont échappées en JSON avant intégration afin que les guillemets/barres obliques inverses du dictionnaire ne puissent pas corrompre le corps de la requête. La vérification TLS est volontairement désactivée (CURLOPT_SSL_VERIFYPEER=0) — c'est un outil de test, gardez-le sur des cibles de laboratoire/autorisées.
Dictionnaires de charges utileswordlist/language.txt — SQLi (UNION, basé sur les erreurs, basé sur le temps), opérateurs NoSQL, vecteurs XSS, sondes SSTIwordlist/prompt.txt — tentatives de jailbreak, contournements par jeu de rôle, sondes d'extraction de prompt système, marqueurs d'injection indirecteAjoutez les vôtres : une charge utile par ligne, # pour les commentaires. Les charges utiles atteignent la cible telles quelles, donc ne pointez ceci que vers des systèmes que vous êtes autorisé à tester.
AvertissementPour les tests de sécurité et la recherche autorisés uniquement. Vous êtes responsable d'obtenir l'autorisation avant de pointer ceci vers quoi que ce soit que vous ne possédez pas.
RemerciementsLa communauté de sécurité open-source — idées de charges utiles et listes de signatureslibcurl — qui fait tout le gros du travail HTTPRecherche par
Vineeth Kumar(foxcornlab). Vous avez trouvé un bug ou vous voulez une fonctionnalité, ouvrez uneissue.