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