ASIS CTF Quals 2014

ASIS CTF Quals 2014 writeup Strange

http://asis-ctf.ir/tasks/crypto/crypto_100_0846ec09aab1276d3f58132e9e0d9040
193783664954325860839119335839123899215102615420822972351760578005089136540425309354036361893838393003588891746622376179640815659427394332341396349623915618698881917748452642227703372088122750038977875271898725946720852004880885256474153240496403679762658175476439747881512983568010339887513815290532457778339653199840844995620334862083972129131373571189257219076954184188287439143813927696901842427070726653570329826784994939781399262722041373098152896420678252225833798975089624831218241591628711120707329895543671411906901315360684109949162093034473760905475852393975531277897806950327343042645059549958465853312789713887760614613019996408541328573908373854848160937603498857471516627134163969286531049737140365371424114198553258003189099111625628658195048410056477354418943486633764457994737288416245326617781808808365823018019007303548026276450867096742624996960312090440565297914562234479315177247633875823205403409920418528411649247750473506398553163169161650499998659753179520467576895466482641387252430718673195843748651606278144
数字の羅列です。
まず、この数字の羅列を巨大な数値として扱ってみましょう。Rubyだと簡単に扱うことができます。

下記は、数値を16進数に変換しバイナリとしてファイルに出力するrubyプログラムです。
f = File.open("1c2a7ff1d5cdf3d36544551ae18e30c8", "r")
a = f.read
f.close
b = a.to_i
c = b.to_s(16)
p c
e = c.scan(/../).map{ |d| d.to_i(16) }.pack('C*')
f = File.open("aaa", "wb")
f.write(e)
f.close
出力されたファイルの種類をfileコマンドで調べます。
% file aaa
aaa: 7-zip archive data, version 0.3
7-zipなので解凍してみると、”strange”ファイルが出来ます。
% file strange
strange: lzop compressed data - version 1.030, LZO1X-999, os: Unix
fileコマンドで調べると、lzop形式なのでUniversal Extractorで解凍すると、”strange.uu”ファイルが出来ます。
% file strange.uu
strange.uu: uuencoded or xxencoded, ASCII text
WinRARで解凍?すると、”strange.U”ファイルが出来ます。
% file strange.U
strange.U: ASCII text
fe18be6a597ffad862b3e8acf9afacb6b6a781efa67acb1a81efad85ab7e
ca8bbe85abdefa7a2dfac79e9fe6de7e8adeffeb617be7e56a0fa2b3e012
212fae9dd7abb1ca2b7bee1bf38d79d5fd7bfb4774ef6db8fbde7b79af1e
6be79ae1a7f4
先ほどのrubyプログラムを流用して、16進文字列をバイナリとしてファイル作成するプログラムを作ります。
f = File.open("strange.U", "r")
c = f.read
f.close
p c
e = c.scan(/../).map{ |d| d.to_i(16) }.pack('C*')
f = File.open("bbb", "wb")
f.write(e)
f.close
% file bbb
bbb: data
base64でエンコードします。
% base64 bbb
/hi+all/+this+is+a+strange+message+that+you+have+not+seen+before/+the+flag+i
s+ASIS+underscore+4b84151f17+0d07224+957ea8ea+ea4af0
フラグは、
ASIS_4b84151f170d07224957ea8eaea4af0
だと思いましたが、1文字足りないようです。

メタプログラミングRuby 第2版
Paolo Perrotta
オライリージャパン
2015-10-10


ASIS CTF Quals 2014 writeup Sound Zoo

http://asis-ctf.ir/tasks/stego/steg_150_e3cdf499ed8341fe750530b93b6ff816

fileコマンドでファイルの種類を確認すると、MP3であることが分かります。
% file steg_150_ccf8db5e8cf287469ed291212577f032
steg_150_ccf8db5e8cf287469ed291212577f032: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, JntStereo
ファイルの拡張子をmp3に変更して、Audacityで開きます。
再生すると、エンジン音に混じって怪しい音(声?)が聞こえます。

[エフェクト]→[テンポの変更...]を選択、[変更率(%)]を調整すると、怪しい音が次のような音声のように聞こえるようになります。

bbe60b482d22ea98a4d0ef205f772a8b
したがって、フラグは、
ASIS_bbe60b482d22ea98a4d0ef205f772a8b
です。

サウンド圧縮 テクニカルガイド
藤本 健
ビー・エヌ・エヌ新社
2004-03-18


記事検索
ギャラリー
  • 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
カテゴリー