Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Payload-and-Polyglot-Lists — GromHacks Labs -- قوائم الحمولة التي لا يريدونك أن تمتلكها. 1,324 مسبار حقن تم إرسالها من السفينة الأم لاكتشاف ما يمكن حقنه عبر 20 فئة من الثغرات. نحن لا نستغل، بل نطرق الباب ونرى من يرد. تم اختبار كل حمولة ضد محللات حقيقية لأن الكائنات الفضائية تطلب دليلاً. لا تثق بأي مدخل. شكك في كل شيء! | Kitploit
أدوات/GitHubGitHub/gromhacks/payload-and-polyglot-lists
الاستخبارات مفتوحة المصدر (OSINT)توليد الحمولةتحليل الثغرات الأمنيةاستغلال تطبيقات الويبالاختبار العشوائياختبار الاختراقالتعلم والتعليم
GitHubgromhacks/payload-and-polyglot-lists

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →

حول

GromHacks Labs -- قوائم الحمولة التي لا يريدونك أن تمتلكها. 1,324 مسبار حقن تم إرسالها من السفينة الأم لاكتشاف ما يمكن حقنه عبر 20 فئة من الثغرات. نحن لا نستغل، بل نطرق الباب ونرى من يرد. تم اختبار كل حمولة ضد محللات حقيقية لأن الكائنات الفضائية تطلب دليلاً. لا تثق بأي مدخل. شكك في كل شيء!

Payload-and-Polyglot-Lists

عرض المستودع
369منذ 4 أشهرتمت المراجعة من قبل Kitploit
مشاركة

قوائم الحمولات والبوليجلوت

وجدت حمولة لا تعمل؟ يرجى فتح مشكلة مع الحمولة، والسياق المستهدف، وما كنت تتوقع حدوثه. طلبات السحب مع الإصلاحات أو الحمولات الجديدة مرحب بها دائمًا.

البحث جارٍ. هذا المشروع قيد التطوير النشط وسيتم تحديثه بانتظام بحمولات جديدة، وفئات ثغرات، وتحسينات في التحقق.

إخلاء مسؤولية: هذه الحمولات مقدمة لأغراض اختبار الأمان المصرح به، والتعليم، والبحث فقط. لا يتحمل المؤلفون أي مسؤولية عن أي إساءة استخدام أو آثار لاحقة. استخدم على مسؤوليتك الخاصة بالكامل. باستخدام هذا المشروع، فإنك تقبل المسؤولية الكاملة عن أفعالك.

الترخيص: MIT - انظر LICENSE

1,353 حمولة حقن تم التحقق منها تغطي 20 فئة من الثغرات، 31 إطار عمل لإزالة التسلسل، و14 محرك قوالب. كل حمولة تنتج إشارة قابلة للكشف. صفر حمولات نظرية.

التحقق: 1,353 تم اختبارها / 1,353 تشتعل / 0 فشل / 0 تم تخطيها مقابل 35 بيئة اختبارية Docker. التحقق الصارم يثبت الاستغلال الفعلي (حساب من جانب الخادم، أخطاء محلل حقيقية، تأخيرات زمنية مقاسة، استدعاءات خارج النطاق من حاويات الهدف) - وليس مطابقة سلاسل.


المفهوم

المشكلة مع قوائم الحمولات التقليدية

معظم قوائم الحمولات المتاحة للجمهور منظمة حسب نوع الثغرة: قائمة لحقن SQL، وأخرى لـ XSS، وأخرى لحقن الأوامر، وهكذا. يختار المختبر القائمة التي يعتقد أنها تطابق الهدف، ويحملها في أداة الاختراق، ويشغلها ضد معامل. إذا أخطأ في تخمين فئة الثغرة، فإن الفحص بأكمله لا ينتج شيئًا. إذا كان الخادم الخلفي قاعدة بيانات غير شائعة، أو محرك قوالب غير قياسي، أو لغة لم تأخذ القائمة في الاعتبار، فإن الحمولات تفشل بصمت. ينتقل المختبر معتقدًا أن المعامل نظيف.

هذا النهج يعاني من مشكلتين أساسيتين. أولاً، يتطلب من المختبر معرفة الثغرة الموجودة قبل أن يجدها. ثانيًا، معظم الحمولات المتداولة نظرية - منسوخة بين المشاريع ومنشورات المدونات دون أن يتم اختبارها مطلقًا ضد محلل حقيقي. تبدو صحيحة. قد تكون صحيحة نحويًا. لكنها في الواقع لا تؤدي إلى استجابة قابلة للكشف من الهدف.

البوليجلوت أولاً، الإشارة مضمونة

هذا المشروع يتبع نهجًا مختلفًا. الوحدة الأساسية للعمل هي البوليجلوت - سلسلة حمولة واحدة مصممة لتكون صحيحة (أو غير صحيحة بشكل ذي معنى) عبر العديد من سياقات الحقن في وقت واحد. بوليجلوت واحد يخرج من علامات الاقتباس المفردة، والاقتباس المزدوج، والأقواس، والتعليقات المحظورة، وسمات HTML، ومحددات القوالب، وسياقات backtick في نفس الوقت. بدلاً من الحاجة إلى معرفة ماهية الثغرة، يطلق المختبر البوليجلوتات على كل معامل ويراقب الإشارات.

