CSAW CTF Qualification Round 2016

CSAW CTF Qualification Round 2016 writeup Notesy 2.0

Notesy 2.0
Remember last year?
The flag: abcdefghijklmnopqrstuvwxyz
Tribute 
問題文に書かれているとおり、フラグは、
abcdefghijklmnopqrstuvwxyz
です。



CSAW CTF Qualification Round 2016 writeup Kill

Kill
50
Is kill can fix? Sign the autopsy file?
pcapngファイルなので、Wiresharkで開いてみます。しかし、次のメッセージが表示され、ファイルが壊れているようです。

no title

仕方ないので、テキストエディタで開いて、”flag{”で検索してみます。次のとおり、フラグが見つかりました。

1

フラグは、
flag{roses_r_blue_violets_r_r3d_mayb3_harambae_is_not_kill}
です。

インシデントレスポンス 第3版
Jason T. Luttgens
日経BP社
2016-04-07


CSAW CTF Qualification Round 2016 writeup Gametime

Gametime
50
Guess what time it is! That's right! Gametime! Wowwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww!!!!!!!!!!!!
Author: Brad Antoniewicz
note: flag is not in flag{} format
gametime.exe
与えられたWindowsプログラムは、コマンドライン形式の簡単なゲームになっています。実行すると、次のようにチュートリアルが始まります。
’s’が表示されたら、スペースキーを押してください。
ZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMG

When you see an 's', press the space bar

ZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMG
'x'が表示されたら、xキーを押してください。
ZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMG

When you see an 'x', press the 'x' key

ZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMG
'm'が表示されたら、mキーを押してください。
ZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMG

When you see an 'm', press the 'm' key

ZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMGZOMGZOMGOZMG
チュートリアルが終わり、ゲームが始まります。
TRAINING COMPLETE!
(略)
LETS PLAY !
ゲームは難しくないので、普通にやってもクリアできます。結果は次のとおりです。
.....s
..x
.m
ooooh, you fancy!!!
.....m
..x
.s
key is not (NIIICE JOB)!!!!
.....m
.....m
....x
....x
.....m
....x
...s
...s
....x
.....m
TURBO TIME!
key is  (no5c30416d6cf52638460377995c6a8cf5)
フラグは、
no5c30416d6cf52638460377995c6a8cf5 
です。


 

CSAW CTF Qualification Round 2016 writeup Coinslot

Coinslot
25
#Hope #Change #Obama2008
nc misc.chal.csaw.io 8000
問題サーバに接続すると、金額が提示されるので、それを1万ドル紙幣~1ドル紙幣、および50セント貨幣~1セント貨幣の枚数で答える問題です。
$15180.83
$10,000 bills: 1
$5,000 bills: 1
(略) 
金額の大きい紙幣、貨幣の順に枚数を聞いてくるので、聞かれた紙幣、貨幣の金額で割った商、余りを計算していけば良いです。商が聞かれた紙幣、貨幣の枚数になり、余りを残りの紙幣、貨幣の計算に引き継ぎいでいきます。Pythonプログラムを下記に載せます。
import itertools
import sys,socket

host = 'misc.chal.csaw.io'
if len(sys.argv) > 1:
    host = sys.argv[1]
port = 8000
if 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 tmp
if 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!'):
pass
elif 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:
1
half-dollars (50c):
1
quarters (25c):
1
dimes (10c):
1
nickels (5c):
1
pennies (1c):
0
correct!
flag{started-from-the-bottom-now-my-whole-team-fucking-here}
フラグは、
flag{started-from-the-bottom-now-my-whole-team-fucking-here}
記事検索
ギャラリー
  • TetCTF 2023 NewYearBot
  • UUT CTF writeup Find The Password
  • UUT CTF writeup The Puzzle
  • Hack Zone Tunisia 2019 writeup Microscope
  • Hack Zone Tunisia 2019 writeup Welcome
  • SwampCTF 2019 writeup Brokerboard
  • SwampCTF 2019 writeup Leap of Faith
  • SwampCTF 2019 writeup Last Transmission
  • CBM CTF 2019 writeup Long road
カテゴリー