2019年03月

Teaser CONFidence CTF 2019 writeup Sanity check

warmup

Sanity check

Points: 1
Solves: 132

You can find the flag in the topic of our IRC channel linked below.

IRCチャンネル#p4termに接続します。
20:14 チャンネルに入りました
20:14 *xxxxxx join #p4team (~xxxxxx@yyy.zzz)
20:14 *topic : Teaser lasts from March 16th 11:00UTC to March 17th 11:00UTC | https://confidence2019.p4.team | p4{thanks_for_playing_:)}
フラグは、
p4{thanks_for_playing_:)}

UTCTF wirteup [basics] re

[basics] re

100

I know there's a string in this binary somewhere.... Now where did I leave it?

by balex

stringsコマンドでファイル中の文字列を調べます。
$ strings calculator 
/lib64/ld-linux-x86-64.so.2
& 1y
libc.so.6
__isoc99_scanf
__stack_chk_fail
printf
__libc_start_main
__gmon_start__
GLIBC_2.7
GLIBC_2.2.5
GLIBC_2.4
UH-H
AWAVA
AUATL
[]A\A]A^A_
Enter an operator (+, -, *,): 
Enter two operands: 
%lf %lf
%.1lf + %.1lf = %.1lf
%.1lf - %.1lf = %.1lf
%.1lf * %.1lf = %.1lf
%.1lf / %.1lf = %.1lf
Error! operator is not correct
utflag{str1ng5_15_4_h4ndy_t00l}
;*3$"
フラグは、
utflag{str1ng5_15_4_h4ndy_t00l}

UTCTF writeup [basics] forensics

[basics] forensics

100

My friend said they hid a flag in this picture, but it's broken!

by balex

拡張子がjpgとなっていますがテキストデータでフラグが記載されています。
フラグは、
utflag{d0nt_tru5t_f1l3_3xt3ns10n5}
です。



UTCTF writeup [basics] crypto

[basics] crypto

200

Can you make sense of this file?

by balex

