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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
jdam — مُختبر عشوائي لـ JSON مدرك للبنية | Kitploit
أدوات/GitLabGitLab/michenriksen/jdam
تحليل الثغرات الأمنيةاستغلال تطبيقات الويبالاختبار العشوائياختبار الاختراق
GitLabmichenriksen/jdam

jdam

مُختبر عشوائي لـ JSON مدرك للبنية

عرض المستودع
55849منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

jdam - تشويش JSON واعي بالهيكل

jdam

jdam هي أداة مستوحاة من Radamsa لتشويش كائنات JSON العشوائية بطريقة واعية بالهيكل، مما يضمن أن نتائج التشويش ستكون دائمًا JSON صالحة.

العديد من أدوات التشويش الحالية ستغير المدخلات بشكل أعمى وغالبًا ما تتسبب في أن تكون النتيجة JSON غير صالحة. هذا يعني أن اختبار التشويش سيمارس فقط محلل JSON للتطبيق المستهدف ولن يصل اختبار التشويش أبدًا إلى كود التطبيق الأساسي لأن الطلبات غير صالحة. jdam هي محاولة لحل هذه المشكلة.

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

  • SQL Injection
  • Command Injection
  • LDAP Injection
  • NoSQL Injection
  • Format String Injection
  • Local File Inclusion
  • Integer Overflow
  • والمزيد

لعرض قائمة كاملة بالمحولات المتاحة، استخدم .

jdam -list

ملاحظة

jdam لا تزال خشنة إلى حد ما ويجب توقع الأخطاء. ومع ذلك، فهي مستقرة بما يكفي ليتم إصدارها للمغامرين هناك، لكن تعامل معها كبرنامج ألفا في الوقت الحالي!

التثبيت

قم بتنزيل [إصدار] مبني مسبقًا لنظام التشغيل الخاص بك أو استنسخ المستودع وارمّب باستخدام go build -o jdam cmd/jdam/*.

الاستخدام

root@kitploit:~
Usage of jdam:
  -count int
    	Number of fuzzed objects to generate (default 1)
  -ignore string
    	Comma-separated list of fields to exclude from fuzzing
  -list
    	List available mutators
  -max-depth int
    	Maximum object depth to fuzz (default 100)
  -mutators string
    	Comma-separated list of mutator IDs to use (default: all)
  -nil-chance float
    	Probability of value being set to nil (between 0 (no nils) and 1 (all nils)) (default 0.75)
  -output string
    	Output file pattern to use for results (e.g. /tmp/jdam-%d.json)
  -rounds int
    	Number of times to fuzz object (default 1)
  -seed int
    	Seed to use for pseudo-random number generator (default: current UNIX timestamp)
  -verbose
    	Print activity information
  -version
    	Print current jdam version

يعمل jdam عن طريق تمرير كائن JSON صالح ({...}) إليه. افتراضيًا، سيقوم jdam بإجراء تحويل عشوائي واحد على حقل عشوائي وطباعة كائن JSON الناتج:

root@kitploit:~
$ echo '{"hello":"world"}' | jdam
{"hello":{"id":1}}

يمكن تحوير JSON الموضوع عدة مرات باستخدام العلم -rounds، لكن ضع في اعتبارك أن حمولات التشويش السابقة يمكن أيضًا تحويرها:

root@kitploit:~
$ echo '{"hello":"world"}' | jdam -rounds 10
{"hello":{"_constructor":"${42*444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444442}"}}

يمكن إنشاء كائنات مشوشة متعددة باستخدام العلم -count:

root@kitploit:~
$ echo '{"hello":"world"}' | jdam -count 10
{"hello":"sorld"}
{"hello":"../../../../../../../../../../../../../../../../../../../../etc/passwd"}
{"hello":"{{42*42}}"}
{"hello":null}
{"hello":"' \u0026\u0026 this.password.match(/.*/)//+\u0000"}
{"hello":{"$where":"1"}}
{"hello":"null"}
{"hello":"\";touch /tmp/jdam.70797.fail'"}
{"hello":null}
{"hello":"|| 1==1"}

كتابة النتائج إلى ملفات

يمكن لـ jdam كتابة نتائج التشويش إلى ملفات فردية إذا كنت تريد إعداد ملفات اختبار بدلاً من استخدام STDOUT للأمر:

root@kitploit:~
$ echo '{"hello":"world"}' | jdam -count 10 -output "/tmp/jdam-%d.json"

سيقوم الأمر أعلاه بإنشاء 10 ملفات في /tmp من jdam-1.json إلى jdam-10.json. سيتم استبدال الكلمة الخاصة %d تلقائيًا برقم تسلسلي بحيث يمكن كتابة النتائج إلى ملفات فردية.

تجاهل الحقول

إذا كنت تريد التأكد من أن jdam لا يقوم أبدًا بتحوير حقول محددة في كائن JSON الموضوع، يمكنك إخبار jdam بتجاهلها باستخدام العلم -ignore:

