INS'hAck 2017 Writeup

この大会は2017/4/7 1:30(JST)~2017/4/10 1:30(JST)に開催されました。
今回もチームで参戦。結果は1518点で418チーム中23位でした。
自分で解けた問題をWriteupとして書いておきます。

Sanity (MISC 1)

問題にフラグが書かれている。

INSA{Youre_sane_Good_for_you}

Easy HTML (Web 25)

HTMLソースにフラグが書かれている。

<input type="hidden" value='TODO: change main password of "Admin" from "INSA{ThatWasATrainingOneDontWorry}" to "123456"'>
INSA{ThatWasATrainingOneDontWorry}

10 Cl0v3rf13ld Lane Signal (Forensics 75)

バイナリエディタで見ると、以下のようにファイルが入っているようだ。

00000000-00009733 JPG
00009734-0001A807 PNG
0001A808-         OGG

OGGAudacityで開くと、モールス信号のような線になっている。https://en.wikipedia.org/wiki/Morse_codeを参考に置き換える。

.. -. ... .- -.--. -- ----- .-. ..... ...-- ..--.- .-- .---- .-.. .-.. ..--.- -. ...-- ...- ...-- .-. ..--.- ....- --. ...-- -.-.-- -.--.-
I  N  S   A  {     M  0     R   5     3     _      W   1     L    L    _      N  3     V    3     R   _      4     G   3     !      }
INSA{M0R53_W1LL_N3V3R_4G3!}

Sunshine CTF 2017 Writeup

この大会は2017/4/8 5:00(JST)~2017/4/9 4:00(JST)に開催されました。
今回もチームで参戦。結果は476点で204チーム中28位でした。
自分で解けた問題をWriteupとして書いておきます。

Snowflake (Crypto 1)

問題に記載してあるフラグを投入するだけ。

sun{74K3_Y0UR_p4r7icIP47i0N_7r0PhY_y0U_5N0Wfl4k3}

Nonlinear 2 (Stego 100)

なんとなくQRコードになりそうな16進数が並んでいる。2進数に変換する。

with open('nonlinear2.txt', 'r') as f:
    lines = f.readlines()

for line in lines:
    h_str = line.strip()[2:]
    bin_str = ''
    for c in h_str:
        bin_str += format(int(c, 16), '04b')
    print bin_str

この結果、やはりQRコードのようだ。

00000000000000000000000000000000
00011111110001010101011111110000
00010000010101001011010000010000
00010111010000010101010111010000
00010111010111011101010111010000
00010111010010000111010111010000
00010000010110110111010000010000
00011111110101010101011111110000
00000000000011100000000000000000
00011111011110101011101010100000
00010010000101010100001001000000
00010111110001000010110011110000
00010100101100010000010000110000
00001101111111011011011101110000
00010100000110000101100011100000
00010101011011110010011101110000
00010000001100100011100000100000
00010010111000111111111101010000
00000000000110010101000110100000
00011111110111000001010100110000
00010000010011000011000100110000
00010111010110101011111101000000
00010111010111100101110110110000
00010111010110010001101011010000
00010000010111000100011100010000
00011111110110011100101100110000
00000000000000000000000000000000

端の0を削除し、sqrd.pyで読み込む。

>sqrd.py qr.txt
sun{qr_c0d3s_4r3_st00p1d}
sun{qr_c0d3s_4r3_st00p1d}

Easy 1 (Web 25)

レスポンスヘッダのflagパラメータにフラグあり。

sun{k4rEfUL_D0nT_H1T_y0uR_HE4dEr}

Teaser CONFidence CTF 2017 Writeup

この大会は2017/4/2 7:30(JST)~2017/4/3 7:30(JST)に開催されました。
今回もチームで参戦。結果は1点で258チーム中99位でした。
暗号の問題を解けなかったのが非常に残念!
自分で解けた問題をWriteupとして書いておきます。

Sanity check (Miscellaneous 1)

freenodeの#dragonsectorチャネルに入ると、フラグを見つけることができる。

07:32 *topic : Dragon Sector CTF Team | Confidence CTF Teaser: https://ctf.dragonsector.pl | DrgnS{Good_job!_This_is_what_a_flag_looks_like} | utf8: żółwiątko
DrgnS{Good_job!_This_is_what_a_flag_looks_like}

April Fools' GTF 2017 Writeup

この大会は2017/4/1 6:00(JST)~2017/4/1 18:00(JST)に開催されました。
今回もチームで参戦。結果は1243点で278チーム中42位でした。
自分で解けた問題をWriteupとして書いておきます。

Welcome!! (Misc 500)

