Util

WebページのURLと、サーバのファイル一式が与えられた。

Webページにアクセスすると、IP addressの入力欄とcheckボタンがあった。
入力欄に 127.0.0.1; ls と入力してcheckボタンを押すと、「Invalid IP address」と表示された。
Firefoxの開発者ツールで確認したところ、この時通信は行われていないようだった。
入力欄に 127.0.0.1 と入力してcheckボタンを押すと通信が行われ、要求ペイロードは以下のものだった。

An URL of a web page and files for the server were given.

An input field for "IP address" and a "check" button were on the web page.
When I entered 127.0.0.1; ls to the field and hit the "check" button, a string "Invalid IP address" appeared.
Checking with the Developer Tool on Firefox, no communication were performed here.
Entering 127.0.0.1 to the field and hitting the "check" button, a communication occured and it had this request payload:

{"address":"127.0.0.1"}

これを

I changed this to

{"address":"127.0.0.1; ls"}

に「編集して再送信」すると、レスポンスにlsコマンドの出力が出るようだった。

さらに、配布されたファイル中の Dockerfile を読むと、ファイル /flag_(ランダム文字列).txt にflagを書き込んでいるようだった。
そこで、要求ボディを以下のものに「編集して再送信」することで、flagが得られた。

and performed "edit and resend". As a result, the response looked containing the output of the ls commnd.

Here, I checked Dockerfile in the given files and found that the flag looks written to a file /flag_(a random string).txt.
I obtained the flag by sending a request with this request body via "edit and resend":

{"address":"127.0.0.1; cat /flag*"}
ctf4b{al1_0vers_4re_i1l}

SECCON Beginners CTF 2022