Shikata Ga Nai

Private? There is no such things.

Server-side template injection with a custom exploitをやってみた

Hello there, ('ω')ノ

 

カスタムエクスプロイトを使用したサーバサイドのテンプレートインジェクションを。

carlosのホーム ディレクトリから/.ssh/id_rsaファイル を削除せよとのことで。

 

まずは、ログインして。

 

f:id:ThisIsOne:20210603162717p:plain

 

アバターをアップロードして。

 

f:id:ThisIsOne:20210603162804p:plain

 

コメントを投稿して。

 

f:id:ThisIsOne:20210603162911p:plain

 

正常動作確認を。

 

f:id:ThisIsOne:20210603162946p:plain

 

次にアバターの画像ファイルではなく、PDFファイルをアップロードすると。

 

f:id:ThisIsOne:20210603163313p:plain

 

下記のエラーメッセージが。

これでメソッドとcarlosに関するファイルがわかって。

 User->setAvatar('/tmp/000017508....', 'application/pdf')
 thrown in /home/carlos/User.php on line 28


f:id:ThisIsOne:20210603163232p:plain

 

また、アカウント情報で名前を変更してみると。

 

f:id:ThisIsOne:20210603170114p:plain

 

投稿した名前も更新すると変更されることが確認できて。

 

f:id:ThisIsOne:20210603170135p:plain

 

ということで、アカウントを変更するリクエストをリピータへ。

 

f:id:ThisIsOne:20210603170213p:plain


名前のパラメータを下記に変更してSendすると。

 user.setAvatar('/etc/passwd') 

 

f:id:ThisIsOne:20210603174044p:plain


投稿ページにはエラーメッセージが。

どうやら2番目の引数に画像の MIME タイプが必要らしく。


f:id:ThisIsOne:20210603174010p:plain

 

パラメータに下記の引数を追加して再度、Sendして。

 user.setAvatar('/etc/passwd','image/jpg'

 

f:id:ThisIsOne:20210603174517p:plain

 

投稿ページを更新すると。

 

f:id:ThisIsOne:20210603174425p:plain

 

/etc/passwdファイルの内容が返さたので。

これで、任意のファイルにアクセスできることがわかって。

    

f:id:ThisIsOne:20210603174404p:plain

 

今度は、先ほど表示されたcarlosのphpファイルを読み込むことに。

 user.setAvatar('/home/carlos/User.php','image/jpg')

 

f:id:ThisIsOne:20210603174853p:plain

 

アバターを削除するメソッドがみつかったので。

 

f:id:ThisIsOne:20210603175004p:plain

 

まずは、ファイルをアバターとして設定してSendして。

 user.setAvatar('/home/carlos/.ssh/id_rsa','image/jpg')

 

f:id:ThisIsOne:20210603175145p:plain

 

f:id:ThisIsOne:20210603175333p:plain

 

最後に下記の削除用メソッドをSendすると。

 user.gdprDelete() 

 

f:id:ThisIsOne:20210603175621p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210603175647p:plain


Best regards, (^^ゞ