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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
t-reqs — فازر HTTP/1 مبني على القواعد مع قدرة على الطفرات | Kitploit
أدوات/GitHubGitHub/bahruzjabiyev/t-reqs
تحليل الثغرات الأمنيةأمن الويبالاختبار العشوائيالأوراق والأبحاث
GitHubbahruzjabiyev/t-reqs

t-reqs

فازر HTTP/1 مبني على القواعد مع قدرة على الطفرات

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

الأكثر شعبية

عرض الكل →

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

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

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

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

T-Reqs مفجر HTTP

T-Reqs (Two Requests) هو مفجر HTTP قائم على القواعد النحوية كُتب كجزء من الورقة البحثية بعنوان "T-Reqs: HTTP Request Smuggling with Differential Fuzzing" والتي تم تقديمها في ACM CCS 2021.

BibTeX of the paper:

root@kitploit:~
@inproceedings{ccs2021treqs,
  title={T-Reqs: HTTP Request Smuggling with Differential Fuzzing},
  author={Jabiyev, Bahruz and Sprecher, Steven and Onarlioglu, Kaan and Kirda, Engin},
  booktitle={Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security},
  pages={1805--1820},
  year={2021}
}

حول

T-Reqs مخصص لاختبار خوادم HTTP عشوائيًا عن طريق إرسال طلبات HTTP معدلة بالإصدارات 1.1 والإصدارات الأقدم. يتكون من ثلاثة مكونات رئيسية: 1) توليد المدخلات، 2) تحوير المدخلات المولدة، و3) توصيلها إلى الخادم (الخوادم) الهدف.

توليد المدخلات

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

root@kitploit:~
 '<start>':
     ['<request>'],
 '<request>':
     ['<request-line><base><the-rest>'],
 '<request-line>':
     ['<method-name><space><uri><space><protocol><separator><version><newline>'],
 '<method-name>':
     ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH'],
 '<space>':
     [' '],
 '<uri>':
     ['/_URI_'],
 '<protocol>':
     ['HTTP'],
 '<separator>':
     ['/'],
 '<version>':
     ['0.9', '1.0', '1.1'],
 '<newline>':
     ['\r\n'],
 '<base>':
     ['Host: _HOST_\r\nConnection:close\r\nX-Request-ID: _REQUEST_ID_\r\n'],
 '<the-rest>':
     ['Content-Length: 5\r\n\r\nBBBBBBBBBB'],

تحوير المدخلات

يمكن تمييز كل مكون بطريقتين: قابل للتحوير كسلسلة نصية وقابل للتحوير كشجرة (انظر مثال التهيئة). إذا كان المكون قابلًا للتحوير كسلسلة نصية، فيمكن حذف حرف عشوائي أو استبداله أو إدراجه في موضع عشوائي. في المثال الموضح أدناه (الجانب الأيسر)، تم حذف الحرف الأخير من إصدار البروتوكول (1)، وتم استبدال الحرف الثالث في اسم الأسلوب (S) بـ R، وتم إدراج شرطة مائلة في بداية URI. بينما إذا كان المكون قابلًا للتحوير كشجرة، فيمكن حذف مكون عشوائي أو استبداله أو إدراجه في موضع عشوائي ضمن ذلك المكون. المثال أدناه (الجانب الأيمن) يظهر ثلاثة تحويرات شجرية تم تطبيقها على مكون سطر الطلب: 1) استبدال method بـ protocol، 2) إدراج URI إضافي بعد URI الحالي، و3) حذف proto الموجود.

Mutation Types

الاستخدام

التهيئة

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

أوضاع التشغيل

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

root@kitploit:~
python3 main.py -i -c config -s 505

بينما في الوضع الجماعي (وهو الافتراضي)، يبدأ من الصفر كقيمة بذرة ويزيدها في كل تكرار حتى الوصول إلى الرقم النهائي. يمكن تخصيص أرقام البداية والنهاية.

root@kitploit:~
python3 main.py -c config

ملف Docker

نشارك أيضًا ملف Dockerfile لتتمكن من تشغيل كود t-reqs. يمكنك تشغيل الأوامر أدناه للبدء:

root@kitploit:~
# run the command below under the directory which has the Dockerfile
docker build -t test/treqs .

# create a container after you built the image using the command above
docker run -ti test/treqs bash

# run the commands below in the started docker shell
cd t-reqs/
python3 code/main.py -c config -n -i -s90

اكتشاف ناقلات تهريب طلبات HTTP جديدة

يعتمد تهريب طلبات HTTP على سلوكيات تحليل الجسم المختلفة بين الخوادم حيث يستخدم أحد الخوادم رأس Transfer-Encoding بينما يفضل الآخر رأس Content-Length لتحديد حدود جسم الطلب، أو يتجاهل أحد الخوادم جسم الطلب بينما يعالجه الآخر.

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

يتوفر برنامج نصي مثال "مزود التغذية الراجعة" في هذا المستودع. ومع ذلك، يقوم هذا البرنامج النصي بإرسال معلومات طول الجسم مرة أخرى في استجابة بافتراض أن هذه المعلومات مخزنة على جانب العميل.

الترخيص

T-Reqs مرخص بموجب رخصة MIT.

تنزيل الأداة