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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/jagracey/regex-dos
أدوات دفاعيةماسحات الثغرات الأمنيةتحليل الشفرة الثابت (SAST)تحليل الثغرات الأمنيةDevSecOps
GitHubjagracey/regex-dos

RegEx-DoS

👮 👊 ماسح حجب الخدمة عبر RegEx (ReDos)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

👮 👊 ماسح حرمان الخدمة عبر التعبيرات النمطية (ReDos)

يساعدك في العثور على التعبيرات النمطية المعرّضة لهجمات حرمان الخدمة.

يرجى قراءة إرشادات المساهمة قبل المساهمة.



لقطة شاشة لعملية فحص ReDoS أثناء التنفيذ.

ما هو حرمان الخدمة عبر التعبيرات النمطية؟

ويكيبيديا و OWASP لديهما شروحات جيدة. أساسًا، يمكن لبعض التعبيرات النمطية أن تستغرق وقتًا طويلًا مع مدخلات معينة. إليك مثال واقعي.

root@kitploit:~
>   console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/master/%5Ba-z%5D)+$/.test('aaaaaaaaaaaaaaa');
    console.timeEnd('benchmark');
< benchmark: 0.060ms

>   console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/master/%5Ba-z%5D)+$/.test('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
    console.timeEnd('benchmark');
< benchmark: 308.656ms

>   console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/master/%5Ba-z%5D)+$/.test('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
    console.timeEnd('benchmark');
< benchmark: 3179.829ms


>   console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/master/%5Ba-z%5D)+$/.test('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
    console.timeEnd('benchmark');
< benchmark: 22159.769ms  // 22 seconds

>   // You can guess what would happen if you test the RegEx with 100 repeating characters.
    console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/master/%5Ba-z%5D)+$/.test( 'a'.repeat(100) );
    console.timeEnd('benchmark');
< benchmark: lol.....no.


# تثبيت ReDoS

كالعادة، ثبّت عبر NPM.

root@kitploit:~
npm install redos

يمكنك تشغيل redos من سطر الأوامر:

root@kitploit:~
# Use "Find" to run Regex-DoS for any set of JS files you want.
find . -name "*.js" -not -path "./node_modules/*" -exec redos {} \;

أو لتشغيله كوحدة node:

root@kitploit:~
var redos = require('redos');

// Using a Callback
redos(" 'aaaa'.split(/a+b?c*/g); ", function(regexNodes){
  console.log( regexNodes.results() );
};


// Or Without a Callback
redos(" 'aaaa'.split(/a+b?c*/g); ").results();


// Or With Better Content to Parse
const fs      = require('fs');
const content = fs.readFileSync('./foobar.js'); // <--- Your own file Here.
redos( content ).results();


الاختبارات

قريبًا؟



المساهمة

راجع دليل المساهمة للحصول على تفاصيل حول كيفية المساهمة. إنه على الأرجح ما تتوقعه.

مدونة قواعد السلوك

راجع مدونة قواعد السلوك للتفاصيل. بشكل أساسي تتلخص في:

من أجل تعزيز بيئة مفتوحة ومرحّبة، نتعهد نحن المساهمون والمشرفون بجعل المشاركة في مشروعنا ومجتمعنا تجربة خالية من التحرش للجميع، بغض النظر عن العمر، أو حجم الجسم، أو الإعاقة، أو العرق، أو الهوية الجندرية والتعبير عنها، أو مستوى الخبرة، أو الجنسية، أو المظهر الشخصي، أو الأصل، أو الدين، أو الهوية الجنسية والتوجه الجنسي.

الترخيص

رخصة MIT (MIT)

حقوق النشر (c) 2016 John Gracey

يُمنح هذا الإذن مجانًا لأي شخص يحصل على نسخة من هذا البرنامج وملفات التوثيق المرتبطة به ("البرنامج")، للتعامل مع البرنامج دون قيود، بما في ذلك على سبيل المثال لا الحصر حقوق الاستخدام، والنسخ، والتعديل، والدمج، والنشر، والتوزيع، والترخيص الفرعي، و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين يزودهم البرنامج بذلك، وفقًا للشروط التالية:

يجب تضمين إشعار حقوق النشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الجوهرية من البرنامج.

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

تنزيل الأداة