shikata ga nai

Private? There is no such things.

Story of an interesting bug.を訳してみた

Hello there, ('ω')ノ

 

興味深いバグの話を。

 

脆弱性:

 レート制限の欠如

 DoS

 

記事:

 https://vedanttekale20.medium.com/story-of-an-interesting-bug-de07fbef4017

 

ターゲットについて:

ターゲットをtarget.comと呼ぶことに。

このプログラムを約1か月間取り組んでいて。

ターゲットに関するすべての調整をほぼ行い、反映されたXSSや。

ブラインドXSS、SSRF、情報開示、保存されたXSSなどの。

いくつかの本当に素晴らしいバグをすでに見つけていて。

 

発見:

target.comのサブドメインのすべてのスクリーンショットを調べていたところ。

サインアップページがある1つのサブドメインに気づいたので。

そのサブドメインを開くことに。


このサブドメインにはカスタマーポータルアプリケーションがあったので。

アカウントを作成してから、すべての機能の列挙を開始して。

XSS、オープンリダイレクト、SSRF、IDORなどのバグを見つけようとしたものの。

何も機能せず。

 

重大度の高いバグが見つからない場合は。

ここでぶら下がっているバグを見つけてみるべきだとおもって。

不適切なセッション処理やレート制限なしなどのバグを見つけ始めることに。

レート制限のないバグを見つけることを期待して。

パスワードを忘れた機能にアクセスしてみると。

最初にトークンを監視するためだけに。

パスワードのリセットリンクを1つ要求して。

ターゲットからパスワードのリセットメールを開いたところ。

アプリケーションがランダムな8桁のパスワードの新しいパスワードを。

提供することがわかって。

このような動作を見たのは初めてのことで。

 

次に、そのリセットパスワード機能に対してレート制限なしの攻撃を実行するのに。

リクエストを88回繰り返そうとするとレート制限がなく。

ターゲットから88回のリセットパスワードメールが届いて。

少なくともこのサブドメインにバグが見つかったのは嬉しくて。

 

しばらくして、最初のパスワードのリセットリンクから。

コピーしたパスワードを使用してポータルにログインしようとしたところ。

ログインできず。


さらにしばらくして、最後にリセットしたパスワードメールから。

パスワードをコピーしてログインしようとすると、ログインできて。

 

つまり、パスワードをリセットするたびに。

ユーザのパスワードが変更されて。

さらに悪いことにアプリケーションにはパスワードを忘れた場合の。

レート制限がなかったため。

そのユーザがアカウントをロックアウトするような状況が発生したことで。

また、古いパスワードでログインすると。

パスワードのリセット要求ごとに新しいパスワードが変更されて。

この奇妙な動作のために、レート制限がないなどの単純なバグが。

今では大きな影響を及ぼしていて。

 

