
أداة اختبار اختراق لصناديق محادثة الذكاء الاصطناعي مكتوبة بلغة C: تطلق حمولات حقن اللغة (SQLi/NoSQL/XSS/SSTI) وحقن الأوامر النصية على واجهات المحادثة وتحدد تلك التي تنجح
thc-BloodMiamiأداة اختبار اختراق لصناديق محادثة AI، مكتوبة بلغة C. تُطلق حِمول حقن اللغة (SQL/NoSQL/XSS/SSTI) وحقن التوجيهات (prompt) على واجهة محادثة وتُعلِّم على تلك التي تنجح — سلاسل أخطاء DB، وعلامات السكربت المنعكسة، وإشارات كسر حماية النموذج. سريعة، متعددة الخيوط، مبنية على libcurl.
ما الذي تفعلهحقن اللغة (-i L) — فحوصات حقن SQLi وNoSQL وXSS وJS؛ تُطابق الاستجابة مع قوائم الأخطاء/التوقيعات (mysql_fetch_array، ORA-01756، <script>، onerror=، ...)حقن التوجيهات (-i P) — فحوصات كسر الحماية/تجاوز التوجيهات؛ تُصنِّف الإصابات كـ Low (ارتباك النموذج)، Medium (تجاوز محتمل)، Critical (إشارة كسر حماية)مُرسِل متعدد الخيوط — تزامن قابل للضبط (-c، الافتراضي 10)ترويسات مخصصة، user-agent، مُهَل زمنية، وضع verbose، وحفظ النتائج في ملف (-o)wordlist/language.txt، wordlist/prompt.txtالبناءgit 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
الاستخدام# 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
كيف تعمليتحوَّل كل سطر في القاموس إلى طلب POST واحد (Content-Type: application/json) مع تضمين الحِمولة في جسم JSON بأسلوب المحادثة. يُفحَص جسم الاستجابة بحثًا عن:
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 — تُعلَّم كخطأ خادم محتمل ناتج عن الحقنتُهرَّب الحِمولات بصيغة JSON قبل تضمينها حتى لا تُفسِد علامات الاقتباس/الشرطات المائلة العكسية في القاموس جسم الطلب. التحقق من TLS مُعطَّل عمدًا (CURLOPT_SSL_VERIFYPEER=0) — هذه أداة اختبار، أبقِها على أهداف المختبر/الأهداف المصرَّح بها.
قواميس الحِمولاتwordlist/language.txt — SQLi (UNION، قائم على الأخطاء، قائم على الوقت)، عوامل NoSQL، متجهات XSS، فحوصات SSTIwordlist/prompt.txt — محاولات كسر الحماية، تجاوزات لعب الأدوار، فحوصات استخراج توجيه النظام، علامات الحقن غير المباشرأضِف حِمولاتك الخاصة: حِمولة واحدة لكل سطر، و# للتعليقات. تصل الحِمولات إلى الهدف كما هي، لذا وجِّه هذا فقط نحو الأنظمة المسموح لك باختبارها.
إخلاء المسؤوليةلاختبارات الأمان والبحث المصرَّح بهما فقط. أنت مسؤول عن الحصول على الإذن قبل توجيه هذا نحو أي شيء لا تملكه.
شكرًا لـمجتمع الأمان مفتوح المصدر — أفكار الحِمولات وقوائم التوقيعاتlibcurl — القيام بكل الأعمال الشاقة لـ HTTPبحث بواسطة
Vineeth Kumar(foxcornlab). وجدت خطأً أو تريد ميزة، افتحissue.