WebページのURLと、サーバのファイル一式が与えられた。
Webページにアクセスすると、Challenge 1 から Challenge 5 までの問題をそれぞれ解くといいらしいことがわかった。
各問題で求められていることは、web-http-post/app/app.js
を参照した。
An URL of a web page and the files for the server were given.
Opening the web page, I found that we should solve each questions from Challenge 1 to Challenge 5.
I referred web-http-post/app/app.js
to know what is the goal of each questions.
req.body.data === "hoge"
となるようなリクエストを要求された。
POST
にする。Content-Type: application/json
を追加する。{"data":"hoge"}
とする。
The goal is sending a request that satisfies the condition req.body.data === "hoge"
.
I opened the Network tab in the developer tools in
POST
.Content-Type: application/json
to the request header.{"data":"hoge"}
.
Challenge 1 の条件に加え、User-Agent
が Mozilla/5.0
を含むリクエストを要求された。
Challenge 1 で送ったリクエストのURLを Challenge 2 用に変え、「編集して再送信」することで、flagのパーツが得られた。
The goal is sending a request that satisfies the condition for Challenge 1 and its User-Agent
contains Mozilla/5.0
.
I obtained a part of the flag by using "Edit and Resend" to modify the request for Challenge 1 to set the URL for Challenge 2.
req.body.data?.hoge === "fuga"
となるようなリクエストを要求された。
Challenge 1 で送ったリクエストのURLを Challenge 3 用に変え、要求ボディを {"data":{"hoge":"fuga"}}
に「編集して再送信」することで、flagのパーツが得られた。
The goal is sending a request that satisfies the condition req.body.data?.hoge === "fuga"
.
I obtained a part of the flag by using "Edit and Resend" to modify the request for Challenge 1 to set the URL for Challenge 3 and to set the request body to {"data":{"hoge":"fuga"}}
.
req.body.hoge === 1 && req.body.fuga === null
となるようなリクエストを要求された。
Challenge 1 で送ったリクエストのURLを Challenge 4 用に変え、要求ボディを {"hoge":1, "fuga": null}
に「編集して再送信」することで、flagのパーツが得られた。
The goal is sending a request that satisfies the condition req.body.hoge === 1 && req.body.fuga === null
.
I obtained a part of the flag by using "Edit and Resend" to modify the request for Challenge 1 to set the URL for Challenge 4 and to set the request body to {"hoge":1, "fuga": null}
.
MD5が public/images/wani.png
のMD5と同じであるファイルを含むリクエストを要求された。
以下のページを参照し、ファイルを送信する用のフォームを作った。
The goal is sending a request that contains a file whose MD5 is the same as one of public/images/wani.png
.
I referred this page to create a form to send a file.
HTMLタグ/フォームタグ/ファイルの送信欄を作る - TAG index
以下が作成したフォームを含むファイルである。
フォームに enctype="multipart/form-data"
属性を指定するのがポイントである。
This is a file I created that contains the form.
The key point is to add an attribute enctype="multipart/form-data"
to the form.
このフォームからファイル web-http-post/app/public/images/wani.png
を送信することで、flagのパーツが得られた。
I obtained a part of the flag by sending the file web-http-post/app/public/images/wani.png
from this form.
Challenge 1 ~ Challenge 5 で得られたflagのパーツをWebページに載っていた指示通りに組み合わせることで、flagが得られた。
I obtained the flag by building that from the parts obtained from Challenge 1 to Challenge 5 as specified in the web page.