ファイルは2進数のASCIIコードの羅列のようです。Pythonで変換するプログラムを作ります。
f = open('binary.txt')
s = f.read()
f.close()
l = s.split()
b = ''
for c in l:
b += chr(int(c, 2))
print(b)
実行すると次のようなテキストデータになります。
$ python aaa.py
Uh-oh, looks like we have another block of text, with some sort of special encoding. Can you figure out what this encoding is? (hint: if you look carefully, you'll notice that there only characters present are A-Z, a-z, 0-9, and sometimes / and +. See if you can find an encoding that looks like this one.)
TmV3IGNoYWxsZW5nZSEgQ2FuIHlvdSBmaWd1cmUgb3V0IHdoYXQncyBnb2luZyBvbiBoZXJlPyBJdCBsb29rcyBsaWtlIHRoZSBsZXR0ZXJzIGFyZSBzaGlmdGVkIGJ5IHNvbWUgY29uc3RhbnQuIChoaW50OiB5b3UgbWlnaHQgd2FudCB0byBzdGFydCBsb29raW5nIHVwIFJvbWFuIHBlb3BsZSkuCmt2YnNxcmQsIGl5ZSdibyBrdnd5Y2QgZHJvYm8hIFh5ZyBweWIgZHJvIHBzeGt2IChreG4gd2tpbG8gZHJvIHJrYm5vY2QuLi4pIHprYmQ6IGsgY2VsY2RzZGVkc3l4IG1zenJvYi4gU3ggZHJvIHB5dnZ5Z3N4cSBkb2hkLCBTJ2ZvIGRrdW94IHdpIHdvY2NrcW8ga3huIGJvenZrbW9uIG9mb2JpIGt2enJrbG9kc20gbXJrYmttZG9iIGdzZHIgayBteWJib2N6eXhub3htbyBkeSBrIG5zcHBvYm94ZCBtcmtia21kb2IgLSB1eHlneCBrYyBrIGNlbGNkc2RlZHN5eCBtc3pyb2IuIE1reCBpeWUgcHN4biBkcm8gcHN4a3YgcHZrcT8gcnN4ZDogR28gdXh5ZyBkcmtkIGRybyBwdmtxIHNjIHF5c3hxIGR5IGxvIHlwIGRybyBweWJ3a2QgZWRwdmtxey4uLn0gLSBncnNtciB3b2t4YyBkcmtkIHNwIGl5ZSBjb28gZHJrZCB6a2Rkb2J4LCBpeWUgdXh5ZyBncmtkIGRybyBteWJib2N6eXhub3htb2MgcHliIGUsIGQsIHAsIHYgaywga3huIHEga2JvLiBJeWUgbWt4IHpieWxrbHZpIGd5YnUgeWVkIGRybyBib3drc3hzeHEgbXJrYmttZG9iYyBsaSBib3p2a21zeHEgZHJvdyBreG4gc3hwb2Jic3hxIG15d3d5eCBneWJuYyBzeCBkcm8gT3hxdnNjciB2a3hxZWtxby4gS3h5ZHJvYiBxYm9rZCB3b2RyeW4gc2MgZHkgZWNvIHBib2Flb3htaSBreGt2aWNzYzogZ28gdXh5ZyBkcmtkICdvJyBjcnlnYyBleiB3eWNkIHlwZG94IHN4IGRybyBrdnpya2xvZCwgY3kgZHJrZCdjIHpieWxrbHZpIGRybyB3eWNkIG15d3d5eCBtcmtia21kb2Igc3ggZHJvIGRvaGQsIHB5dnZ5Z29uIGxpICdkJywga3huIGN5IHl4LiBZeG1vIGl5ZSB1eHlnIGsgcG9nIG1ya2JrbWRvYmMsIGl5ZSBta3ggc3hwb2IgZHJvIGJvY2QgeXAgZHJvIGd5Ym5jIGxrY29uIHl4IG15d3d5eCBneWJuYyBkcmtkIGNyeWcgZXogc3ggZHJvIE94cXZzY3Igdmt4cWVrcW8uCnJnaG54c2RmeXNkdGdodSEgcWdmIGlzYWsgY3RodHVpa2UgZGlrIHprbnRoaGt4IHJ4cWxkZ254c2xpcSByaXN5eWtobmsuIGlreGsgdHUgcyBjeXNuIGNneCBzeXkgcWdmeCBpc3hlIGtjY2d4ZHU6IGZkY3lzbnszaHJ4cWxkMTBoXzE1X3IwMHl9LiBxZ2YgdnR5eSBjdGhlIGRpc2QgcyB5Z2QgZ2MgcnhxbGRnbnhzbGlxIHR1IHBmdWQgemZ0eWV0aG4gZ2NjIGRpdHUgdWd4ZCBnYyB6c3V0ciBiaGd2eWtlbmssIHNoZSB0ZCB4a3N5eXEgdHUgaGdkIHVnIHpzZSBzY2RreCBzeXkuIGlnbGsgcWdmIGtocGdxa2UgZGlrIHJpc3l5a2huayE=
base64のエンコードデータがありますのでデコードすると次のようになります。
New challenge! Can you figure out what's going on here? It looks like the letters are shifted by some constant. (hint: you might want to start looking up Roman people).
kvbsqrd, iye'bo kvwycd drobo! Xyg pyb dro psxkv (kxn wkilo dro rkbnocd...) zkbd: k celcdsdedsyx mszrob. Sx dro pyvvygsxq dohd, S'fo dkuox wi wocckqo kxn bozvkmon ofobi kvzrklodsm mrkbkmdob gsdr k mybboczyxnoxmo dy k nsppoboxd mrkbkmdob - uxygx kc k celcdsdedsyx mszrob. Mkx iye psxn dro psxkv pvkq? rsxd: Go uxyg drkd dro pvkq sc qysxq dy lo yp dro pybwkd edpvkq{...} - grsmr wokxc drkd sp iye coo drkd zkddobx, iye uxyg grkd dro mybboczyxnoxmoc pyb e, d, p, v k, kxn q kbo. Iye mkx zbylklvi gybu yed dro bowksxsxq mrkbkmdobc li bozvkmsxq drow kxn sxpobbsxq mywwyx gybnc sx dro Oxqvscr vkxqekqo. Kxydrob qbokd wodryn sc dy eco pboaeoxmi kxkvicsc: go uxyg drkd 'o' crygc ez wycd ypdox sx dro kvzrklod, cy drkd'c zbylklvi dro wycd mywwyx mrkbkmdob sx dro dohd, pyvvygon li 'd', kxn cy yx. Yxmo iye uxyg k pog mrkbkmdobc, iye mkx sxpob dro bocd yp dro gybnc lkcon yx mywwyx gybnc drkd cryg ez sx dro Oxqvscr vkxqekqo.
rghnxsdfysdtghu! qgf isak cthtuike dik zknthhkx rxqldgnxsliq risyykhnk. ikxk tu s cysn cgx syy qgfx isxe kccgxdu: fdcysn{3hrxqld10h_15_r00y}. qgf vtyy cthe disd s ygd gc rxqldgnxsliq tu pfud zftyethn gcc ditu ugxd gc zsutr bhgvykenk, she td xksyyq tu hgd ug zse scdkx syy. iglk qgf khpgqke dik risyykhnk!
換字式暗号のようです。フラグらしき文字列(fdcysn{3hrxqld10h_15_r00y})があります。https://quipqiup.com/でCluesにfdcysn=utflagを設定して解いてみます。

1

フラグは、
utflag{3ncrypt10n_15_c00l}
です。

現代暗号の誕生と発展
岡本 龍明
近代科学社
2019-02-01


UTCTF writeup Low Sodium Bagel

Low Sodium Bagel

300

I brought you a bagel, see if you can find the secret ingredient.

by balex

steghideコマンドで埋め込まれたファイルを抽出してみます。パスフレーズは何も入力せずEnterとします。
$ steghide extract -sf low-sodium-bagel.jpeg 
Enter passphrase: 
wrote extracted data to "steganopayload4837.txt".
抽出されたファイルにフラグが記載されています。
フラグは、
utflag{b1u3b3rry_b4g3ls_4r3_th3_b3st}
です。



Pragyan CTF 2019 writeup Feed_me

Feed_me

150

Can you cook the most delicious recipe?

nc 159.89.166.12 9800

objdumpコマンドで逆アセンブルします。
$ objdump -s -D -M intel challenge1 >aaa.txt
下記の箇所で入力文字列の0文字目から、10文字目から、20文字目から数値に変換しています。
 bc1: 48 8d 45 92          lea    rax,[rbp-0x6e]
 bc5: 48 89 c7              mov    rdi,rax
 bc8: e8 f3 fc ff ff        call   8c0 <atoi@plt>
 bcd: 89 85 7c ff ff ff    mov    DWORD PTR [rbp-0x84],eax #変数a
 bd3: 48 8d 45 9c          lea    rax,[rbp-0x64]
 bd7: 48 89 c7              mov    rdi,rax
 bda: e8 e1 fc ff ff        call   8c0 <atoi@plt>
 bdf: 89 45 80              mov    DWORD PTR [rbp-0x80],eax #変数b
 be2: 48 8d 45 a6          lea    rax,[rbp-0x5a]
 be6: 48 89 c7              mov    rdi,rax
 be9: e8 d2 fc ff ff        call   8c0 <atoi@plt>
 bee: 89 45 84              mov    DWORD PTR [rbp-0x7c],eax #変数c
次に以下の箇所でa+bと表示された最初の数値を比較、b+cと2番目の数値を比較、c+aと3番目の数値を比較しています。
 bf1: 8b 95 7c ff ff ff    mov    edx,DWORD PTR [rbp-0x84]
 bf7: 8b 45 80              mov    eax,DWORD PTR [rbp-0x80]
 bfa: 01 d0                add    eax,edx
 bfc: 39 85 70 ff ff ff    cmp    DWORD PTR [rbp-0x90],eax ###
 c02: 0f 85 b6 00 00 00    jne    cbe <main+0x281>
 c08: 8b 55 80              mov    edx,DWORD PTR [rbp-0x80]
 c0b: 8b 45 84              mov    eax,DWORD PTR [rbp-0x7c]
 c0e: 01 d0                add    eax,edx
 c10: 39 85 74 ff ff ff    cmp    DWORD PTR [rbp-0x8c],eax ###
 c16: 0f 85 96 00 00 00    jne    cb2 <main+0x275>
 c1c: 8b 55 84              mov    edx,DWORD PTR [rbp-0x7c]
 c1f: 8b 85 7c ff ff ff    mov    eax,DWORD PTR [rbp-0x84]
 c25: 01 d0                add    eax,edx
 c27: 39 85 78 ff ff ff    cmp    DWORD PTR [rbp-0x88],eax ###
処理が分かったところで接続します。
$ nc 159.89.166.12 9800
Can you cook my favourite food using these ingredients :)
-3650 ; -19008 ; -5836 ;
次の式を満たすa,b,cを求めます。
a+b=-3650
b+c=-19008
c+a=-5836
a=4761、b=-8411、c=-10597となるので次のとおり入力します。
0000004761-000008411-000010597
That's yummy.... Here is your gift:
pctf{p1zz4_t0pp3d_w1th_p1n34ppl3_s4uc3}
フラグは、
pctf{p1zz4_t0pp3d_w1th_p1n34ppl3_s4uc3}
です。