root@kitploit:~
$ echo '{"id":13,"articleId":37,"comment":"Hello"}' | ./jdam -count 10 -ignore id,articleId
{"id":13,"articleId":37,"comment":"%x%x%x%x"}
{"id":13,"articleId":37,"comment":"search=')] | //user/*[contains(*,'"}
{"id":13,"articleId":37,"comment":"' and count(/comment())=1 and '1'='1"}
{"id":13,"articleId":37,"comment":"\u0016ello"}
{"id":13,"articleId":37,"comment":"/"}
{"id":13,"articleId":37,"comment":null}
{"id":13,"articleId":37,"comment":"{{{42*42}}}"}
{"id":13,"articleId":37,"comment":"@*"}
{"id":13,"articleId":37,"comment":"Helloooooooooooooooo"}
{"id":13,"articleId":37,"comment":"//*"}

استخدام jdam مع Ffuf

ffuf هو مشوش ويب رائع ويمكن استخدام jdam بسهولة كمدخل للتشويش:

root@kitploit:~
ffuf -input-cmd 'cat subject.json | jdam -rounds 3' -d FUZZ -u http://localhost/api/todos/1 -X PUT -v -mc 500 -mr 'error|failed|failure|fault|abort|root:|1764|0x|\d{20}' -od /tmp/ffuf_test

سيوجه الأمر أعلاه ffuf للحصول على مدخلات التشويش من jdam وإرسالها كجسم الطلب إلى PUT /api/todos/1. سيتم كتابة تفاصيل الطلب والاستجابة إلى tmp/ffuf_test/ إذا كانت الاستجابة 500 Internal Server Error أو إذا كان جسم الاستجابة يحتوي على سلاسل مثيرة للاهتمام معينة.

استخدام jdam كحزمة

إذا كنت تعرف Go وتحتاج إلى تشويش متخصص للغاية، يمكنك استخدام jdam داخل كود Go الخاص بك. راجع مجلد examples/ للحصول على أمثلة الاستخدام.

ما الذي تبحث عنه

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

  1. الأعطال: إذا توقف النظام المستهدف عن قبول الاتصالات، فهناك فرصة جيدة لأنه تعطل بسبب نوع من خلل تلف الذاكرة. أعد تشغيل الطلب الأخير وتحقق مما إذا كان يمكن إعادة إنتاج العطل.
  2. استجابات بطيئة بشكل غير عادي: إذا تسبب طلب في استجابة الخادم ببطء غير عادي، فهناك فرصة جيدة أن حمولة تسببت في مشاكل لنظام أساسي أو أمرت قاعدة البيانات بـ sleep.
  3. استجابات كبيرة بشكل غير عادي: إذا كانت الاستجابة كبيرة بشكل غير عادي مقارنة بالمتوسط، فقد تحتوي على بيانات مثيرة للاهتمام لم يكن المقصود إعادتها.
  4. 500 Internal Server Error واستجابات خطأ أخرى: تحدث هذه عادةً عندما تسبب حمولة في خطأ غير متوقع أو غير معالج في التطبيق.
  5. كلمات مفتاحية للخطأ والفشل: استجابات تحتوي على كلمات مفتاحية متعلقة بالخطأ مثل error وfailure وfailed إلخ.
  6. محتوى ملف /etc/passwd: تحاول جميع حمولات تضمين الملف المحلي تضمين ملف /etc/passwd للحصول على محتوى يمكن التنبؤ به. لذا أي استجابة تحتوي على root: مثيرة جدًا للاهتمام!
  7. الرقم السحري 1764: ستحاول جميع حمولات حقن القوالب جعل محركات القوالب الضعيفة تقييم 42*42 الذي يساوي 1.764. إذا حدث هذا الرقم في استجابة، فهناك احتمال كبير أن النظام عرضة لحقن القوالب.
  8. 0x والأرقام الطويلة: إذا احتوت استجابة على 0x متبوعة بسلسلة ست عشرية طويلة أو سلسلة رقمية طويلة، فقد يكون ذلك مؤشرًا على أن حمولة استدعت ثغرة سلسلة التنسيق.
  9. وجود /tmp/jdam.*.fail: تحاول جميع حمولات حقن الأوامر إنشاء ملف في مجلد /tmp للنظام باسم jdam.<number>.fail. سيكون الرقم عشوائيًا من خمسة أرقام لتسهيل التعرف على الحمولة المسؤولة.

غرفة الجوائز

jdam لا تزال أداة جديدة جدًا لذا لم تكتشف أي أخطاء جيدة بعد. أحب أن أسمع منك إذا ساعدتك jdam في الحصول على CVE أو مكافأة أخطاء جيدة وسأربط بسعادة بكتابتك أو تقريرك هنا. :)

الإسناد

أود أن أعطي الإسناد والشكر لعدد من المشاريع الأخرى:

  • Radamsa للإلهام لـ jdam.
  • gofuzz لإعطائي أفكارًا حول كيفية برمجة jdam.
  • SecLists لحمولات التشويش.
  • PayloadsAllTheThings لحمولات التشويش.
  • ffuf لجعل استخدام jdam ضد تطبيقات الويب سهلاً للغاية.

تشويش سعيد!

تنزيل الأداة