壊れた認証のテスト
アプリケーションに関連する認証機能が正しく実装されていない場合、ハッカーはパスワードやセッションIDを危険にさらしたり、他のユーザーの資格情報を使用して他の実装上の欠陥を悪用したりできます。
簡単な図を使用して、この欠陥の脅威エージェント、攻撃ベクトル、セキュリティの弱点、技術的影響、およびビジネスへの影響を理解しましょう。
例
An e-commerce application supports URL rewriting, putting session IDs in the URL −
http://example.com/sale/saleitems/jsessionid=2P0OC2JSNDLPSKHCJUN2JV/?item=laptop
サイトの認証されたユーザーは、割引販売について知るためにURLを友達に転送します。彼は、ユーザーがセッションIDも提供していることを知らずに、上記のリンクを電子メールで送信します。彼の友人がリンクを使用するとき、彼らは彼のセッションとクレジットカードを使用します。
ハンズオン
Step 1− Webgoatにログインし、「セッション管理の欠陥」セクションに移動します。Cookieをスプーフィングして、認証をバイパスしましょう。以下はシナリオのスナップショットです。
Step 2 −資格情報webgoat / webgoatを使用してログインすると、Burp Suiteから、認証が成功すると、JSESSION IDはC8F3177CCAFF380441ABF71090748F2Eであり、AuthCookie = 65432ubphcfxであることがわかります。
Step 3 −資格情報アスペクト/アスペクトを使用してログインすると、認証が成功すると、JSESSION IDはC8F3177CCAFF380441ABF71090748F2Eであり、AuthCookie = 65432udfqtbであることがBurpSuiteからわかります。
Step 4−次に、AuthCookieパターンを分析する必要があります。前半の「65432」は両方の認証に共通です。したがって、ここで、authcookie値の最後の部分(webgoatユーザーの場合は-ubphcfx、アスペクトユーザーの場合はudfqtbなど)を分析することに関心があります。
Step 5− AuthCookieの値を詳しく見ると、最後の部分はユーザー名と同じ長さです。したがって、ユーザー名が何らかの暗号化方式で使用されていることは明らかです。試行錯誤/ブルートフォースメカニズムの結果、ユーザー名を逆にした後、webgoatが見つかりました。最終的にtaogbewになり、その後、前のアルファベット文字がAuthCookieとして使用されます。すなわちubphcfx。
Step 6−このCookie値を渡して、何が起こるかを見てみましょう。ユーザーwebgoatとして認証したら、AuthCookie値を変更して、ユーザーAliceのAuthCookieを見つけ、手順4と手順5を実行してユーザーAliceをモックします。
防止メカニズム
OWASPのアプリケーションセキュリティ検証標準で定義されているすべての認証およびセッション管理要件を満たすように、強力な認証およびセッション管理制御を開発します。
開発者は、セッションIDを盗むために使用される可能性のあるXSSの欠陥を回避する必要があります。