Bagaimana Menemukan WAF Mana yang Melindungi Situs Web?

Diterbitkan: 2021-10-11

Itu selalu merupakan ide yang baik bagi penyerang untuk mengetahui di mana WAF biasanya digunakan pada jaringan sebelum mereka memulai sidik jari.

Penguji penetrasi harus mengetahui WAF sebelum memulai keterlibatan aplikasi web karena hasil serangan mereka mungkin terpengaruh.

Tapi sebelum itu…

Apa itu WAF?

WAF (Web Application Firewall) memainkan peran penting dalam keamanan situs web. Mereka menyaring dan memantau lalu lintas. Firewall Aplikasi Web memberikan perlindungan terhadap kelemahan utama. Banyak organisasi memodernisasi infrastruktur mereka untuk menyertakan firewall aplikasi web. Menurut pakar peretasan etis, firewall aplikasi web tidak dapat memperbaiki masalah keamanannya sendiri; konfigurasi yang memadai diperlukan untuk mengenali dan memblokir ancaman eksternal.

WAF berbeda dari firewall tradisional karena dapat menyaring konten aplikasi online tertentu, sedangkan firewall tradisional bertindak sebagai penghalang keamanan antar server.

Interaksi HTTP tunduk pada seperangkat aturan. Aturan ini mengatasi kerentanan khas seperti skrip lintas situs dan injeksi SQL secara umum.

Ada banyak alat gratis dan sumber terbuka di internet yang dapat menemukan firewall di balik aplikasi web.

Dan dalam artikel ini, kita akan melihat pendekatan dan alat yang dapat digunakan untuk menemukan WAF.

Harap diperhatikan: Dalam tutorial ini, saya telah menggunakan situs saya sendiri untuk menghitung detailnya. Jangan melakukan pemindaian atau aktivitas peretasan lainnya di situs web mana pun tanpa izin sebelumnya dari pemiliknya.

Penemuan Manual

Mendeteksi menggunakan TELNET

Telnet terutama digunakan oleh administrator jaringan dan penguji penetrasi. Telnet memungkinkan Anda untuk terhubung ke host jarak jauh melalui port apa pun, seperti yang dinyatakan sebelumnya.

  • Parameter HTTP sering dibiarkan (atau disisipkan) di header respons oleh firewall aplikasi web.
  • Telnet dapat digunakan untuk memperoleh informasi pengumpulan dasar seperti server dan cookie yang digunakan dalam sidik jari.
  • Ketik Telnet Targetwebsite.com 80
 [email protected]: # telnet Targetwebsite.com 80 Trying 18.166.248.208... Connected to Targetwebsite.com. Escape character is '^]'.