問題は「あなたのパスワードを入力してください(今日はエイプリルフールです.)」。
答えは何でもよかったらしいが、こう入れてみた。

password

O-mikuji (Guess 100, -500)

問題は「フラグは数字です.」とだけ。
それっぽい数字を選んだら間違いでフラグ2を取って、-500点になってしまった。URLに含まれている問題番号が正解のようだった。

6

Thank You! (Misc 9)

アンケートに答えるだけ。

AFCTF{thank_you_for_wasting_your_time}

Securinets CTF Quals 2017 Writeup

この大会は2017/3/26 2:00(JST)~2017/3/27 2:00(JST)に開催されました。
今回もチームで参戦。結果は1500点で78チーム中8位でした。
自分で解けた問題をWriteupとして書いておきます。

Fix It, Or May Be Not? (Binary 50)

SSHでログインし、damagedファイルを調べる。

DemBruiser@vps389317:~$ xxd damaged | head
00000000: 454c 463e 4000 0000 0000 4000 0000 0000  ELF>@.....@.....
00000010: 0000 981a 0000 0000 0000 0000 0000 4000  ..............@.
00000020: 3800 0040 001f 001c 0006 0000 0005 0000  8..@............
00000030: 0040 0000 0000 0000 0040 0040 0000 0000  .@.......@.@....
00000040: 0040 0040 0000 0000 00f8 0100 0000 0000  .@.@............
00000050: 00f8 0100 0000 0000 0008 0000 0000 0000  ................
00000060: 0003 0000 0004 0000 0038 0200 0000 0000  .........8......
00000070: 0038 0240 0000 0000 0038 0240 0000 0000  .8.@.....8.@....
00000080: 001c 0000 0000 0000 001c 0000 0000 0000  ................
00000090: 0001 0000 0000 0000 0001 0000 0005 0000  ................

ELFとしては先頭に1バイト「7f」が足りない。

DemBruiser@vps389317:~$ strings damaged
ELF>@
/lib64/ld-linux-x86-64.so.2
vX#&I
s7"6cW
libc.so.6
__stack_chk_fail
rand
__libc_start_main
snprintf
__gmon_start__
GLIBC_2.2.5
GLIBC_2.4
UH-H
AWAVA
AUATL
[]A\A]A^A_
yeah it's a boring program
;*3$"
NDc2ZjZmNjQ1ZjRhNmY2MjVmNDI3Mjc1Njg1Zjc0Njg2NTVmNzc2ZjcyNzM3NDVmNjk3MzVmNzM3\nNDY5NmM2YzVmNzQ2ZjVmNjM2ZjZkNjU=\n ★あやしい文字列発見!
GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.4)5.4.020160609
crtstuff.c
__JCR_LIST__
deregister_tm_clones
__do_global_dtors_aux
completed.7585
__do_global_dtors_aux_fini_array_entry
frame_dummy
__frame_dummy_init_array_entry
damaged.c
__FRAME_END__
__JCR_END__
__init_array_end
_DYNAMIC
__init_array_start
__GNU_EH_FRAME_HDR
_GLOBAL_OFFSET_TABLE_
__libc_csu_fini
_ITM_deregisterTMCloneTable
do_other_stuff
_edata
__stack_chk_fail@@GLIBC_2.4
snprintf@@GLIBC_2.2.5
__libc_start_main@@GLIBC_2.2.5
__data_start
__gmon_start__
__dso_handle
_IO_stdin_used
__libc_csu_init
__bss_start
main
_Jv_RegisterClasses
__TMC_END__
_ITM_registerTMCloneTable
do_stuff
rand@@GLIBC_2.2.5
.symtab
.strtab
.shstrtab
.interp
.note.ABI-tag
.note.gnu.build-id
.gnu.hash
.dynsym
.dynstr
.gnu.versio
waaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
DemBruiser@vps389317:~$ echo NDc2ZjZmNjQ1ZjRhNmY2MjVmNDI3Mjc1Njg1Zjc0Njg2NTVmNzc2ZjcyNzM3NDVmNjk3MzVmNzM3NDY5NmM2YzVmNzQ2ZjVmNjM2ZjZkNjU= | base64 -d
476f6f645f4a6f625f427275685f7468655f776f7273745f69735f7374696c6c5f746f5f636f6d65
DemBruiser@vps389317:~$ echo 476f6f645f4a6f625f427275685f7468655f776f7273745f69735f7374696c6c5f746f5f636f6d65 | xxd -r -p
Good_Job_Bruh_the_worst_is_still_to_come
Good_Job_Bruh_the_worst_is_still_to_come