問題文に書かれているとおり、フラグは、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}