كيفية العثور على WAF الذي يحمي موقع الويب؟
نشرت: 2021-10-11من الجيد دائمًا أن يعرف المهاجم مكان استخدام WAF عادةً على الشبكة قبل أن يبدأ في أخذ البصمات.
يجب أن يكون مختبرو الاختراق على دراية بـ WAF قبل البدء في مشاركة تطبيق الويب لأن نتيجة اعتداءاتهم قد تتأثر.
لكن قبل ذلك ...
ما هو WAF؟
يلعب WAF (جدار حماية تطبيقات الويب) دورًا مهمًا في أمان موقع الويب. يقومون بتصفية ومراقبة حركة المرور. توفر جدران حماية تطبيقات الويب الحماية من العيوب الرئيسية. تقوم العديد من المنظمات بتحديث بنيتها التحتية لتشمل جدران حماية تطبيقات الويب. وفقًا لخبراء القرصنة الأخلاقية ، لا تستطيع جدران حماية تطبيقات الويب إصلاح مشكلات الأمان بمفردها ؛ التكوين المناسب مطلوب للتعرف على التهديدات الخارجية ومنعها.
يختلف WAF عن جدار الحماية التقليدي في أنه قد يقوم بتصفية محتوى تطبيقات معينة عبر الإنترنت ، بينما تعمل جدران الحماية التقليدية كحاجز أمان بين الخوادم.

يخضع تفاعل HTTP لمجموعة من القواعد. تتناول هذه القواعد نقاط الضعف النموذجية مثل البرمجة النصية عبر المواقع وإدخال SQL بشكل عام.
هناك العديد من الأدوات المجانية ومفتوحة المصدر على الإنترنت التي يمكنها اكتشاف جدران الحماية خلف تطبيقات الويب.
وفي هذه المقالة ، سنلقي نظرة على الأساليب والأدوات التي يمكن استخدامها لاكتشاف WAF.
يرجى ملاحظة ما يلي: في هذا البرنامج التعليمي ، استخدمت موقع الويب الخاص بي لتعداد التفاصيل. لا تقم بإجراء فحص أو أي نشاط قرصنة آخر على أي موقع ويب دون إذن مسبق من المالك.
الاكتشاف اليدوي
الكشف باستخدام TELNET
يتم استخدام Telnet بشكل أساسي من قبل مسؤولي الشبكة ومختبري الاختراق. تمكنك Telnet من الاتصال بالمضيفات البعيدة عبر أي منفذ ، كما هو مذكور سابقًا.
- غالبًا ما تُترك معلمات HTTP (أو تُدرج) في رؤوس الاستجابة بواسطة جدران حماية تطبيقات الويب.
- يمكن استخدام Telnet للحصول على معلومات التجميع الأساسية مثل الخادم وملفات تعريف الارتباط المستخدمة في أخذ البصمات.
- اكتب
Telnet Targetwebsite.com 80
[email protected]: # telnet Targetwebsite.com 80 Trying 18.166.248.208... Connected to Targetwebsite.com. Escape character is '^]'. بعد تشغيل الأمر أعلاه ، اكتب HEAD / HTTP / 1.1 واضغط على مفتاح الإدخال.
[email protected]: # telnet 18.166.248.208 80 Trying 18.166.248.208... Connected to 18.166.248.208. Escape character is '^]'. HEAD / HTTP/1.1 Host: 18.166.248.208 HTTP/1.1 200 OK Date: SUN, 10 Oct 2021 05:08:03 IST Server: Apache X-Powered-By: PHP/5.3.5 ZendServer/5.0 Set-Cookie: SESSIONID VULN SITE=t25put8gliicvqf62u3ctgjm21; path=/ Expires: Thu, 19 Nov 1981 08:52:00 IST Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache X-Varnish: 4723782781 Age: 0 Via: 1.1 varnish Connection: close Content-Type: text/html Connection closed by foreign host.يشير إلى الخادم الذي يتم استضافة موقع الويب عليه ولغة النهاية الخلفية التي تم إنشاؤه عليها بعد استخدام telnet على المنفذ الهدف 80.
تسمح بعض أنظمة WAF بتعديل الرأس ، ويمكن أن تتسبب أيضًا في قيام خادم الويب بإرسال ردود HTTP مختلفة عن تلك القياسية.
كما هو موضح في النتيجة أعلاه ، استجاب خادم الويب لطلبنا وكشف أن جدار الحماية / بوابة الحافة كانت Varnish.
الاكتشاف الآلي
# 1. الكشف باستخدام NMAP
يمكن أيضًا استخدام Nmap ، الذي يحتوي على برنامج نصي يمكنه تحديد جدار حماية تطبيق الويب ، لهذا الغرض.
- Nmap هي أداة تقييم أمان يستخدمها العديد من مختبري القلم ومسؤولي الشبكات بشكل شائع.
- يتم استخدام Nmap للحصول على معلومات حول الهدف.
- تم تشغيل البرنامج النصي على نفس صفحة الويب كما كان من قبل
- اكتب الأمر
nmap –script=http-waf-fingerprint targetweb.com
[email protected]:# nmap --script=http-waf-fingerprint targetwebsite.com Starting Nmap 7.90 ( https://nmap.org ) at 2021-10-10 07:58 IST Nmap scan report for targetsite.com (18.166.248.208) Host is up (0.24s latency). Not shown: 982filtered ports PORT STATE SERVICE 53/tcp open domain 80/tcp open http | http-waf-fingerprint: | Detected WAF | Citrix Netscaler 443/tcp open https 5432/tcp closed postgresql 8080/tcp closed http-proxy Nmap done: 1 IP address (1 host up) scanned in 25.46 secondsبعد استخدام الأمر Nmap أعلاه ، تم اكتشاف جدار الحماية Citrix Netscaler.
# 2. كشف باستخدام الواتواف
Whatwaf هي أداة أمنية لأخذ بصمات تطبيقات الويب واكتشاف وجود أي WAF. هذه الأداة مفيدة لتحديد ما إذا كان تطبيق الويب محميًا بواسطة WAF أثناء تقييمات الأمان.
إذا كانت هذه هي الحالة ، فقد تكون استراتيجيات التجاوز والتجنب مفيدة في مزيد من الاختبار أو استغلال التطبيق عبر الإنترنت.
يعد تجاوز جدار الحماية ، واكتشاف التطبيقات ، وبصمة التطبيق ، وتحديد البرامج كلها استخدامات متكررة لـ WhatWaf. شبكة الاتصال
يعتبر مختبرو القلم ومحترفو الأمان هم المستخدمون المستهدفون لهذا البرنامج.
كيفية تثبيت WhatWaf؟
التثبيت على Kali-Linux
sudo apt install python3-pip git clone https://github.com/ekultek/whatwaf cd whatwaf sudo pip3 install -r requirements.txtعند الإطلاق ، بدون إصدار Python ، يمكننا بسهولة تحديد ملف قابل للتنفيذ:
./whatwaf --help
ومع ذلك ، نظرًا لأننا لم نقم بتثبيت تبعيات Python 2 ، يُنصح بتقديم إصدار Python على وجه التحديد.
python3 ./whatwaf --helpاستخدام الأداة
أداة اكتشاف جدار الحماية Whatwaf سهلة الاستخدام! نحتاج فقط إلى تنفيذ الأمر التالي:

