この一連の記事では、自動ツールを使用せずにテスト Web アプリケーションに手動で侵入する方法を示します。世界中のほとんどの企業は、Web アプリケーション スキャナーを実行するのではなく、Web アプリケーションの手動テストに重点を置いています。これは、知識とスキルが制限され、テストで脆弱性を発見するビジョンに影響を与えるためです。
NOWASP Mutiliadae
BURP Proxy
NOWASP Mutiliadae は、40 を超える脆弱性を含む Web アプリケーションです。これには、OWASP のトップ 10 の脆弱性だけでなく、他の組織のリストの脆弱性も含まれています。 Web アプリケーション スキャナー (Vega、Acunetix、Nikto、w3af など) を使用してスキャンできる小規模および中規模の脆弱性が存在します。このプログラムの最新バージョンを使用します。このプログラムはオブジェクト指向の方法で設計されており、Web アプリケーションのすべての脆弱性をより深く理解できるようになります。
私が使用するもう 1 つのツールは Burp Proxy です。これは、クライアント (Firefox や Chrome などのブラウザ プログラム) と Web サイトまたはサーバーの間のプロキシです。これはローカル マシン上で実行され、ブラウザとターゲット マシン (この場合、ターゲット マシンは NOWASP Mutiliadae) 間のアウトバウンドまたはインバウンド トラフィックを傍受します。このツールの主な目的は、サーバーへのアクセスをリクエストすると、Burp Suiteがマシンからサーバーへのリクエストをインターセプトし、必要に応じてリクエストの内容を変更できることです。また、リクエストのタイプ(GET リクエストか POST リクエストか、その他のタイプのリクエストか)を表示することもできます。 Burpには、Webサイトに送信したパラメータのリストを表示する別の機能もあります。必要に応じてリクエストの内容を操作して、Web アプリケーションのセキュリティをチェックできます。リクエストをインターセプトするには、Burp Proxy リスナーが 127.0.0.1 ローカルホストのポート 8080 でリッスンするように設定する必要があります。次に、ブラウザのプロキシ構成も設定する必要があります。完了後、[スイート] => [プロキシ] タブ => [インターセプト] を選択してインターセプトを有効にします。すべてのタブとその機能については詳しく説明しません。 Burp のマニュアルとドキュメントをチェックしてください。
始める前に、Web ブラウザーでは見ることができないバックエンドで Web がどのように動作するかを理解しておく必要があります。 Web サイトにアクセスすると、ブラウザーは Web サーバー上のファイルにアクセスします。このファイルには、HTML、PHP、js (JavaScript)、CSS、ASPX などが含まれます。 Burp Suite を使用すると、次の図に示すリクエストを観察できます。リクエストを表示するには、Burp とブラウザを上記のように設定し、次に示す HTML5 ストレージ ページにアクセスしました。
ハイパーリンクをクリックすると、Burp は次のようにリクエストをインターセプトします。これはサーバー上のindex.phpページにアクセスするリクエストであることがわかります。ここでのパラメータは page で、パラメータの値は html5-storage.PHP です。
GET /chintan/index.php?page=html5-storage.php HTTP/1.1Host: localhostUser-Agent: Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateReferer: http://localhost/chintan/Cookie: showhints=0; username=chintan; uid=19; PHPSESSID=j53u16lcdkjq0eec6nfijphkd4Connection: keep-alive
このページにアクセスしたいので、このリクエストを転送します。応答タブを見ると、「200 OK」という応答を受け取ったことがわかります。
HTTP/1.1 200 OKDate: Sat, 28 Dec 2013 23:30:08 GMTServer: Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7X-Powered-By: PHP/5.4.7Logged-In-User: chintanKeep-Alive: timeout=5, max=100Connection: Keep-AliveContent-Type: text/htmlContent-Length: 46178
「200 OK」は、リクエストが正常に実行され、レスポンスが返されたことを意味します。ブラウザを観察すると、すべての Web ページが読み込まれていることがわかります。
注: リクエストを送信するたびに、HTML ファイルが動的に作成されます。バックグラウンドの PHP ファイルはリクエストを受け取り、HTML ファイルを作成してブラウザに送信します。ブラウザはページのレンダリングを担当します。 Web ブラウザに表示されるのは Web ページではなく、ページがグラフィカルにどのように表示されるべきかをブラウザが解釈したものです。
「Web ブラウザーで表示される画像を見るだけでなく、常にソース コードで Web ページを表示する練習をして、JavaScript にできるだけ慣れるようにしてください。 、XML、およびすべての HTML タグ。
テストを開始するときに、どこから始めればよいかという質問が初心者によくあります。私たちは皆、ハッカーの仕事サイクルを知っています。最初の段階は情報収集または調査です。この例では、すべての Web ページを閲覧することなく、Web サイトとサーバーに関するできるだけ多くの情報を取得します。上記のリクエストとレスポンスに気づいた場合は、何かがあるはずです。以下の情報があります:
情報を収集する方法はたくさんあります。人々は主に、Google、Recon-ng フレームワークなどのアプリケーション セキュリティ テスト ツールを使用します。 Burp Suite のスパイダーを使用して、ターゲットのすべてのページとフォルダーを一覧表示します。まず、履歴を開き、最初にアクセスしたページを選択します。それを右クリックし、スコープに追加オプションを選択します。
ターゲットタブを開くと、Web サイトの範囲が表示されます。私の場合は、以下の画像に示すように localhost です。
「あなたが訪問したことのある、あなたが知らない他の Web サイトもリストされます。たとえば、ある Web サイトがあります。「いいね」ボタンや「共有」ボタンがあります。ボタンをクリックするか、Web サイト広告へのリンクがあります。特定の項目を削除するには、フィルター バーをクリックし、下の画像に従ってオプションを設定し、空白の任意の場所をクリックすると、変更が適用されます。」 >
次に、前述したように、このホストをクロールする必要があります。そこで、localhost を右クリックし、「このホストをスパイダー」オプションを選択しました。ターゲット アプリケーションにフォームがある場合は、ボックスがポップアップ表示され、フォームの値を入力して送信する必要があります。
クリックすると、ターゲットホストのクロールが開始されます。スパイダー タブを開くと、下の画像のようなものが表示されます。
「リクエストキューが 0 に達し、十分な時間継続すると、Web アプリケーションのクロールが完了します。」
次に、ターゲット タブをクリックすると、Web アプリケーションのすべてのページのリストが表示されます。いくつかの新しいページが追加されます。
特別な設定や構成はありません。私の構成は次のとおりです。
これを設定した理由は、対象のホストが他の Web サイトの共有ボタンや広告などにリンクされている可能性があるためです。他の Web サイトからの干渉なしに、自分とターゲット ホスト間のすべての通信を傍受したいと考えています。そこで、ターゲット スコープ内のリクエストのみをインターセプトするために、[ターゲット スコープ内にあります] チェックボックスをオンにしました。また、サーバーから返されるすべての応答をインターセプトして、要求が処理されたか、別の場所にリダイレクトされたかなどを確認したいと考えています。そこで、すべての応答を傍受するチェックボックスをオンにしました。
このシリーズの次のパートでは、アプリケーションのエントリ ポイントと注入ポイントを特定する方法、およびサーバーが入力をエンコードする方法を説明します。
http://sourceforge.net/projects/mutillidae/
http://portswigger.net/burp/
翻訳元: http://resources.infosecinstitute.com/manual-web-application-penetration-testing-introduction/