CpawCTF(2)
cpawctfの続きを進めていく!
Q19.[Misc]Image!
[解法] mimetypeにapplication/vnd.oasis.opendocument.graphicsと書いてあり、調べるとこれはLibreOfficeで開けるっぽいので、zipファイルのまま開いたらflagをゲット。(Ubuntuがあるからいいけど、windowsの場合はvirtualboxとかを使うのかな、、?)
Q20.[Crypto]Block Cipher
[解法] とりあえずソースコードを読んでみる。引数を2つとっていて1つ目はおそらく暗号文だけど2つめがわからないので0からランダムに入れていったら4を入れたときにそれっぽいflagをゲットできた。
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void){ int i; int j; int key = 4; //ランダムに入れていった const char* flag = "ruoYced_ehpigniriks_i_llrg_stae"; printf("cpaw{"); for(i = key - 1; i <= strlen(flag); i+=key) for(j = i; j>= i - key + 1; j--) printf("%c", flag[j]); printf("}"); return 0; }
Q21.[Reversing]reversing easy!
[解法]バイナリに関する問題初めてだ、、、。stringsコマンドを使って、指定したバイナリ/データファイル内にある表示可能な文字列を出力する。よーく読んで見るとflagを発見できる。Python等で余計な記号を消してもいいかも。
今日はここまで。 CTF楽しい!!