問題文に書かれているとおり、フラグは、Notesy 2.01Remember last year?The flag: abcdefghijklmnopqrstuvwxyzTribute
abcdefghijklmnopqrstuvwxyzです。
問題文に書かれているとおり、フラグは、Notesy 2.01Remember last year?The flag: abcdefghijklmnopqrstuvwxyzTribute
abcdefghijklmnopqrstuvwxyzです。
pcapngファイルなので、Wiresharkで開いてみます。しかし、次のメッセージが表示され、ファイルが壊れているようです。Kill50Is kill can fix? Sign the autopsy file?
です。flag{roses_r_blue_violets_r_r3d_mayb3_harambae_is_not_kill}
与えられたWindowsプログラムは、コマンドライン形式の簡単なゲームになっています。実行すると、次のようにチュートリアルが始まります。Gametime50Guess what time it is! That's right! Gametime! Wowwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww!!!!!!!!!!!!Author: Brad Antoniewicznote: flag is not in flag{} formatgametime.exe
'x'が表示されたら、xキーを押してください。ZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMGWhen you see an 's', press the space barZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMG
ZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMG
When you see an 'x', press the 'x' key
ZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMG
ZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMGWhen you see an 'm', press the 'm' keyZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMG
ゲームは難しくないので、普通にやってもクリアできます。結果は次のとおりです。TRAINING COMPLETE!
(略)
LETS PLAY !
.....s..x.mooooh, you fancy!!!.....m..x.skey is not (NIIICE JOB)!!!!.....m.....m....x....x.....m....x...s...s....x.....mTURBO TIME!key is (no5c30416d6cf52638460377995c6a8cf5)
no5c30416d6cf52638460377995c6a8cf5です。
問題サーバに接続すると、金額が提示されるので、それを1万ドル紙幣~1ドル紙幣、および50セント貨幣~1セント貨幣の枚数で答える問題です。Coinslot25#Hope #Change #Obama2008nc misc.chal.csaw.io 8000
金額の大きい紙幣、貨幣の順に枚数を聞いてくるので、聞かれた紙幣、貨幣の金額で割った商、余りを計算していけば良いです。商が聞かれた紙幣、貨幣の枚数になり、余りを残りの紙幣、貨幣の計算に引き継ぎいでいきます。Pythonプログラムを下記に載せます。$15180.83$10,000 bills: 1
$5,000 bills: 1
(略)
import itertoolsimport sys,sockethost = 'misc.chal.csaw.io'if len(sys.argv) > 1:host = sys.argv[1]port = 8000if len(sys.argv) > 2:host = int(sys.argv[2])client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client.connect((host, port))client_file = client.makefile('b')while True:buf = client.recv(100)ary = buf.split('\n')for tmp in ary:print tmpif tmp.startswith('$10,000 bills:'):c = money // (10000 * 100)money = money - c * (10000 * 100)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('$5,000 bills:'):c = money // (5000 * 100)money = money - c * (5000 * 100)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('$1,000 bills:'):c = money // (1000 * 100)money = money - c * (1000 * 100)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('$500 bills:'):c = money // (500 * 100)money = money - c * (500 * 100)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('$100 bills:'):c = money // (100 * 100)money = money - c * (100 * 100)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('$50 bills:'):c = money // (50 * 100)money = money - c * (50 * 100)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('$20 bills:'):c = money // (20 * 100)money = money - c * (20 * 100)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('$10 bills:'):c = money // (10 * 100)money = money - c * (10 * 100)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('$5 bills:'):c = money // (5 * 100)money = money - c * (5 * 100)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('$1 bills:'):c = money // (1 * 100)money = money - c * (1 * 100)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('half-dollars (50c):'):c = money // (50)money = money - c * (50)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('quarters (25c):'):c = money // (25)money = money - c * (25)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('dimes (10c):'):c = money // (10)money = money - c * (10)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('nickels (5c):'):c = money // (5)money = money - c * (5)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('pennies (1c):'):c = money // (1)money = money - c * (1)client_file.write(str(c) + "\n")client_file.flush()print str(c)elif tmp.startswith('correct!'):passelif tmp.find('flag') > -1:sys.exit(1)elif tmp.startswith('$'):money = int(tmp.strip().translate(None, '$.'))else:sys.exit(1)
(略)$1681.90$10,000 bills:0$5,000 bills:0$1,000 bills:1$500 bills:1$100 bills:1$50 bills:1$20 bills:1$10 bills:1$5 bills:0$1 bills:1half-dollars (50c):1quarters (25c):1dimes (10c):1nickels (5c):1pennies (1c):0correct!flag{started-from-the-bottom-now-my-whole-team-fucking-here}
flag{started-from-the-bottom-now-my-whole-team-fucking-here}
We found this suspicous image online and it looked like it had been planted there by an alien life form. Can you see if you can figure out what they're trying to tell us?
IceCTF{gOOd_n3wZ_3vEryoN3_1_L1k3_fU7ur4Ma_4nD_tH3ir_4MaZ1nG_3As7er_39G5}です。