Subdomain Fuzzing worth 35k bounty! から学ぶ

ソース:

medium.com

脆弱性:Subdomain, Auth, BAC, SQLi, RCE

 

訳:

この話は 2022 年に私がBugcrowdに認証バイパスのリードを報告したときの話ですが SQLI&RCE のプライベート プログラムの 、バグは報告のわずか 1 日後に修正され。

2024/3 に orwa は 古いバグを再テストすることに。

私たちが再テストしていたターゲットは、 admin.Target.com

を使用しました サブドメインファジング このコマンドを使用して

 

ffuf -w /subdomain_megalist.txt -u 'https://adminFUZZ.Target.com' -c -t 350 -mc all -fs 0

 

このコマンドを使用すると、次の名前のサブドメインが見つかりました。 admintest.Target.com

 

 

admintest.Target.com 元のサブドメインと同じバックエンドを持っているため脆弱でした admin.Target.com

見つかったバグについて 1 つずつ話しましょう

 

認証バイパス&BAC:

https://admintest.Target.com にリダイレクトされました https://admintest.Target.com/admin/login.aspx

いくつかの js ファイルを読んでいると、というエンドポイントが見つかりました。 https://admintest.Target.com/admin/main.aspx ブラウザで直接開くと、再びログインページにリダイレクトされますが、Burp では何かに気づきました。

 

 

Content-Lengthリダイレクト応答としては非常に大規模でした

ここで、ログイン ページにリダイレクトしても、最後はフル アクセスで動作していることがわかります。
これら 3 つのヘッダーを削除することで、パネルにアクセスできました

 

 

を使用する Burp Match And Replace か、 Burp インターセプト応答 を使用します。 

 

change 302 Moved Temporarily to 200 OK
remove Location: /admin/Login.aspx?logout=y
remove html redirect code

 

完全な認証バイパスを取得することができ、フロントエンド バイパスだけでなく完全に機能しました。
詳しく調べた結果、次のことを見つけることができました。 adduser.aspx このエンドポイントは、次のようにログイン ページにリダイレクトしていました。
main.aspx
同じトリックを使用して adduser.aspx エンドポイントにアクセスして管理者アカウントを追加することができました。
また、認証なしで管理者のパスワードとユーザー名を表示する別のエンドポイントも見つかりました。 

 

SQLI:

管理者アカウントを追加した後、ログインできました。上記のトリックを使用するよりも簡単です。

というエンドポイントを見つけました `SQLQuery.aspx` そしてその名前から、それが何を機能するかがわかります:)

最初に試したのは このクエリを Select * from users

パスワード、メールアドレス、ユーザー名を含むすべてのユーザー情報を確認できました

 

RCE:

データベースがあったので、 `mssql` エスカレーションしようとしました RCE を使用して xp_cmdshell

あなたはについて読んだ xp_cmdshell

 

www.mssqltips.com

近いうちに xp_cmdshell ユーザーが mssql を使用してシステム内でコマンドを実行できるようにします。

デフォルトでは無効になっていますが、 sqlmap オプションを使用すると簡単に有効にすることができます。 --os-shell

を実行するため、sqlmapは必要ありません。 クエリ しかし、私たちの場合、次のようにデータベースに対して直接 Select * from users また SELECT @@version

それで、作るために最初にすべきことは xp_cmdshell 作業は、これらのクエリを使用して有効にすることです

 

SP_CONFIGURE "show advanced options", 1
RECONFIGURE
SP_CONFIGURE "xp_cmdshell", 1
RECONFIGURE

 

こちらも参照:

 

 

その後 xp_cmdshell ‘whoami’ ブーム RCE

 

 

それらすべてを 1 つのレポートで送信し、別のエンドポイントでもう 1 つの SQLI を送信し、合計 35,000 の報奨金を獲得しました。

学んだ教訓と概要:

1_ burp でのリダイレクト応答を常に確認する

私とオルワは同じ認証バイパスをたくさん見つけました。私の最初の報奨金は 2020 年で、それは同じ手口でした。 /admin/admin.php にリダイレクト login.php しかし、 burp での応答を見ると、 admin.php は正常に動作しており、それは単なる フロントエンド Redreact です。

2_ サブドメインでバグを見つけて修正した場合は、 サブドメインのファジングを試してください

このように使えます

admin-FUZZ.target.com EG: admin-stg.target.com
FUZZ-admin.target.com EG: cert-admin.target.com
adminFUZZ.target.com EG: admintest.target.com
FUZZadmin.target.com E.G testadmin.target.com
admin.FUZZ.target.com EG: admin.dev.target.com

 

再びコマンド 

 

ffuf -w /subdomain_megalist.txt -u 'https://adminFUZZ.Target.com' -c -t 350 -mc all -fs 0

-t means threads , dont make it so high u could miss alot of working subs , aslo its dpends in your network speed
,sinc im using vps 350 find for me

-mc all means macth all respone codes like 200,302,403 and this importent

 

3_ 報告する前にバグをエスカレーションしてみてください

4_ 量より質:

複数のバグや連鎖したバグを見つけた場合は、それらを 1 つのレポートとして報告しようとすると、より高い報奨金が得られます :)

参照:

サブドメイン_メガリスト.txt

https://github.com/netsecurity-as/subfuz/blob/master/subdomain_megalist.txt

そのリストの Netsecurity の thx :)

ここでもたくさんのリストを見つけることができます

https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS

 

ほなほな。