Webサイトを保護しているWAFを見つける方法は?
公開: 2021-10-11攻撃者は、フィンガープリントを開始する前に、ネットワークのどこでWAFが通常使用されているかを知ることをお勧めします。
侵入テスターは、攻撃の結果に影響を与える可能性があるため、Webアプリケーションエンゲージメントを開始する前にWAFを認識している必要があります。
しかしその前に…
WAFとは何ですか?
WAF(Webアプリケーションファイアウォール)は、Webサイトのセキュリティにおいて重要な役割を果たします。 トラフィックをフィルタリングおよび監視します。 Webアプリケーションファイアウォールは、主要な欠陥に対する保護を提供します。 多くの組織は、Webアプリケーションファイアウォールを含むようにインフラストラクチャを最新化しています。 倫理的なハッキングの専門家によると、Webアプリケーションファイアウォールはそれ自体でセキュリティの問題を修正することはできません。 外部の脅威を認識してブロックするには、適切な構成が必要です。
WAFは、特定のオンラインアプリケーションのコンテンツをフィルタリングできるという点で従来のファイアウォールとは異なりますが、従来のファイアウォールはサーバー間の安全バリアとして機能します。

HTTPインタラクションには、一連のルールが適用されます。 これらのルールは、クロスサイトスクリプティングや一般的なSQLインジェクションなどの一般的な脆弱性に対処します。
インターネット上には、Webアプリケーションの背後にあるファイアウォールを発見できる無料のオープンソースツールがたくさんあります。
また、この記事では、WAFを検出するために使用できるアプローチとツールについて説明します。
注意:このチュートリアルでは、詳細を列挙するために自分のサイトを使用しました。 所有者の事前の許可なしに、Webサイトでスキャンやその他のハッキング活動を実行しないでください。
手動検出
TELNETを使用した検出
Telnetは、主にネットワーク管理者と侵入テスターによって使用されます。 前述のように、Telnetを使用すると、任意のポートを介してリモートホストに接続できます。
- HTTPパラメータは、多くの場合、Webアプリケーションファイアウォールによって応答ヘッダーに残されます(または挿入されます)。
- Telnetを使用して、フィンガープリントで使用されるサーバーやCookieなどの基本的な収集情報を取得できます。
-
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と記述し、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.これは、Webサイトがホストされているサーバーと、ターゲットポート80でtelnetを使用した後にWebサイトが作成されたバックエンド言語を示します。
一部のWAFシステムでは、ヘッダーを変更できます。また、Webサーバーが標準のものとは異なるHTTP応答を送信する可能性もあります。
上記の結果に示されているように、Webサーバーは要求に応答し、ファイアウォール/エッジゲートウェイがVarnishであることを明らかにしました。
自動検出
#1。 NMAPを使用した検出
Webアプリケーションファイアウォールを識別できるスクリプトを持つNmapも、この目的に使用できます。
- Nmapは、多くのペンテスターやネットワーク管理者が一般的に利用しているセキュリティ評価ツールです。
- Nmapは、ターゲットに関する情報を取得するために使用されます。
- スクリプトは以前と同じWebページに対して実行されました
- コマンド
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コマンドを使用した後、CitrixNetscalerファイアウォールが検出されました。
#2。 Whatwafを使用した検出
Whatwafは、Webアプリのフィンガープリントを作成し、WAFの存在を検出するためのセキュリティツールです。 このツールは、セキュリティ評価中にWebアプリケーションが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以下に示すように、このツールは、提供されたWebサイトの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 ------------------------------上記の結果に示されているように、Webサーバーは要求に応答し、ファイアウォールがApacheであることを明らかにしました。 Torサービスを使用してWAFをスキャンすることもできますが、待ち時間が長くなる可能性があります。

./whatwaf -u https://www.targetsite.com --torWhatwafツールの主な利点は、明らかにされたファイアウォールをバイパスするようにペイロードを自動的に提供しようとすることです。
#3。 Wafw00fを使用した検出
Webアプリケーションファイアウォールを検出するための最もよく知られているツールはWafw00fです。 Wafw00fは、HTTPリクエストをWebアプリケーションファイアウォールに送信して識別します。 HTTPリクエストの送信に失敗すると、wafw00fは悪意のあるHTTPリクエストを作成します。 悪意のあるHTTPリクエストの作成が失敗した場合、wafw00fは以前のHTTPリクエストを調べ、単純なアルゴリズムを使用して、Webアプリケーションファイアウォールが攻撃に反応するかどうかを判断します。
Wafw00fはKaliLinuxディストリビューションにプリインストールされていません。
Wafw00fをインストールするにはどうすればいいですか?
zipパッケージは、公式のGitHubソースからダウンロードできます。
Wafwoofツールをダウンロードします。 gitクライアントを使用してリポジトリのクローンを作成することもできます。 パッケージを入手するには、次のコマンドを実行します。
$ git clone https://github.com/EnableSecurity/wafw00f.gitシステムにwafw00fツールをダウンロードするには、wafw00fフォルダーまたはディレクトリーに移動して、次のコマンドを実行します。
$ python setup.py installセットアップファイルが処理され、wafw00fがシステムにインストールされます。
ツールの使用法
このツールを使用するには、このコマンドを実行します。
$ wafw00f <url>注意–テストが許可されているWebサイトのみをスキャンしてください
┌──(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残念ながら、ファイアウォールが検出されました。
議論の目的で、別のターゲットWebサイトを試してみます。
┌──(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まとめ
この記事では、Webアプリケーションファイアウォールを検出するためのさまざまな戦略とツールについて説明しました。 これは、すべてのWebアプリケーション侵入テストの情報収集段階で実行する必要がある重要なアクティビティです。
さらに、WAFが導入されていることを知っていると、侵入テスターはさまざまなアプローチを試して防御を回避し、オンラインアプリケーションの穴を悪用することができます。
倫理的なハッキング研究者によると、Webアプリケーションファイアウォール(WAF)を持つことがますます必要になっています。 Webアプリケーションログを分析して、バックエンドWebアプリケーションサーバーで発生する新しい攻撃を検出することは常に重要です。 これにより、Webアプリケーションファイアウォールのルールをカスタマイズして、最高レベルの保護を提供できます。
また、以下を読むこともできます:NiktoScannerを使用した脆弱性。