Setelah menjalankan perintah di atas, tulis HEAD / HTTP / 1.1 dan tekan tombol enter.

 [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.

Ini menunjukkan server tempat situs web di-host dan bahasa back-end tempat situs itu dibuat setelah menggunakan telnet pada port target 80.

Beberapa sistem WAF memungkinkan header untuk dimodifikasi, dan mereka juga dapat menyebabkan server web mengirim balasan HTTP yang berbeda dari yang standar.

Seperti yang ditunjukkan pada hasil di atas, server web menanggapi permintaan kami dan mengungkapkan bahwa gateway firewall/edge adalah Varnish.

Penemuan Otomatis

#1. Mendeteksi menggunakan NMAP

Nmap, yang memiliki skrip yang dapat mengidentifikasi firewall aplikasi web, juga dapat digunakan untuk tujuan ini.

  • Nmap adalah alat penilaian keamanan yang biasanya digunakan oleh banyak penguji pena dan administrator jaringan.
  • Nmap digunakan untuk mendapatkan informasi tentang target.
  • Script dijalankan terhadap halaman web yang sama seperti sebelumnya
  • Ketik perintah 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

Setelah menggunakan perintah Nmap di atas, firewall Citrix Netscaler terdeteksi.

#2. Mendeteksi menggunakan Whatwaf

Whatwaf adalah alat keamanan untuk aplikasi web sidik jari dan mendeteksi keberadaan WAF apa pun. Alat ini berguna untuk menentukan apakah aplikasi web dilindungi oleh WAF selama penilaian keamanan.

Jika hal ini terjadi, melewati dan menghindari strategi dapat membantu dalam pengujian lebih lanjut atau mengeksploitasi aplikasi online.

Melewati firewall, deteksi aplikasi, sidik jari aplikasi, dan identifikasi perangkat lunak semuanya sering digunakan untuk WhatWaf. Jaringan
Penguji pena dan profesional keamanan adalah pengguna yang dituju dari program ini.

Bagaimana cara menginstal WhatWaf?

Instalasi di Kali-Linux

 sudo apt install python3-pip git clone https://github.com/ekultek/whatwaf cd whatwaf sudo pip3 install -r requirements.txt

Saat peluncuran, tanpa versi Python, kita dapat dengan mudah menentukan file yang dapat dieksekusi:

 ./whatwaf --help

Namun, karena kami tidak menginstal dependensi Python 2, Anda disarankan untuk menyediakan versi Python secara khusus.

 python3 ./whatwaf --help

Penggunaan Alat

Alat pendeteksi firewall Whatwaf mudah digunakan! Kita hanya perlu menjalankan perintah berikut:

 ./whatwaf -u https://www.targetsite.com

Seperti yang Anda lihat di bawah, alat ini mendeteksi firewall untuk URL situs web yang disediakan.

Pengingat! – Saya menggunakan situs saya sendiri untuk pemindaian

 ┌──(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 ------------------------------

Seperti yang ditunjukkan pada hasil di atas, server web menanggapi permintaan kami dan mengungkapkan bahwa firewallnya adalah Apache. Kami juga dapat menggunakan layanan tor untuk memindai WAF, tetapi ini dapat meningkatkan latensi.

 ./whatwaf -u https://www.targetsite.com --tor

Keuntungan utama dari alat Whatwaf adalah, ia secara otomatis mencoba memberikan muatan untuk melewati firewall yang terungkap.

#3. Mendeteksi Menggunakan Wafw00f

Alat yang paling terkenal untuk mendeteksi firewall aplikasi web adalah Wafw00f. Wafw00f mengirimkan permintaan HTTP ke firewall aplikasi web untuk mengidentifikasinya. Saat mengirim permintaan HTTP gagal, wafw00f membuat permintaan HTTP berbahaya. Jika membuat permintaan HTTP berbahaya gagal, wafw00f memeriksa permintaan HTTP sebelumnya dan menggunakan algoritme sederhana untuk menentukan apakah firewall aplikasi web bereaksi terhadap serangan kami.

Wafw00f tidak diinstal sebelumnya di distribusi Kali Linux.

Bagaimana cara menginstal Wafw00f?

Paket zip tersedia untuk diunduh dari sumber resmi GitHub.

Unduh Alat Wafwoof. Anda juga dapat menggunakan klien git untuk mengkloning repositori. Untuk mendapatkan paket, jalankan perintah:

 $ git clone https://github.com/EnableSecurity/wafw00f.git

Untuk mengunduh alat wafw00f di sistem, navigasikan ke folder atau direktori wafw00f dan lakukan perintah berikut.

 $ python setup.py install

File setup akan diproses, dan wafw00f akan diinstal di sistem.

Penggunaan Alat

Untuk menggunakan alat ini, jalankan perintah ini.

 $ wafw00f <url>

PENGINGAT – Hanya pindai situs web yang diizinkan untuk Anda uji

 ┌──(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

Sayang sekali, firewall terdeteksi!

Kami akan mencoba situs web target yang berbeda untuk tujuan diskusi.

 ┌──(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

Tidak ada Firewall yang terdeteksi kali ini.

Dan untuk menggunakannya dalam mode verbose, jalankan perintah berikut.

 wafw00f <url> -v

Anda dapat melihat beberapa kemampuan tambahan dari utilitas ini dengan menjalankan perintah ini.

 wafw00f <url> --help

Membungkus

Pada artikel ini, kami melihat berbagai strategi dan alat untuk mendeteksi firewall aplikasi web. Ini adalah aktivitas penting yang harus dilakukan selama tahap pengumpulan informasi dari setiap pengujian penetrasi aplikasi web.

Selain itu, mengetahui bahwa WAF tersedia memungkinkan penguji penetrasi untuk mencoba berbagai pendekatan untuk mengatasi pertahanan dan mengeksploitasi lubang apa pun di aplikasi online.

Menurut seorang peneliti peretasan etis, memiliki firewall aplikasi web (WAF) semakin diperlukan. Menganalisis log aplikasi web Anda untuk mendeteksi serangan baru yang terjadi pada server aplikasi web back-end selalu penting. Ini memungkinkan Anda untuk menyesuaikan aturan di firewall aplikasi web Anda untuk memberikan tingkat perlindungan tertinggi.

Anda mungkin juga tertarik untuk membaca: Kerentanan menggunakan Nikto Scanner.