Shikata Ga Nai

Private? There is no such things.

Basic server-side template injection (code context)をやってみた

Hello there, ('ω')ノ

 

基本的なサーバサイドのテンプレートインジェクション(コードコンテキスト)を。

このラボは 、Tornadoテンプレートを安全に使用していないので脆弱のようで。

まずは、ログインから。

 

f:id:ThisIsOne:20210403083502p:plain

 

コメントを投稿して、結果を確認して。

 

f:id:ThisIsOne:20210403083551p:plain

 

どうやら、このページで選択した名前でコメント欄には表示されるようで。

 

f:id:ThisIsOne:20210403112348p:plain

 

該当するリクエストをリピータへ。

 

f:id:ThisIsOne:20210403084146p:plain


下記で、Tornadoのテンプレート式が二重中括弧で囲まれていることを確認して。

 https://www.tornadoweb.org/en/stable/template.html

 

f:id:ThisIsOne:20210403083315p:plain

 

下記のペイロードを追加してSendすると。

 }}{{7*7}}

 

f:id:ThisIsOne:20210403084639p:plain

 

Follow Redirectionして。

 

f:id:ThisIsOne:20210403085116p:plain

 

ページに計算結果が表示されたことから脆弱性の可能性があって。

 

f:id:ThisIsOne:20210403085047p:plain

 

下記で、Tornadoテンプレートを確認して。

 https://www.tornadoweb.org/en/stable/template.html

 

f:id:ThisIsOne:20210403114751p:plain

 

下記で、Pythonのドキュメントを調べて。

 https://www.geeksforgeeks.org/python-os-system-method/

f:id:ThisIsOne:20210403115025p:plain

 

下記のペイロードをエンコードして。

 {% import os %}{{os.system('rm /home/carlos/morale.txt')}}

 

f:id:ThisIsOne:20210403113005p:plain


エンコードしたペイロードと入れ替えてSendして。

 

f:id:ThisIsOne:20210403085615p:plain

 

f:id:ThisIsOne:20210403085649p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210403085723p:plain

 

Best regards, (^^ゞ