كل حمولة في هذه المجموعة مبنية حول أعمدة الكشف - استجابات قابلة للملاحظة تؤكد وجود ثغرة دون الحاجة إلى الوصول إلى سجلات الخادم، أو الكود المصدري، أو نظام الملفات:

  • خطأ: تتسبب الحمولة في طرح استثناء، أو خطأ محلل، أو تتبع مكدس مرئي في الاستجابة.
  • رياضيات: تتضمن الحمولة تعبيرًا حسابيًا مثل 7*191 الذي يُقيّم إلى 1337. إذا ظهر هذا الرقم في الاستجابة وأرسلت الحمولة 7*191 فقط (وليس 1337 حرفيًا)، فهذا يعني أن الخادم الخلفي قام بحساب التعبير - دليل على تنفيذ الكود.
  • توقيت: تجبر الحمولة على تأخير (5 ثوانٍ أو أكثر). إذا كانت الاستجابة بطيئة، فهذا يعني أن الخادم الخلفي نفذ أمر نوم أو عملية كثيفة على وحدة المعالجة المركزية.
  • خارج النطاق (OOB): تجبر الحمولة الخادم الخلفي على إنشاء اتصال HTTP أو DNS أو LDAP أو TCP خارجي بخادم استدعاء يتحكم فيه المختبر. تؤكد التنفيذ حتى عندما تكون الاستجابة معتمة تمامًا.

إذا لم تنتج الحمولة إشارة واحدة على الأقل من هذه الإشارات عند اختبارها مقابل سياقها المستهدف، فهي لا تنتمي إلى القائمة. كل واحدة من الحمولات البالغ عددها 1,353 هنا تم التحقق منها مقابل بيئات اختبارية Docker مصممة خصيصًا مع إثبات صارم للاستغلال. صفر نظرية.

الدوال المضمنة بدلاً من أوامر الشل

تعتمد حمولات OOB والتوقيت التقليدية على أوامر الشل: curl، nslookup، ping، sleep. هذه تنكسر باستمرار. تعتمد على نظام تشغيل الهدف، و PATH المتاح، وأي شل يفسر الأمر، وما إذا كانت العملية لديها إذن لإطلاق عمليات فرعية. حمولة OOB مبنية على curl تعمل على Ubuntu تفشل على Alpine (لا يوجد curl)، تفشل على Windows (لا يوجد curl)، وتفشل داخل حاوية مقيدة (لا تنفيذ عملية خارجية).

يستبدل هذا المشروع أوامر الشل بالدوال المضمنة في اللغة كلما أمكن. تستخدم حمولات Python urllib.request.urlopen() و time.sleep(). تستخدم حمولات Java java.net.URL.openStream() و Thread.sleep(). تستخدم Ruby Net::HTTP.get() و Kernel.sleep. تستخدم PHP file_get_contents() و sleep(). هذه الدوال موجودة في كل تثبيت قياسي للغتها الخاصة - لا بحث في PATH، ولا عملية فرعية، ولا اعتماد على نظام التشغيل.

حيثما قد يتم حظر استيراد المكتبات القياسية (eval في صندوق حماية، exec مقيد)، تلجأ الحمولات إلى بدائل خالية من الاستيراد: حلقات CPU للتوقيت (sum(range(500000000)) في Python، Atomics.wait() في Node) واتصالات socket خام لـ OOB (__import__('socket').create_connection()، fsockopen()، TCPSocket.new()).

حيث لا تصل البوليجلوتات

ليس كل شيء يمكن أن يكون بوليجلوت. محركات القوالب تستخدم صياغات غير متوافقة بشكل أساسي - {{}} في Jinja2 لا يعني شيئًا لـ ERB <%= %>، ولا يتحلل أي منهما كـ ${} في Freemarker). تنسيقات إزالة التسلسل إما ثنائية أو بيانات منظمة خاصة بإطار واحد. لهذه الفئات، يستخدم المشروع حمولات خاصة بكل محرك منظمة تحت نظام أعمدة الكشف نفسه، تغطي 14 محرك قوالب و 31 إطار عمل لإزالة التسلسل عبر 7 لغات.

النتيجة هي مجموعة واحدة حيث تتعامل البوليجلوتات مع السياقات التي تستطيع (حقن SQL، حقن أوامر نظام التشغيل، XSS، حقن الكود) وتتعامل الحمولات المصممة خصيصًا لكل محرك مع الباقي، كلها تم التحقق منها، وتنتج إشارات قابلة للكشف، وجاهزة لأدوات الحقن سطرًا بسطر.


القائمة الدنيا (82 حمولة)

83 حمولة تغطي جميع بيئات الاختبار الـ35، وجميع نقاط النهاية الـ55+، وجميع أعمدة الكشف الأربعة لكل فئة. تم التحقق: 83 تشتعل / 0 لا تشتعل / 0 تم تخطيها.

كل فئة حقن تحصل على تغطية خطأ + رياضيات + توقيت + خارج النطاق حيثما كان ذلك ممكنًا من الناحية المعمارية. أطر إزالة التسلسل التي تدعم تنفيذ الكود (Pickle، PyYAML، jsonpickle، node-serialize، XMLDecoder، .NET Json.NET) تحصل على تغطية كاملة متعددة الأعمدة. الأطر المقتصرة على الاستكشاف (PHP unserialize، Ruby Marshal، SnakeYAML، إلخ) تحصل على كشف يعتمد على الخطأ. أطلق هذه على كل معامل قبل التبديل إلى قوائم الفئات الكاملة للتعمق.