Pragyan CTF 2019 writeup Game of Faces

Game of Faces

100

The Game of Faces, welcomes you. In this era, where AIs generate a lot of faces, we would like you to contribute to the same by uploading your image. Thank you for contributing, to continue.

http://159.89.166.12:15000/

URLにアクセスします。htmlソースを確認すると<form>要素がありますが表示されていません。したがって、下記のようにhtmlソースから<form>要素のみを抽出してブラウザで表示します。
  <form action='http://159.89.166.12:15000/' method = "GET" target="resultFrame">
              Upload Your Profile Picture : <input type="file" name="profile_pic" >
              <input type="submit" value="Upload Image" name="submit">
          </form>
適当なファイルをアップロードすると次のBase64エンコード文字列が表示されます。
VGhlX3Njcm9sbF9zYXlzPXRoZV9uaWdodF9raW5nVlN2YWx5cmlhbi50eHQ=
Base64でデコードすると次の文字列になります。
The_scroll_says=the_night_kingVSvalyrian.txt
http://159.89.166.12:15000/the_night_kingVSvalyrian.txtにアクセスするとフラグが表示されます。

1

フラグは、
pctf{You_L00K_Wi3Rd_IN_H3R3}

Pragyan CTF 2019 writeup Welcome

Welcome

50