Best regards, (^^ゞ

Rate Limit Bypassing Allowing Identity Spoofingを訳してみた

Hello there, ('ω')ノ

 

IDスプーフィングを許可するレート制限バイパス

 

脆弱性:

 レート制限バイパス

 OTPバイパス

 

記事:

 https://0xt4144t.medium.com/rate-limit-bypassing-allowing-identity-spoofing-789b2fe2efa8

 

ツール:

 Burp Suite

 

HackerOneでプログラムを探しているときに。

アプリケーションの認証済みリクエストの調査を開始するために。

アカウントを登録する必要があって。

自分の電話番号で登録しようとしましたが。

特定の国の電話番号しか受け付けないため、自分の電話番号を使用できず。

電話番号とアカウントを取得するためだけに。

この時点から攻撃を開始する必要があって。

 

コントロール:

アカウントを登録するために、アプリケーションは登録された電話番号に。

SMSを送信して、検証機能に3つの制御を強制して。

 

1.1分あたり60リクエストのみを許可するレート制限制御。

2.レート制限を超えると、IPと電話はしばらくの間ブロックされて。

3.6桁の数字は、ブルートフォースをより困難にして。

 

f:id:ThisIsOne:20211015131401p:plain

 

そのため、許可される試行回数を増やして。

OTP値をユーザの電話に送信するために適用されるレート制限を。

バイパスすることに。

 

バイパス:

レート制限は、ブルートフォース、リソース枯渇攻撃や。

DDOS(分散型サービス拒否)などの攻撃を軽減するために。

API開発者によって設定されるAPIコントロールで。

ログイン、パスワードのリセット、アカウント検証、2要素認証、または。

メッセージやメールを送信するその他の機能などの認証機能を保護するために。

よく使用されて。

レスポンスからレート制限は、1分あたり60リクエストにのみ適用されて。

 X-RateLimit-Limit: 60

 

f:id:ThisIsOne:20211015131335p:plain

 

バイパスするために試行されたさまざまな手法:

 

1.リクエストヘッダの値の一部をuser-agent、新しいCookieの取得や。

 送信元IPアドレスの変更などの異なる値に変更しますがうまくいかず。

2.次に、下記の値で新しいヘッダを追加してリクエストを送信すると。

  X-Forwarded-For:127.0.0.1

 

 応答により、許可される試行の数が1分あたり。

 60から6000に増加することが示されて。

  X-RateLimit-Limit: 6000

 

この設定ミスは、おそらくローカルホストからのテスト目的のためで。

 

f:id:ThisIsOne:20211015131443p:plain

 

結果:

これにより、ユーザがまだ登録されていない場合は。

電話番号を使用してブルートフォースOTP値となりすましIDを使用できて。

 

Best regards, (^^ゞ

An often overlooked Oauth misconfiguration.を訳してみた

Hello there, ('ω')ノ

 

見過ごされがちなOauthの設定ミスを。

 

脆弱性:

 OAuthの設定ミス

 

記事:

 https://dragon-sec.medium.com/an-often-overlooked-oauth-misconfiguration-7d2d441eae1f

 

今日は、csrfチェックはなくてredirect_uriなどを変更できて。

少なくともoauthの基本的な知識が必要で。

したがって、プロジェクトにoauthがあるとすると。

 

f:id:ThisIsOne:20211015082301p:plain

 

このプロジェクトでは、ok.ru(ロシアの人気ソーシャルネットワーク)を。

介した承認を使用していて。

 

f:id:ThisIsOne:20211015082330p:plain

 

開発者は、ここで2つの間違いを犯したので、これが重大な影響を及ぼすことに。

上記のリクエストをみると。

 

1.開発者は、下記のような中間リンクを作成して。

 https://www.example.com/auth/ok/

 

2.開発者は、状態トークンが「彼を保護する」と考えているので。

 このリクエストにcsrfトークンを追加しなくて。

 

経験豊富なハッカーであれば、99.9%の企業が。

csrf login/unloginにお金をかけていないことを知っていて。

ok.ruはこれらの企業の1つで。

 

この脆弱性の完全な実行計画:

1.被害者は、ok.ruアカウントでログインして。

2.このリンクを被害者側の。

 iframe https://www.example.com/auth/ok/に読み込んで。

 ※このプロジェクトへのアクセスは、すでにoauthを介してアカウントに。

  公開されているため、確認は必要なくて。

3.被害者は、自分らのok.ruアカウントにリンクされて。

4.ok.ruから脆弱なサイトにアクセスして。

 

上記のiframeを含むペイロード全体をツイッターに添付しておくことに。

 https://twitter.com/VipItHunter1

 

f:id:ThisIsOne:20211015090011p:plain

 

この脆弱性がアカウントの乗っ取りにつながるには。

プロジェクトに2つの脆弱性が必要で。


・中間リンクとcsrfトークンなしで、oauthを使用して。

・ok.ruのように、csrf login/unloginにお金をかけない。

 ソーシャルネットワークがあって。

 

Best regards, (^^ゞ

Waybackurlsをかるくつかってみた

Hello there, ('ω')ノ

 

BugBountyの記事によく出てくる。

Waybackurlsは、WaybackMachineが保存したすべてのURLのリストを返すツールで。

ターゲットのコンテンツ、ディレクトリ、サブドメインを見つけるのに役立って。

 

まずは、GO環境を。

 apt install golang

 

その後、Waybackurlsをインストールしようとするとエラーが。

 go get github.com/tomnomnom/waybackurls

 

f:id:ThisIsOne:20211014193734p:plain

 

どうやら下記のようにインストールするようになったようで。

 go install github.com/tomnomnom/waybackurls@latest

 

f:id:ThisIsOne:20211014193932p:plain

 

下記のディレクトリにインストールされていることを確認して。

 /home/user/go/bin

 

f:id:ThisIsOne:20211014194235p:plain

 

基本的には、ドメインを指定するだけで。

 ./waybackurls vulnweb.com

 

f:id:ThisIsOne:20211014194950p:plain

 

サブドメインを指定する場合は、下記のように。

 ./waybackurls testphp.vulnweb.com

 

f:id:ThisIsOne:20211014193536p:plain

 

結果をファイルに出力することも。

 ./waybackurls vulnweb.com > out.txt

 

f:id:ThisIsOne:20211014195256p:plain

 

ちなみにWaybackMachineは、下記のとおりで。

 https://archive.org/web/

 

f:id:ThisIsOne:20211014200617p:plain

 

Best regards, (^^ゞ

Forcing for a bounty$$を訳してみた

Hello there, ('ω')ノ

 

賞金のための強制を。

 

脆弱性:

 承認の欠陥

 

記事:

 https://rafi-ahamed.medium.com/forcing-for-a-bounty-b637c468d7bd

 

ツール:

 Burp Suite

 

強制ブラウジングとは、攻撃者がアプリケーションによって。

参照されていないリソースを列挙してアクセスすることを目的とした攻撃で。


どうやってバグを見つけたかというと。

HackerOneのプライベートサイトをテストしていて。

そのサイトは教育用ビデオを販売していて。

ユーザは支払いなしでビデオのプレビューを行うことができて。

しかし、ビデオのプレビューは15秒以内で。

そこに脆弱性があって。

 

いつものように、Burp Suiteを使用してインターセプトをオンにして。

以下のようなエンドポイントに気づき。

 

f:id:ThisIsOne:20211014155422p:plain

 

しかし、エンドポイントは別のサブドメインにあったので。

サブドメイン名を見ると、組織はこのサブドメインを使用して。

すべてのビデオやその他のものを保存していることがわかて。


それで、すぐにエンドポイントにアクセスして。

何かを見つけることができるかどうかを確認することに。

しかし、何も得られず。

 

f:id:ThisIsOne:20211014155519p:plain

 

次に、エンドポイントに下記のようなものがあることに気付くことに。

下記を取り外してみると。

 .thumb.trailer

 

f:id:ThisIsOne:20211014155539p:plain

 

完全なビデオを手に入れたことに驚いて。

これで、支払いなしで有料のビデオを見ることができて。

 

Best regards, (^^ゞ

ひとりひとりの自覚をもった行動で、医療従事者と保健所職員を助けよう。

f:id:ThisIsOne:20200404115457p:plain