83 طلبًا بدلاً من 1,353. استخدم ready/minimal/payloads-only.txt لـ Burp Intruder.


اختيار الحمولة المناسبة لهدف

انظر HOWTOUSE.md للحصول على دليل المشغل الكامل. يحول "أنا أنظر إلى معامل، ماذا أرمي عليه؟" إلى سير عمل قابل للتكرار:

  1. توصيف المعامل والسياق - 5 أسئلة (شكل القيمة، بصمة المكدس، رؤية الاستجابة، توفر OOB، جدار الحماية) تقوم باستبعاد الفئات قبل أن تطلق حمولة واحدة.
  2. لكل فئة "متى تشك بها" - تلميحات شاملة وموجهة للإنتاج لجميع الفئات العشرين. كل فئة تسرد أنواع الميزات الحقيقية للبرامج كخدمة (منصات low-code، ذكاء الأعمال/التقارير، المراقبة، أتمتة سير العمل، SSO، جالبي SSRF، أحواض eval، منشئي قوالب البريد الإلكتروني، إلخ)، وإشارات بصرية وسلوكية (7*7 يعيد 49 كدليل على eval، {{name}} ينتج "Alice" يؤكد SSTI، تسرب إخراج ping من حقل تشخيصي، سلاسل وكيل المستخدم في سجلات OOB تسمي مكتبة الجالب)، وأخطاء ORM الحديثة في المكدس (Prisma $queryRaw، Rails .order()، Hibernate JPQL concat، Mongoose findOne(req.body))، ومسابير رخيصة لتأكيد الشك قبل حرق القائمة الكاملة.
  3. بصمات البايت التسلسلية الخطيرة - البايتات السحرية الخام وبادئات base64 لـ 31 إطارًا عبر Python، PHP، Java، .NET، Node، Ruby، و Perl (rO0AB = Java، AAEAAAD///// = .NET BinaryFormatter، BAg = Ruby Marshal، gASV = Python pickle P4، Tzo/ = PHP unserialize، إلخ) مع بطاقة مرجعية سريعة من 16 مدخلاً وعملية تمييز. اطبع بصمة الكتلة قبل الإطلاق لتحصل على 5-15 حمولة متطابقة بدلاً من 232 كلها.

استخدم HOWTOUSE.md قبل تشغيل payloadctl prepare. اطبع البصمة أولاً، القائمة الدنيا ثانيًا، التعمق في الفئة ثالثًا - وليس مدفعية من 1,353 حمولة على كل معامل.


بداية سريعة```bash

1. Prepare payloads with your callback domain

Replaces {domain} placeholder in all OOB payloads with your server

./tools/payloadctl prepare YOUR_CALLBACK.oastify.com

2. Load into Burp Intruder, ffuf, or any line-by-line injection tool

All output goes to ready/ (gitignored, contains your domain)

root@kitploit:~
بعد تشغيل `prepare`، ستكون ملفاتك الجاهزة للاستخدام في `ready/full/` و `ready/minimal/` مع بنية متطابقة:

| الملف | ما هو | العدد |
|------|------|-------|
| `ready/minimal/payloads-only.txt` | **الأدنى -- 83 طلبًا، جميع الركائز** | 83 |
| `ready/full/payloads-only.txt` | القائمة الكاملة، حمولة واحدة لكل سطر | 1,353 |
| `ready/full/by-category/sqli.txt` | حقن SQL فقط | 211 |
| `ready/full/by-category/ssti.txt` | حقن القوالب فقط | 206 |
| `ready/full/by-category/deserialization.txt` | إلغاء التسلسل فقط | 232 |
| `ready/full/by-category/os-cmd-injection.txt` | حقن أوامر نظام التشغيل فقط | 120 |
| `ready/full/by-category/code-injection.txt` | حقن الكود فقط | 123 |
| `ready/full/by-category/ssrf.txt` | SSRF فقط | 156 |
| `ready/full/by-category/path-traversal.txt` | اجتياز المسار فقط | 113 |
| `ready/full/by-category/xss.txt` | XSS فقط | 58 |
| `ready/full/by-category/nosql.txt` | حقن NoSQL فقط | 32 |
| `ready/full/by-category/format-string.txt` | سلسلة التنسيق فقط | 38 |
| `ready/full/by-category/el-injection.txt` | لغة التعبير فقط | 34 |
| `ready/full/by-category/header-crlf.txt` | حقن CRLF/الرأس فقط | 17 |
| `ready/full/by-category/prototype-pollution.txt` | تلوث النموذج الأولي فقط | 12 |
| `ready/full/by-category/xxe.txt` | XXE فقط | 11 |
| `ready/full/by-category/ldap-injection.txt` | حقن LDAP فقط | 35 |
| `ready/full/by-category/xslt-injection.txt` | حقن XSLT فقط | 30 |
| `ready/full/by-category/elasticsearch-injection.txt` | Elasticsearch فقط | 30 |
| `ready/full/by-category/cypher-injection.txt` | Neo4j/Cypher فقط | 27 |
| `ready/full/by-category/couchdb-injection.txt` | CouchDB فقط | 5 |
| `ready/full/by-category/polyglots.txt` | متعدد السياقات متعدد اللغات | 246 |
| `ready/full/by-pillar/error-payloads-only.txt` | حمولات قائمة على الأخطاء | 324 |
| `ready/full/by-pillar/timing-payloads-only.txt` | قائمة على التوقيت (أعمى) | 227 |
| `ready/full/by-pillar/oob-payloads-only.txt` | استدعاء خارج النطاق | 209 |
| `ready/full/by-pillar/math-payloads-only.txt` | كناري رياضي (1337) | 182 |
| `ready/full/by-pillar/reflected-payloads-only.txt` | منعكس/حالات حافة | 374 |
| `ready/full/encoded/url-encoded/payloads.txt` | بديل مشفر بعنوان URL | 1,353 |
| `ready/full/encoded/base64/payloads.txt` | بديل Base64 | 1,353 |
| `ready/full/encoded/json-safe/payloads.txt` | بديل آمن لـ JSON | 1,353 |
| `ready/full/encoded/double-url-encoded/payloads.txt` | مرتين مشفر بعنوان URL | 1,353 |
| `ready/full/encoded/html-entity/payloads.txt` | مشفر بكيان HTML | 1,353 |
| `ready/full/encoded/hex-escaped/payloads.txt` | بديل هروب ست عشري | 1,353 |
| `ready/full/encoded/unicode-escaped/payloads.txt` | بديل هروب يونيكود | 1,353 |

دليل `ready/minimal/` يعكس نفس البنية (حسب الفئة، حسب الركيزة، مشفر) مع مجموعة الحمولات الأدنى.

دليل الإخراج المخصص:```bash
./tools/payloadctl prepare YOUR_CALLBACK.oastify.com -o /path/to/engagement/payloads

القوالب الخام مع العنصر النائب {domain} (للتعويض البرمجي) موجودة في payloads/lists/full/ و payloads/lists/minimal/.


أركان الكشف

كل حمولة تنتج إشارة واحدة على الأقل من هذه الإشارات. ابحث عن هذه في استجاباتك:

قيم أساسية: 1337 (أساسية، من 7*191) و 7331 (ثانوية). الكشف هو grep بسيط.


تغطية الحمولات

حسب فئة الثغرة

13 من 20 فئة لديها جميع الأركان الأربعة. الـ 7 التي لا تملك (XSS، XSLT، سلسلة التنسيق، تلوث النموذج الأولي، CRLF، XXE، CouchDB) لها أسباب هيكلية -- لا يمكنك القيام بتوقيت CRLF أو تنسيق سلسلة خارج النطاق. حيثما يكون عبر الأركان ممكنًا، يغطيها قسم polyglots.

المتغيرات المشفرة

7 صيغ ترميز، كل منها مع جميع الحمولات البالغ عددها 1,353:


مبادئ التصميم

الحد الأدنى من الحمولات، أقصى تغطية للسياق. راجع SPEC.md للمواصفات الفنية الكاملة مع جداول الأركان لكل محرك وصياغة الحمولة الدقيقة.

  1. Polyglots أولاً. حمولة واحدة تخترق '، "، )، */، -->، backticks، ومحددات القوالب في وقت واحد. أقسام Polyglot تقود القائمة الرئيسية.

  2. لكل محرك حيث لا تصل polyglots. محددات SSTI وصيغ إلغاء التسلسل غير متوافقة بشكل أساسي عبر المحركات.

  3. المدمجة على حساب الشل. حمولات خارج النطاق والتوقيت تستخدم مكتبات اللغة الأصلية:


أداة CLI (payloadctl)```bash

USAGE: prepare payloads for an engagement

./tools/payloadctl prepare abc123.oastify.com # output -> ready/ ./tools/payloadctl prepare abc123.oastify.com -o /tmp/payloads # custom dir

DEVELOPMENT: build, distribute, validate, generate

./tools/payloadctl build # sources/ -> payloads/full.txt ./tools/payloadctl dist # full.txt + minimum.txt -> payloads/lists/full/ + lists/minimal/ ./tools/payloadctl validate # test all 1,353 payloads against 35 testbed stacks ./tools/payloadctl validate # test a specific wordlist (e.g. lists/minimal/master.txt) ./tools/payloadctl generate # regenerate computed payloads (deser, ssti, sqli, misc) ./tools/payloadctl generate deser # deserialization only ./tools/payloadctl generate ssti # SSTI only

root@kitploit:~
### سير العمل النموذجي للتطوير```bash
# 1. Edit source files
vim payloads/sources/sqli.txt

# 2. Rebuild
./tools/payloadctl build       # rebuild full.txt from sources
./tools/payloadctl dist        # regenerate lists/full/ + lists/minimal/

# 3. Validate (requires Docker testbeds running)
cd testbed && ./testbed up sqli-sqlite && cd ..
./tools/payloadctl validate    # expect: N FIRE / 0 NO-FIRE / 0 SKIPPED

# 4. Prepare for use
./tools/payloadctl prepare YOUR_CALLBACK.oastify.com

هيكل المستودع```

. ├── README.md # This file ├── HOWTOUSE.md # Operator guide: context profiling + category selection matrix ├── SPEC.md # Technical spec - per-engine pillars, payload syntax, coverage │ ├── tools/ # CLI and generators │ ├── payloadctl # CLI entry point │ ├── cmd_build.py # Build full.txt from source files │ ├── cmd_dist.py # Generate lists/ directory │ ├── cmd_validate.py # Validate payloads against testbeds │ ├── cmd_validate_strict.py # Strict validation (proves actual exploitation) │ ├── cmd_generate.py # Run payload generators │ ├── cmd_prepare.py # Prepare payloads with callback domain │ ├── generate-deser-final.py # Deserialization generator (31 frameworks) │ ├── generate-ssti-missing.py # SSTI generator (14 engines) │ ├── generate-sqli-code-missing.py # SQLi and code injection generator │ └── generate-misc-missing.py # XXE, XSS, SSRF, path traversal generator │ ├── payloads/ │ ├── full.txt # Master list (1,353 payloads, with ## headers) │ ├── sources/ # Source files (edit these, all validated) │ │ ├── minimum.txt # 83-payload minimal list (validated, all pillars) │ │ ├── polyglots-condensed.txt # Cross-context polyglots (first in master) │ │ ├── sqli.txt # SQL injection (204) │ │ ├── ssti.txt # Template injection (168) │ │ ├── deserialization.txt # Deserialization (116, 31 frameworks) │ │ ├── os-cmd-injection.txt # OS command injection (116) │ │ ├── code-injection.txt # Code injection (112, includes Groovy) │ │ ├── ssrf.txt # SSRF (117) │ │ ├── path-traversal.txt # Path traversal (98) │ │ ├── xss.txt # XSS (49) │ │ ├── format-string.txt # Format string (33) │ │ ├── nosql.txt # NoSQL (26) │ │ ├── el-injection.txt # Expression language (26, includes MVEL) │ │ ├── header-crlf.txt # CRLF/header (14) │ │ ├── prototype-pollution.txt # Prototype pollution (10) │ │ ├── xxe.txt # XXE (8) │ │ ├── ldap-injection.txt # LDAP injection (30) │ │ ├── xslt-injection.txt # XSLT injection (25) │ │ ├── elasticsearch-injection.txt # Elasticsearch (25) │ │ ├── cypher-injection.txt # Neo4j/Cypher (22) │ │ └── couchdb-injection.txt # CouchDB (4) │ └── lists/ # Generated (don't edit, use payloadctl dist) │ ├── full/ # Full payload set │ │ ├── master.txt # 1,353 payloads with ## headers │ │ ├── payloads-only.txt # Raw lines for Burp Intruder │ │ ├── by-category/ # 20 category files │ │ ├── by-pillar/ # 5 pillar files (with -payloads-only variants) │ │ └── encoded/ # 7 encoding variants │ └── minimal/ # Minimal payload set (same structure) │ ├── master.txt # 83 payloads with ## headers │ ├── payloads-only.txt # Raw lines for Burp Intruder │ ├── by-category/ # 20 category files │ ├── by-pillar/ # 5 pillar files (with -payloads-only variants) │ └── encoded/ # 7 encoding variants │ ├── ready/ # Output from payloadctl prepare (gitignored) │ └── testbed/ # Docker validation infrastructure ├── testbed # CLI: ./testbed up ├── docker-compose.oob.yml # OOB callback catcher (HTTP 9999, TCP 9998, DNS 5353) ├── shared/oob-catcher/ # HTTP + LDAP/binary + raw TCP + DNS callback server └── stacks/ # 35 vulnerable application stacks

root@kitploit:~
---

## إضافة حمولات

### إضافة حمولة إلى فئة موجودة

1. قم بتعديل الملف المصدر في `payloads/sources/`. حمولة واحدة لكل سطر تحت قسم `##Header##`.
2. يجب أن تنتج كل حمولة إشارة قابلة للكشف (خطأ, math 1337, توقيت >4.5s, OOB, انعكاس).
3. أعد البناء والتحقق من الصحة:   ```bash
   ./tools/payloadctl build && ./tools/payloadctl dist
   ./tools/payloadctl validate    # 0 NO-FIRE required

إضافة فئة ثغرة جديدة

  1. أنشئ payloads/sources/<category>.txt مع رؤوس ## لكل ركن (خطأ، رياضيات، توقيت، خارج النطاق).
  2. أضف الملف إلى SOURCE_FILES في tools/cmd_build.py و CATEGORY_SOURCES في tools/cmd_dist.py.
  3. أنشئ مكدس اختبار في testbed/stacks/<category>/ (ملف Dockerfile + خادم يعرض POST /<endpoint> مع input=<payload> ويعيد {"output": "...", "error": "...", "time_ms": N})
  4. أضف توجيه نقطة النهاية في tools/cmd_validate.py (قاموس ENDPOINTS ودالة _get_endpoints()).

إضافة إطار عمل جديد لإلغاء التسلسل

  1. عدّل tools/generate-deser-final.py - أضف دالة تُخرج الحمولات (خطأ، رياضيات، توقيت، خارج النطاق).
  2. شغّل ./tools/payloadctl generate deser && ./tools/payloadctl build
  3. أضف نقطة نهاية الاختبار والتوجيه إذا لزم الأمر.

إضافة محرك SSTI جديد

  1. عدّل payloads/sources/ssti.txt - أضف أقسام ##اسم المحرك (اللغة) - الركن##. استخدم العناصر المضمنة في اللغة للتوقيت/خارج النطاق.
  2. أضف نقطة نهاية اختبار في مكدس ssti-<language> المناسب.
  3. أضف التوجيه في ENGINE_MAP في tools/cmd_validate.py.

قواعد تنسيق الحمولة

  • حمولة واحدة لكل سطر (YAML متعدد الأسطر يستخدم \n حرفياً)
  • {domain} عنصر نائب لعناوين URL الخاصة برد الاتصال خارج النطاق
  • 1337 كعلامة كاناري لجميع حمولات الرياضيات
  • أقسام ##العنوان## تجمّع حسب الفئة والركن
  • لا تكرارات (خطوة البناء تزيل التكرارات تلقائياً)

التحقق

يقوم المدقق باختبار كل حمولة ضد تطبيقات حقيقية قابلة للاستغلال:```bash

Start testbeds (Docker required)

cd testbed ./testbed up sqli-sqlite ./testbed up ssti-python ./testbed up deserialization-java

... (35 stacks total)

Run validation

cd .. ./tools/payloadctl validate

Output: 1,353 FIRE / 0 NO-FIRE / 0 SKIPPED / 1,353 TOTAL

root@kitploit:~
كيف يعمل:
1. يقرأ ملف الحمولة ويوجه كل قسم `##` إلى نقطة/نقاط النهاية المطابقة لبيئة الاختبار
2. يرسل طلبات POST `input=<حمولة>` إلى نقاط النهاية، ويتحقق من الاستجابة بحثًا عن إشارات
3. يتم تفعيل الحمولة إذا أعادت أي نقطة نهاية ما يلي: خطأ حقيقي من المحلل/المفسر، قيمة `1337` محسوبة من جهة الخادم (من `7*191`)، تأخير >4.5 ثانية، استرجاع من خارج النطاق من حاوية الهدف، محتوى قراءة ملف (`root:x:0:0`)، أو إدخال منعكس في سياق صالح (XSS, CRLF)

التحقق الصارم (`tools/cmd_validate_strict.py`) يتحقق بالإضافة إلى ذلك من:
- أن حمولات الرياضيات تثبت الحساب من جهة الخادم (ترسل الحمولة `7*191`، وليس القيمة الحرفية `1337`)
- أن استرجاعات خارج النطاق تنشأ من عناوين IP لحاويات بيئة الاختبار
- أن رسائل الأخطاء تحتوي على تواقيع حقيقية للمحلل/المفسر، وليس أخطاء HTTP عامة
- أن تأخيرات التوقيت تقع ضمن النطاق المتوقع (~5 ثوانٍ)

### أكواد بيئات الاختبار (35 إجمالاً)

| المكدس | المنفذ | اللغة | نقاط النهاية |
|-------|------|----------|-----------|
| sqli-sqlite | 8001 | بايثون | `/sqli`, `/sqli-numeric` |
| sqli-postgres | 8030 | بايثون | `/sqli` |
| ssti-python | 8003 | بايثون | `/jinja2`, `/mako`, `/tornado` |
| ssti-node | 8011 | عقدة | `/ejs`, `/nunjucks`, `/pug` |
| ssti-php | 8020 | PHP | `/twig`, `/smarty` |
| ssti-ruby | 8025 | روبي | `/erb`, `/slim`, `/haml` |
| ssti-java | 8040 | جافا | `/freemarker`, `/velocity`, `/pebble`, `/thymeleaf` |
| os-cmd-injection | 8002 | بايثون | `/system`, `/popen` |
| code-injection-python | 8004 | بايثون | `/eval` |
| code-injection-node | 8012 | عقدة | `/eval` |
| code-injection-php | 8021 | PHP | `/eval` |
| code-injection-ruby | 8026 | روبي | `/eval`, `/yaml`, `/marshal`, `/oj` |
| code-injection-perl | 8031 | بيرل | `/eval`, `/storable`, `/yaml` |
| xss | 8010 | عقدة | `/reflected` |
| xxe | 8008 | بايثون | `/parse`, `/xinclude` |
| ssrf | 8007 | بايثون | `/fetch` |
| path-traversal | 8006 | بايثون | `/read` |
| nosql-redis | 8015 | عقدة | `/eval` |
| el-injection-java | 8041 | جافا | `/spel`, `/ognl` |
| prototype-pollution | 8013 | عقدة | `/merge` |
| deserialization-python | 8005 | بايثون | `/pickle`, `/yaml`, `/jsonpickle` |
| deserialization-node | 8014 | عقدة | `/unserialize`, `/yaml`, `/funcster` |
| deserialization-php | 8022 | PHP | `/unserialize`, `/unserialize-b64`, `/phar` |
| deserialization-java | 8042 | جافا | `/deserialize`, `/yaml`, `/jackson`, `/fastjson`, `/xstream`, `/xmldecoder`, `/hessian` |
| deserialization-dotnet | 8045 | .NET | `/jsonnet`, `/binaryformatter`, `/xmlserializer`, `/losformatter`, `/javascriptserializer` |
| log4j-jndi | 8046 | جافا | `/log` |
| sqli-mysql | 8050 | بايثون | `/sqli`, `/sqli-numeric` |
| nosql-mongo | 8051 | عقدة | `/find`, `/where`, `/aggregate` |
| ssi-esi | 8035 | بايثون | `/ssi` |
| ldap-injection | 8055 | بايثون + OpenLDAP | `/search`, `/auth` |
| xslt-injection | 8056 | بايثون | `/transform`, `/xpath` |
| elasticsearch | 8057 | بايثون + ES 7.17 | `/search`, `/script` |
| cypher-injection | 8058 | بايثون + Neo4j 5 | `/query`, `/search` |
| couchdb-injection | 8059 | بايثون + CouchDB 3 | `/find` |
| groovy-injection | 8060 | Groovy/JDK 21 | `/eval` |

مُلتقط خارج النطاق على المنفذ 9999 (HTTP + كشف LDAP/ثنائي) وعلى 9998 (التقاط TCP خام)، مع DNS على 5353/UDP. يكتشف استرجاعات HTTP، اتصالات LDAP/ASN.1 الثنائية (JNDI)، استعلامات DNS، واتصالات TCP الخام. كل نقطة نهاية تقبل `POST /<المصرف>` مع `input=<حمولة>` وتعيد `{"output": "...", "error": "...|null", "time_ms": N}`.

---

## الشكر والتقدير

الحمولات تم بحثها وتطويرها بواسطة [Grom Hacks](https://github.com/gromhacks). بُني على أعمال مجتمع أبحاث الأمن بما في ذلك PayloadsAllTheThings و HackTricks و PortSwigger Web Security Academy وباحثين فرديين. جميع الحمولات تم التحقق من صحتها ضد تطبيقات ضعيفة حقيقية.
تنزيل الأداة
الحمولاتالفئةالأعمدة
4SQLiخطأ، رياضيات، توقيت، OOB (بوليجلوتات عبر اللهجات)
4SSTIخطأ، رياضيات، توقيت، OOB (بوليجلوتات عبر المحركات)
3OS Cmdرياضيات، توقيت، OOB (بوليجلوتات عبر الأغلفة)
3حقن الكودرياضيات، توقيت، OOB (عبر اللغات)
2XSSرياضيات، OOB
2XXEقراءة ملف، OOB
2SSRFخطأ، OOB
1Path Traversalقراءة ملف
2NoSQLرياضيات، خطأ
1EL Injectionرياضيات
1Prototype Pollutionرياضيات
1CRLF/Headerرياضيات
1Format Stringخطأ
1SSIرياضيات
2LDAP Injectionخطأ، رياضيات
3XSLT Injectionخطأ، رياضيات، OOB
2Elasticsearchخطأ، رياضيات
2Cypher/Neo4jخطأ، توقيت
1CouchDBخطأ
3Groovyرياضيات، توقيت، OOB
41إزالة التسلسلمتعدد الأعمدة حيثما مدعوم، خطأ فقط خلاف ذلك
YTo
  • مصفوفة تلميحات الهدف إلى الفئة - انتقل من "أرى id=42 و JSESSIONID" إلى "جرب by-category/sqli.txt + إزالة تسلسل Java + حقن EL، راقب عمود الرياضيات" في نظرة واحدة.
  • قواعد اختيار العمود - اختر الإشارة التي يمكنك ملاحظتها فعليًا (OOB > رياضيات > توقيت > خطأ > منعكس) قبل أن تطلق، حتى لا تختبر أعمى ضد قناة لا يمكنك قراءتها.
  • الركنالحمولاتما تبحث عنهمتى تستخدم
    خطأ324نص استثناء، تتبع المكدس، خطأ محلل في الاستجابةالتطبيق يعكس الأخطاء
    توقيت227يستغرق الرد >4.5 ثانيةأعمى - لا مخرجات، لا أخطاء
    خارج النطاق209HTTP/DNS/LDAP/TCP صادر إلى خادم رد الاتصال الخاص بكأعمى + غير متزامن - التوقيت غير موثوق
    رياضيات182النص الحرفي 1337 في جسم الاستجابة (الخادم حسب 7*191)المخرجات منعكسة ولكن لا توجد أخطاء
    منعكس374قيمة الإدخال مردودة في الاستجابةفحص الشذوذ في المحلل
    قراءة ملف(مجموعة فرعية)محتوى root: أو [extensions] في الاستجابةتجاوز المسار، XXE قراءة ملف
    الفئةالعددالأركانالتغطية
    SQLi211error, math, timing, oobMySQL، PostgreSQL، Oracle، MSSQL، SQLite، CockroachDB. UNION، خطأ، توقيت، خارج النطاق. كسور السياق: '، "، )، ))، */، رقمي.
    SSTI206خطأ، رياضيات، توقيت، خارج النطاقJinja2، Mako، Tornado، EJS، Nunjucks، Pug، Twig، Smarty، ERB، Slim، Haml، Thymeleaf، Pebble، Freemarker، Velocity، Razor، Go template، Mustache، Liquid. جميعها تستخدم المدمجة في اللغة.
    إلغاء التسلسل232خطأ، رياضيات، توقيت، خارج النطاق31 إطار / 7 لغات. جميع حمولات اللغة الأصلية تستخدم المدمجة (بدون أوامر شل). Python (pickle P0/P2/P4 عبر time.sleep/builtins.eval/urllib، YAML عبر time.sleep/builtins.eval، jsonpickle)، PHP (unserialize)، Node (node-serialize عبر JS busy-wait/http.get، js-yaml، funcster، cryo)، Ruby (YAML، Marshal، Oj)، Java (Jackson، Fastjson، XStream، SnakeYAML، XMLDecoder، Hessian، JNDI/Log4Shell، ObjectInputStream، ysoserial URLDNS)، .NET (Json.NET، BinaryFormatter، SoapFormatter، XmlSerializer، JavaScriptSerializer، LosFormatter، ViewState، ObjectStateFormatter)، Perl (Storable، YAML).
    حقن أوامر نظام التشغيل120خطأ، رياضيات، توقيت، خارج النطاقBash، CMD، PowerShell. كسور السياق: ;، |، ||، &&، $()، backticks. IFS تجاوز، glob تجاوز، ترميز ست عشري.
    حقن كود123خطأ، رياضيات، توقيت، خارج النطاقPython، Node، PHP، Ruby، Perl، Lua، Java ScriptEngine، Groovy. دوران CPU بدون استيراد، خارج النطاق على مستوى المقبس.
    SSRF156خطأ، رياضيات، توقيت، خارج النطاقبيانات وصفية سحابية (AWS/GCP/Azure)، تجاوز IP، مخططات البروتوكول، إعادة ربط DNS، تحقيقات الخدمة الداخلية.
    تجاوز المسار113خطأ، رياضيات، توقيت، خارج النطاقLinux + Windows، تجاوز الترميز، البايت الصفري، مكونات PHP الإضافية، UNC، NTFS ADS، أسماء قصيرة 8.3.
    XSS58خطأ، رياضيات، خارج النطاقPolyglots عبر السياقات (20+ سياق)، معالجات الأحداث، تجنب التصفية، DOM clobbering، طفرة XSS، SVG، خارج النطاق.
    سلسلة التنسيق38خطأ، رياضياتC/C++ (%s%n%x)، Python ({0.__class__})، .NET ({0:X}).
    NoSQL32خطأ، رياضيات، توقيت، خارج النطاقحقن عامل MongoDB، توقيت $where، خارج النطاق، أوامر Redis.
    حقن EL34خطأ، رياضيات، توقيت، خارج النطاقSpEL، OGNL، MVEL، Unified EL. خارج النطاق عبر java.net.URL.
    CRLF/Header17خطأ، رياضيات، خارج النطاقتقسيم الاستجابة، حقن العنوان، خارج النطاق عبر عنوان المضيف.
    تلوث النموذج الأولي12خطأ، رياضيات__proto__، constructor.prototype، متغيرات JSON وسلسلة الاستعلام.
    XXE11خطأ، توقيت، خارج النطاق، قراءة ملفكيانات خارجية، XInclude، كيانات معلمات، مليار ضحكة DoS.
    حقن LDAP35خطأ، رياضيات، توقيت، خارج النطاقحقن التصفية، تجاوز المصادقة، توقيت أحرف البدل، إحالة خارج النطاق.
    Elasticsearch30خطأ، رياضيات، توقيت، خارج النطاقحقن سكريبت Painless، DSL الاستعلام، صياغة query_string.
    Cypher/Neo4j27خطأ، رياضيات، توقيت، خارج النطاقحقن استعلام Cypher، APOC sleep، LOAD CSV خارج النطاق.
    CouchDB5خطأ، رياضياتحقن استعلام Mango، حقن عامل، تجاوز المصادقة.
    حقن XSLT30خطأ، رياضيات، خارج النطاق، قراءة ملفXPath رياضيات، document() SSRF، قراءة ملف، تسريب معلومات system-property().
    Polyglots/حالات حافة246خطأ، رياضيات، توقيت، خارج النطاقPolyglots عبر السياقات + تجاوز سعة المخزن المؤقت، حد الأعداد الصحيحة، ارتباك النوع، بايت صفري.
    الترميزحالة الاستخدام
    مشفر URLالمعلمات القياسية للاستعلام/النموذج
    مشفر URL مزدوجتجاوز WAF، ثغرات فك الترميز المزدوج
    Base64نصوص API، JWT، معلمات مسلسلة
    آمن لـ JSONنصوص طلب JSON (اقتباسات هاربة)
    كيان HTMLحقن سمات HTML
    هروب ست عشريبروتوكولات ثنائية، حقن منخفض المستوى
    هروب يونيكودتجاوز تطبيع يونيكود
    اللغةالمدمجة لخارج النطاقالمدمجة للتوقيت
    Pythonurllib.request.urlopen()time.sleep(5)
    Javajava.net.URL.openStream()Thread.sleep(5000)
    Noderequire('http').get()حلقة انتظار مشغولة Date.now()
    PHPfile_get_contents()، fsockopen()sleep(5)
    RubyNet::HTTP.get()، TCPSocket.new()sleep(5)
    PerlIO::Socket::INETselect(undef,undef,undef,5)
    .NETSystem.Net.WebClientThread.Sleep(5000)

    أوامر الشل (curl، nslookup) تعتمد على نظام التشغيل والمسار. المدمجة تعمل في كل مكان.

  • بدون استيراد حيثما أمكن. دوران CPU للتوقيت يعمل حتى عندما يتم حظر الاستيرادات:

    • Python: sum(range(500000000)) (~7 ثوان، بدون استيرادات)
    • Node: Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,5000) (5 ثوان دقيقة)
    • Ruby: 99999999.times{1+1}
  • خارج النطاق على مستوى المقبس كبديل. عندما تكون مكتبات HTTP محظورة: __import__('socket').create_connection()، fsockopen()، TCPSocket.new()، new java.net.Socket().

  • تحقق: ./tools/payloadctl validate