secconCTF 2023

CTFに挑んでいるなら高みを知っておきたくて参加しました。welcome以外見てみたけど難しく感じるw
できるものをやりたいけど、warmupは頑張りたい!そんな感じで記録していきます。解法は書いてないのでwriteupとして探していたら違います。

web

Bad JWT

さきほどNECさんのctfに挑んでいましたけど、JWTトークンは脆弱性が多くあるようですね。

pwnable

rop-2.35

The number of ROP gadgets is declining worldwide.という言葉とともに通信コマンドnc rop-2-35.seccon.games 9999とその先で動いているコードが与えられている状態。

コード見てもわからないので、ROPガジェットについてまずは知るところからかな。

crypto

plai_n_rsa

I've dropped the "n" ... where is my "n" :(という言葉とともにテキストファイルとcコードwが与えられている。
RSA関係ですね。mがflagなので平文を復号するようですね。nってn=(p-1)(q-1)で表されるあのnかな?方針は立ちやすいような気がする。

pow(a,b,c)はcを法としてaをb乗するということだと思う。
RSAに関しては(わかった気になれる『サマーウォーズ』の暗号 「RSA暗号」を解説)ここが分かりやすい。

今回与えられたものだけでは、結局nが分からないのでmを復号することはできない。

sandbox

crabox

🦀 Compile-Time Sandbox Escape 🦀という言葉とともに通信コマンドとコードが渡された。この分野知らないな、、サンドボックスで解析するのかな?

reversing

jumpout

Sequential executionという言葉とともになにかしらのファイルが渡された。 何かしらのファイルを渡されたら初手はfile,stringsコマンド。

└─# file jumpout
jumpout: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=707d320f5878e3aa46c32541861d1ac04efd9f29, for GNU/Linux 3.2.0, stripped
└─# strings jumpout
/lib64/ld-linux-x86-64.so.2
__cxa_finalize
__printf_chk
__libc_start_main
puts
strlen
__isoc99_scanf
__stack_chk_fail
libc.so.6
GLIBC_2.7
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.2.5
GLIBC_2.34
_ITM_deregisterTMCloneTable
__gmon_start__
_ITM_registerTMCloneTable
L$ H
T$(H
[]A\A]A^A_
|$0A
t$0L
PTE1
u+UH
D$81
D$ H
D$8dH+
D$(H
T$(dH+
8[]A\A]A^A_
FLAG:
%99s
Correct!
Wrong...
:*3$"
GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
.shstrtab
.interp
.note.gnu.property
.note.gnu.build-id
.note.ABI-tag
.gnu.hash
.dynsym
.dynstr
.gnu.version
.gnu.version_r
.rela.dyn
.rela.plt
.init
.plt.got
.plt.sec
.text
.fini
.rodata
.eh_frame_hdr
.eh_frame
.init_array
.fini_array
.dynamic
.data
.bss
.comment

実行形式のファイルだろう。stringsからGCCよりc言語かな?flagもありそう。

misc

warmupないのでできるかなw

readme 2023

Can you read the flag?ということで通信先で動いている情報と通信コマンドが渡されている。

└─# nc readme-2023.seccon.games 2023
path: flag.txt
[-] Path not allowed

与えられた通信を行うとpathを要求される。同じディレクトリ内にあるflag.txtをやると許可されていないと設定されている。