Extract Service 1

WebページのURLと、サーバー用のファイル一式が与えられた。
また、問題文より、ファイル /flag を読めば良さそうであることがわかった。

与えられたファイル中の main.go を読むと、与えられたzipファイルからファイルを取り出して返してくれそうなことがわかった。
さらに、指定のWebページにアクセスしてソースを表示すると、取り出すファイルのパスをフォームで指定できるようだった。

そこで、CS50 Sandbox を開き、以下のコマンドで、取り出すファイルを /flag へのシンボリックリンクとした attack.docx を作成した。

An URL of a web page and files for the server were given.
Also the challenge description suggested that we should read the file /flag.

I read one of the given files main.go and found that it should extract a file from a zip file sent and return the file.
Also, I viewed the source of the specified web page and found that the path to extract can be specified from the form.

Seeing this, I opened CS50 Sandbox and executed these commands to create a file attack.docx where the file to extract is a symbolic link to /flag.

mkdir word ln -s /flag word/document.xml zip -ry attack.docx word

フォームの Choose file type で「.docx」を選択し、作成した attack.docx を送信すると、flagが得られた。

I selected ".docx" for the "Choose file type" in the form and uploaded the file attack.docx to obtain the flag.

FLAG{ex7r4c7_1s_br0k3n_by_b4d_p4r4m3t3rs}

WaniCTF 2023