./whatwaf -u https://www.targetsite.comكما ترى أدناه ، اكتشفت هذه الأداة جدار الحماية لعنوان URL لموقع الويب المقدم.
تذكير! - لقد استخدمت موقع الويب الخاص بي لإجراء المسح
┌──(rootkali)-[/home/writer/WhatWaf] └─# ./whatwaf -u https://www.renjith.org ,------. ' .--. ' ,--. .--. ,--. .--.| | | | | | | | | | | |'--' | | | | | | | | | | __. | | |.'.| | | |.'.| | | .' | | | | |___| | ,'. |hat| ,'. |af .---. '--' '--' '--' '--' '---' /><script>alert("WhatWaf?<|>v2.0.3($dev)");</script>%00 [11:12:34][ERROR] you must install psutil first `pip install psutil` to start mining XMR [11:12:34][INFO] checking for updates [11:12:34][WARN] it is highly advised to use a proxy when using WhatWaf. do so by passing the proxy flag (IE `--proxy http://127.0.0.1:9050`) or by passing the Tor flag (IE `--tor`) [11:12:34][INFO] using User-Agent 'whatwaf/2.0.3 (Language=2.7.18; Platform=Linux)' [11:12:34][INFO] using default payloads [11:12:34][INFO] testing connection to target URL before starting attack [11:12:35][SUCCESS] connection succeeded, continuing [11:12:35][INFO] running single web application 'https://www.renjith.org' [11:12:35][WARN] URL does not appear to have a query (parameter), this may interfere with the detection results [11:12:35][INFO] request type: GET [11:12:35][INFO] gathering HTTP responses [11:12:42][INFO] gathering normal response to compare against [11:12:42][INFO] loading firewall detection scripts [11:12:42][INFO] running firewall detection checks [11:12:44][FIREWALL] detected website protection identified as 'Apache Generic' [11:12:44][INFO] starting bypass analysis [11:12:44][INFO] loading payload tampering scripts [11:12:45][INFO] running tampering bypass checks [11:19:09][SUCCESS] apparent working tampers for target: ------------------------------ (#1) description: tamper payload by changing characters into a wildcard example: '/bin/cat /et?/?asswd' load path: content.tampers.randomwildcard ------------------------------كما هو موضح في النتيجة أعلاه ، استجاب خادم الويب لطلبنا وكشف أن جدار الحماية كان Apache. يمكننا أيضًا استخدام خدمة tor للبحث عن WAF ، ولكنها قد تزيد من زمن الوصول.
./whatwaf -u https://www.targetsite.com --torالميزة الرئيسية لأداة Whatwaf هي أنها تحاول تلقائيًا إعطاء الحمولات لتجاوز جدار الحماية المكشوف.
# 3. الكشف باستخدام Wafw00f
الأداة الأكثر شهرة لاكتشاف جدار حماية تطبيق الويب هي Wafw00f. يرسل Wafw00f طلب HTTP إلى جدار حماية تطبيق الويب للتعرف عليه. عند فشل إرسال طلبات HTTP ، يقوم wafw00f بعمل طلب HTTP ضار. في حالة فشل إجراء طلب HTTP ضار ، يفحص wafw00f طلبات HTTP السابقة ويستخدم خوارزمية بسيطة لتحديد ما إذا كان جدار حماية تطبيق الويب يتفاعل مع هجماتنا.
لم يتم تثبيت Wafw00f مسبقًا في توزيعات Kali Linux.
كيفية تثبيت Wafw00f؟
الحزمة المضغوطة متاحة للتنزيل من مصدر GitHub الرسمي.
قم بتنزيل أداة Wafwoof. يمكنك أيضًا استخدام عميل git لاستنساخ المستودع. للحصول على الحزمة ، قم بتشغيل الأوامر:
$ git clone https://github.com/EnableSecurity/wafw00f.gitلتنزيل أداة wafw00f في النظام ، انتقل إلى المجلد أو الدليل wafw00f وقم بتنفيذ الأمر التالي.
$ python setup.py installستتم معالجة ملف الإعداد ، وسيتم تثبيت wafw00f في النظام.
استخدام الأداة
لاستخدام هذه الأداة ، قم بتشغيل هذا الأمر.
$ wafw00f <url>تذكير - قم فقط بفحص مواقع الويب التي يُسمح لك باختبارها
┌──(rootkali)-[/home/writer/wafw00f] └─# wafw00f https://webhashes.com ______ / \ ( Woof! ) \ ____/ ) ,, ) (_ .-. - _______ ( |__| ()``; |==|_______) .)|__| / (' /|\ ( |__| ( / ) / | \ . |__| \(_)_)) / | \ |__| ~ WAFW00F : v2.1.0 ~ The Web Application Firewall Fingerprinting Toolkit [*] Checking https://whatismyip.com [+] The site https://whatismyip.com is behind Cloudflare (Cloudflare Inc.) WAF. [~] Number of requests : 2سيء للغاية ، تم اكتشاف جدار الحماية!
سنحاول موقعًا مستهدفًا مختلفًا لغرض المناقشة.
┌──(rootkali)-[/home/writer/wafw00f] └─# wafw00f https://renjith.org ______ / \ ( Woof! ) \ ____/ ) ,, ) (_ .-. - _______ ( |__| ()``; |==|_______) .)|__| / (' /|\ ( |__| ( / ) / | \ . |__| \(_)_)) / | \ |__| ~ WAFW00F : v2.1.0 ~ The Web Application Firewall Fingerprinting Toolkit [*] Checking https://renjith.org [+] Generic Detection results: [-] No WAF detected by the generic detection [~] Number of requests: 7لم يتم الكشف عن جدار حماية هذه المرة.
ولاستخدامه في الوضع المطول ، قم بتشغيل الأمر التالي.
wafw00f <url> -vيمكنك رؤية بعض الإمكانات الإضافية لهذه الأداة من خلال تنفيذ هذا الأمر.
wafw00f <url> --helpتغليف
في هذه المقالة ، نظرنا في الاستراتيجيات والأدوات المختلفة لاكتشاف جدران الحماية لتطبيقات الويب. يعد هذا نشاطًا مهمًا يجب إجراؤه أثناء مرحلة جمع المعلومات لكل اختبار لاختراق تطبيقات الويب.
علاوة على ذلك ، فإن معرفة أن WAF في مكانه يسمح لمختبري الاختراق بتجربة طرق مختلفة للالتفاف على الدفاعات واستغلال أي ثغرات في التطبيق عبر الإنترنت.
وفقًا لباحث القرصنة الأخلاقي ، فإن وجود جدار حماية لتطبيق الويب (WAF) ضروري بشكل متزايد. من المهم دائمًا تحليل سجلات تطبيق الويب لاكتشاف الهجمات الجديدة التي تحدث على خادم تطبيق الويب الخلفي. يتيح لك هذا تخصيص القواعد في جدار حماية تطبيق الويب الخاص بك لتوفير أعلى مستوى من الحماية.
قد تكون مهتمًا أيضًا بقراءة: نقاط الضعف باستخدام Nikto Scanner.
