ソース:
脆弱性:識別と認証の失敗
訳:
テストは完全にブラックボックスであり、顧客から提供される情報はゼロです。
私たちが知っている唯一のことは、redacted.com とサブドメイン my.redacted.com のテストが許可されているということです。
私は、潜在的なエントリ ポイントを見つけるために、Web サイトを積極的にスキャンしてナビゲートし始めます。
80と443以外に開いているポートはありません。
そこで、gobuster でディレクトリ ブルートフォース攻撃を開始すると、すぐに管理パネルに 403 — Forbidden 応答が返されるのが表示されます。
これを見て、Web サイトに移動して、それが実際に 403 であることを確認し、潜在的なバイパスのために Burp Suite でリクエストをキャプチャします。
私の心の中では、内部 IP アドレスの ACL があるため、これをバイパスすることは不可能であると考えています。
それでも、403 をバイパスするために次のことを試しました。
- HTTP メソッドのファジング (GET、POST、TRACE、HEAD など)
- HTTP ヘッダーのファジング (X-Originating-IP: 127.0.0.1、X-Forwarded-For: 127.0.0.1 など)
- パスファジング/強制ブラウジング (https://redacted.com/admin/index.html、https://redacted.com/admin/./index.html など)
- プロトコルバージョンの変更(HTTP 1.2からHTTP 1.1へのダウングレードなど)
- 文字列ターミネータ (%00、0x00、//、;、%、!、?、[] など) - パスの末尾およびパス内に追加します。
早い話が、これらの方法はどれもうまくいきませんでした。
そのため、セキュリティ制御は、リクエスト内のコンポーネントの文字通りのスペルと大文字小文字を中心に構築される場合があることを覚えています。
そこで、「大文字と小文字の切り替え」テクニックを試してみました。
ばかげているように聞こえるかもしれませんが、実際にはうまくいきました。
要約すると次のようになります。
- https://redacted.com/admin -> 403 禁止
- https://redacted.com/Admin -> 200 OK
- https://redacted.com/aDmin -> 200 OK
いずれかの文字を大文字に切り替えると、制限が回避されます。
管理パネルへのログイン ページが表示されます。
これは幸運でしたが、それでも、さまざまな攻撃 (パスワード スプレー、ブルート フォースなど) を試すことができるようになりました。
私たちがテストしている会社は小規模ではなく、漏洩したデータベース (リーク チェック、リーク ピークなど) からかなりの数の従業員の資格情報を収集していました。
ただし、これは管理パネルであるため、通常のテストを実行します。
- ユーザー名の列挙があるかどうかを確認する
- ログイン制限がないか確認する
- リクエストの数によりブロックされる可能性のある WAF を確認してください
簡単に言えば、どちらもありません。
ユーザー名を列挙することはできませんが、いかなる種類のレート制限もなく。
上記を考慮して、rockyou.txt をロードし、「admin」アカウントのパスワードの総当たり攻撃を開始します。 数千回の試行の後、次のことがわかります。
管理者アカウントの有効な認証情報が見つかりました。 Web サイトの管理パネルに移動し、認証すれば準備完了です。
ほなほな。