TCPサーバの接続情報と、ファイル polyglot4b/polyglot4b.py
およびその他のファイル群が与えられた。
polyglot4b/polyglot4b.py
は、入力されたデータに対し file
コマンドを実行し、その出力に以下の文字列がすべて含まれればflagを出力するというものだった。
Information for connecting to a TCP server, a file polyglot4b/polyglot4b.py
, and some other files were given.
polyglot4b/polyglot4b.py
executes the file
command on the input data, and prints the flag if the output of the command contains all of these strings:
JPEG
PNG
GIF
ASCII
まず、manの情報から file
コマンドは /ust/share/file/magic.mgc
を参照することがわかったので、
file
コマンドは入力によっては中身の情報を出力することもあるので、これに関わるであろう %s
を検索していくと、「Vim swap file」が見つかった。
そこで、CS50 Sandbox 上で適当なファイルを Vim で編集し、作成された .swp
ファイルをダウンロードした。
そして、このファイルのバージョン情報の部分を JPEGPNGGIFASCII
に書き換えた以下のファイルを用意した。
From the "man" information, I found that the file
command refers to /ust/share/file/magic.mgc
. Then, I obtained this file from
The file
commands emits information about file contents for some input, so I searched for %s
, which should be related with this function, from the file, and found "Vim swap file".
Then, I started editing some file with Vim on CS50 Sandbox, and downloaded the appeared .swp
file.
After that, I created this file by changing the version information to JPEGPNGGIFASCII
.
このファイルを QUIT
と改行を送信すると、flagが得られた。
I obtained the flag by sending this file via "Send File" on QUIT
, and another newline character.