Shikata Ga Nai

Private? There is no such things.

Basic server-side template injectionをやってみた

Hello there, ('ω')ノ

 

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

このラボは、サーバサイドのテンプレートインジェクションに脆弱で。

ERBテンプレートの構築が安全でないのが原因で。

 

まずは、製品の詳細を表示しようとすると。

GET リクエストで、下記のmessageパラメータが表示されて。

 

 Unfortunately this product is out of stock

 

URLのパラメータは下記の通りで。

 

 https://acb81f041fbb063580e5041b00450007.web-security-academy.net/?message=Unfortunately%20this%20product%20is%20out%20of%20stock

 

f:id:ThisIsOne:20210402181739p:plain

 

リクエストボディは、下記のとおり。

 

f:id:ThisIsOne:20210402181924p:plain

 

ERBテンプレートについては、下記のサイト等を参考に。

 https://www.stuartellis.name/articles/erb/

 

f:id:ThisIsOne:20210402182535p:plain

 

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

 <%= 7*7 %>

 

f:id:ThisIsOne:20210402182830p:plain

 

パラメータ値を置き換えると。

演算結果が表示されるので、脆弱性の可能性があると考えて。

 

f:id:ThisIsOne:20210402182806p:plain

 

下記のペイロードをエンコードしてSendするとコマンドが機能してて。

 <%= system('whoami') %>

 

f:id:ThisIsOne:20210402183520p:plain

 

よって、下記のペイロードを作成してエンコードしてSendすると。

 <%= system("rm /home/carlos/morale.txt") %>

 

f:id:ThisIsOne:20210402184343p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210402184221p:plain

 

Best regards, (^^ゞ