Do you think this is a normal image? No! Dig deeper to find out more.....

ダウンロードしたjpegファイルをバイナリエディタで確認すると、JPEGの終了マーカー(FF D9)の後ろにzipデータが付いています。zipデータを抽出して解凍するとd.zipファイルができます。さらに解凍するとa.zipとsecret.bmpファイルができます。
secret.bmpの最後にbase64のエンコード文字列があります。
dGhlIHBhc3NdGhlIHBhc3N3b3JkIGlzOiBoMzExMF90aDNyMyE=
base64でデコードすると次の文字列になります。
the password is: h3110_th3r3!
a.zipファイルを上記のパスワードで解凍するとa.pngファイルができます。imageJで開いて[Image]-[Adjust]-[Color Balance]で調整すると下図の画像ができます。

bbb

フラグは、
pctf{st3gs0lv3_1s_u53ful}
です。

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


Pragyan CTF 2019 writeup Cookie Monster

Cookie Monster

100

Do prepare to see cookies lurking everywhere. http://159.89.166.12:13500/


URLにアクセスするとCookie変数flagがセットされアクセスするたびに値が変わります。セットされる値はMD5ハッシュ値で2文字の文字列をハッシュ化したもののようです。以下のサイトで検索します。
bc54f4d60f1cec0f9a6cb70e13f2127a pc
114d6a415b3d04db792ca7c0da0c7a55 tf
b2984e12969ad3a3a2a4d334b8fb385a {c
6f570c477ab64d17825ef2d2dfcb6fe4 0o
988287f7a1eb966ffc4e19bdbdeec7c3 ki 
0d4896d431044c92de2840ed53b6fbbd 3s
f355d719add62ceea8c150e5fbfae819 _@
12eccbdd9b32918131341f38907cbbb5 re
639307d281416ad0642faeaae1f098c4 _y
96bc320e4d72edda450c7a9abc8a214f Um
c716fb29298ad96a3b31757ec9755763 _b
51de5514f3c808babd19f42217fcba49 Ut
05cb7dc333ca611d0a8969704e39a9f0 _t
bc781c76baf5589eef4fb7b9247b89a0 HE
ff108b961a844f859bd7c203b7366f8e y_
2349277280263dff980b0c8a4a10674b @l
0b1cdc9fe1f929e469c5a54ffe0b2ed5 s0
364641d04574146d9f88001e66b4410f _r
c758807125330006a4375357104f9a82 3v
fcfdc12fb4030a8c8a2e19cf7b075926 Ea
440c5c247c708c6e46783e47e3986889 L_
97a7bf81a216e803adfed8bd013f4b85 @_
c1d12de20210d8c1b35c367536e1c255 l0
a8655da06c5080d3f1eb6af7b514e309 t}
フラグは、
pctf{c0oki3s_@re_yUm_bUt_tHEy_@ls0_r3vEaL_@_l0t}
です。



Aero CTF 2019 writeup crypto_warmup

crypto_warmup

100

Опять эти мемы, мы уже даже перестали что-либо им говорить. Просто посмотрим на это, они похоже сошли с ума.

Again, these memes, we have even stopped talking to them. Just look at it, they seem to be crazy.

file - MEGA

file - Google Drive

38行あるので1行1文字でフラグを表していると考えられます。また登場する単語が5種類なので5進数と考えてみます。
文字 10進数 5進数
A 65 230 kappa_pride pepe kappa 
e 101 401 look_at_this_dude kappa trollface 
r 114 424 look_at_this_dude kappa_pride look_at_this_dude 
o 111 421 look_at_this_dude kappa_pride trollface 
{ 123 443 look_at_this_dude look_at_this_dude pepe 
以上より復号するPythonプログラムを書きます。
import sys

d = {"kappa": 0, "trollface": 1, "kappa_pride": 2, "pepe": 3, "look_at_this_dude": 4}
f = open('meme_or_not')
l = f.readlines()
f.close()
for s in l:
a = s.rstrip('\n').split()
c = 0
for i in a:
c = c * 5 + d[i]
sys.stdout.write(chr(c))
実行するとフラグが出力されます。
$ python aaa.py
Aero{7a911ccfb18c2fafe2960b6ee2cbc9c7}
フラグは、
Aero{7a911ccfb18c2fafe2960b6ee2cbc9c7}
です。

現代暗号の誕生と発展
岡本 龍明
近代科学社
2019-02-01


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