
أداة سطر أوامر لاكتشاف ثغرات تهريب طلب HTTP باستخدام تحليل التأخير الزمني مع حمولات CL.TE و TE.CL مدمجة للاختبار الأمني الآلي.
تهريب طلب HTTP هو ثغرة أمنية عالية الخطورة تتمثل في تقنية يقوم من خلالها المهاجم بتهريب طلب HTTP غامض لتجاوز الضوابط الأمنية والحصول على وصول غير مصرح به لتنفيذ أنشطة ضارة. تم اكتشاف الثغرة في عام 2005 بواسطة watchfire وأعيد اكتشافها لاحقًا في أغسطس 2019 بواسطة James Kettle - (albinowax) وتم عرضها في DEF CON 27 و Black-Hat USA. لمعرفة المزيد عن هذه الثغرة، يمكنك الرجوع إلى مدوناته البحثية الموثقة جيدًا على موقع Portswigger. لذا فإن الفكرة وراء هذه الأداة الأمنية هي اكتشاف ثغرة HRS لمضيف معين، ويتم الاكتشاف بناءً على تقنية تأخير الوقت مع التباديل المعطاة. لمعرفة المزيد عن هذه الأداة، أشجعك بشدة على قراءة منشور مدونتي عنها.
الأداة مكتوبة باستخدام بايثون، ولاستخدامها يجب أن يكون لديك إصدار بايثون 3.x مثبتًا على جهازك المحلي. تأخذ الأداة إدخالًا إما عنوان URL واحد أو قائمة عناوين URL تحتاج إلى تقديمها في ملف نصي، وباتباع تقنية اكتشاف ثغرة HRS، تحتوي الأداة على حمولات مدمجة تضم حوالي 37 تباديلًا وحمولات كشف لكل من CL.TE و TE.CL، وبالنسبة لكل مضيف معين، ستنشئ الأداة كائن طلب هجوم باستخدام هذه الحمولات وتحسب الوقت المنقضي بعد استلام الرد لكل طلب وتقرر وجود الثغرة، لكن في معظم الأحيان قد تكون النتيجة إيجابية كاذبة، لذا لتأكيد الثغرة يمكنك استخدام burp-suite turbo intruder وتجربة حمولاتك.
من المهم جدًا معرفة بعض الإخلاءات القانونية قبل فحص أي من الأهداف. يجب أن تحصل على التفويض المناسب قبل فحص أي هدف، وإلا فإنني أقترح عدم استخدام هذه الأداة لفحص هدف غير مصرح به، لأنه لاكتشاف الثغرة ترسل الأداة حمولات متعددة عدة مرات باستخدام الخيار (--retry)، مما يعني أنه في حالة حدوث خطأ، هناك احتمال أن يتسمم مأخذ التوصيل الخلفي بالحمولات وقد يرى أي زائر حقيقي لتلك الصفحة الحمولة المسمومة بدلاً من رؤية المحتوى الفعلي للصفحة. لذا أشدد بشدة على اتخاذ الاحتياطات المناسبة قبل فحص أي موقع هدف، وإلا ستواجه مشكلة قانونية.
git clone https://github.com/anshumanpattnaik/http-request-smuggling.git
cd http-request-smuggling
pip3 install -r requirements.txt
usage: smuggle.py [-h] [-u URL] [-urls URLS] [-t TIMEOUT] [-m METHOD]
[-r RETRY]
HTTP Request Smuggling vulnerability detection tool
optional arguments:
-h, --help show this help message and exit
-u URL, --url URL set the target url
-urls URLS, --urls URLS
set list of target urls, i.e (urls.txt)
-t TIMEOUT, --timeout TIMEOUT
set socket timeout, default - 10
-m METHOD, --method METHOD
set HTTP Methods, i.e (GET or POST), default - POST
-r RETRY, --retry RETRY
set the retry count to re-execute the payload, default
- 2
python3 smuggle.py -u <URL>
python3 smuggle.py -urls <URLs.txt>
إذا شعرت أن حمولة الكشف تحتاج إلى تغيير لجعلها أكثر دقة، فيمكنك تحديث الحمولة في ملف payloads.json ضمن مصفوفة الكشف.
"detection": [
{
"type": "CL.TE",
"payload": "\r\n1\r\nZ\r\nQ\r\n\r\n",
"content_length": 5
},
{
"type": "TE.CL",
"payload": "\r\n0\r\n\r\n\r\nG",
"content_length": 6
}
]
هذا المشروع مرخص بموجب رخصة MIT