「How I was Able To Bypass The Admin Panel」からBroken Access Controlを学ぶ

ソース:

https://medium.com/@mohameddiv77/how-i-was-able-to-bypass-the-admin-panel-9a5a81e2ec11

 

脆弱性:Broken Access Control

 

訳:

プライバシー保護のため、プログラムを redacted.com と呼びましょう。
まず、次のような偵察プロセスをshodan で開始し。
org:”redacted” || ssl:”redacted.com” を選択し、次のようなフィルターを使用します。
http.title
|| port 、ポート 8080 で実行されており、基本認証を持つ IP が見つかる。

 

基本認証

 

では、それをバイパスしてみましょ。

 

1. デフォルトの認証情報

この状況では、最初に次のようなデフォルトの資格情報を確認します。

管理者: 管理者

管理者のパスワード

ユーザー:ユーザー

しかし、ここでは何も機能せず、Googleでパネル名のデフォルトの資格情報を検索しましたが、何も見つかりませんでした。

しかし、パネルに認証失敗エラーが表示されたとき:

 

認証エラー画面

 

ユーザー名とパスワードは、ここにインストールされる製品/アプリケーションに付属するデフォルトの資格情報であると思いました、PIN コード シリアル番号 製品番号 | バージョンなど
ご自宅の WiFiバイスと同様に、デフォルトの
PIN コードが付属しているように。

 

2. ディレクトリのファジング

次のステップに進み、 FFUFを使用すると、興味深い結果が得られます。 カスタム ワードリストを使用してディレクトリ ファジングを。

 

FFUFF: 

github.com

最初のファジング

 

http://:8080/api/v1/roles/ に移動しますが、何も見つかりませんでした。次に http://:8080/api/v1/users/ に移動して、パネルの唯一のユーザー名を見つけました。

 

ユーザーパス

 

ユーザー名を取得したので、それを使って何ができるかを見てみましょう。

 

3. ブルートフォース

私はBurpSuiteを発射してブルートフォース攻撃のログインリクエストをキャプチャしました。 パスワード:12345678を入力し ユーザー名:admin 、リクエストをキャプチャします。

 

ログインリクエス

 

リクエストに は認証情報を含むAuthorization ヘッダーが含まれてて。
ユーザー名の値 (admin) は表示されますが、入力したパスワードの値 (12345678) が表示されないでゲス。
アプリケーションが何らかの暗号化を行っているようです(わかりませんゲス)。
なので総当たり攻撃はできなさそー。

 

ディレクトリファジングに再度戻って、さらに結果を取得し。
今回は /api/v1/ ディレクトリの下でファジングを開始し、新しい結果を取得し。

 

2回目のファジング

 

OK、http://:8080/api/v1/devices/ に移動しましょう。

 

上記の URL を開いても何も見つかりませんでした
が、別のディレクトリを見つけました:
/api/v1/devices/snapshot ..を。

 

バイスパス

 

http://:8080/api/1/devices/1/snapshot にアクセスすると、ダウンロードされたファイル(圧縮)があり。

 

圧縮ファイル

 

このファイル /tmp/hw_info.txt を見つけるまで、すべてのファイルを開いて役立つものを探し
その名前から 、製品 or アプリケーションに関する情報が含まれているようで。

 

hw_info.txt

 

ファイルには、製品 or アプリケーションのシリアル番号と製品番号が含まれていて。

これらの数字をユーザー名 (admin) のパスワードとして使用すればよいのではないかと思いました。
試してみましょう…ログインに戻ります。

 

user:admin &pass:<Product number> -> Username||password is wrong

user:admin & pass:<Serial number> -> ( BooOooM )Login Successful ..

 

Login successful

 

ほなほな。