Shikata Ga Nai

Private? There is no such things.

XSS, RCE & HTML File Upload in same endpointを訳してみた

Hello there, ('ω')ノ

 

同じエンドポイントでのXSS、RCE、およびHTMLファイルのアップロードを。

 

脆弱性:

 XSS

 RCE

 無制限のファイルアップロード

 

記事:

 https://sa1tama0.medium.com/xss-rce-html-file-upload-in-same-endpoint-4a03348445f4

 

ツール:

 Burp Suite

 

今回のターゲットは、民間企業で。

パートナーのコミュニケーションに使用されるサブドメインの。

partners.site.comを見つけて。

 

名前の文字長が64文字に設定されていたため、名前を100文字以上に設定すると。

情報が開示されて。

 

f:id:ThisIsOne:20211103185746p:plain

 

    206 An exception occurred while executing ‘INSERT INTO partners.user (id, site_id, name, email, avatar) VALUES (?, ?, ?, ?, ?)’ with params [283, 411571, “\”aaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbccccccccccccdddddddddd…”, “sa1tama0@wearehackerone.com”, “https:\/\/secure.gravatar.com\/avatar\/e5fbf987aa8c9f4b1ee0f05ad.jpg?d=mm”]: SQLSTATE[22001]: String data, right truncated: 7 ERROR: value too long for type character varying(64)

 

このエラーを使用してXSS(Self XSS)を実行する可能性があって。

さらには、名前フィールドでCSRFを見つけたので。

SelfXSSをStoredXSSにアップグレードしようとしたところ失敗して。

 

その後、partners.site.com/adminに非表示のユーザパネルが表示されるので。

詳細を変更できて。

さらには、ロゴをアップロードするオプションもあったので。

頭に浮かんだのは、SVGファイルをアップロードすることで。

SVGが正常にアップロードされたので。

SVGファイルをアップロードしてXSS(誰に対しても非特権ユーザ)を取得して。

その後、ブラインドXSS用のSVGを作成して、重大度をアップグレードできて。

下記がPHPファイルのアップロードによるRCEで。

 

f:id:ThisIsOne:20211103191651p:plain

 

さらにその後、サイトを再チェックして。

SVGファイルをもう一度アップロードしようとしてバイパスも試したものの。

うまくいかなかったので、拡張子なしで画像をアップロードすると。

画像は正常にアップロードされて、フロントエンドに通常の画像が表示されて。

画像を開くと、生のコードがcontent-type:text/htmlとして表示されたので。

PHP拡張子のファイルをアップロードしみると失敗したので。

JPG Shell Uploading(Ninja Method)を試すことに。

 

 

1.画像(PHPコードとバインド)を選択し、クリックしてアップロードして。

2.Burp Suiteを使用してリクエストをキャプチャして。

3.ファイル名をrce.phpに変更して。

 

Best regards, (^^ゞ