眠気

戯言とメモ

writeup

色々あって色々アレでした。

一度も更新しないまま2018年も終わりかけているのでとりあえず…


SECCON 2018 Online CTF

参加してました

チームで参加したため、自分として解けた問題がとても少ないですが

以下writeupです。

Runme

こういう、stringsではflagは見えないけどバイナリに平文でフラグが置いてるやつかどうかを確認するスクリプト

以前適当に書いていたので、

とりあえず実行したらありそうだったので、objdumpしてフラグっぽい部分をawkしただけでした。

$ cat megrep.rb
b = STDIN.read.scrub('')
d = b.split('').select{|b|b =~ /^[a-zA-Z0-9{}_]+$/}
flagType = "SECCON".split("")
res = ""
100.times do |i|
    reg =Regexp.new flagType.map{|t| "#{t}.{0,#{i.to_s}}"}.join("") + "\\{(\\w+)\\}"
    if r = d.join("").match(reg)
        puts "Detect flag!!!"
        p r[0]
        return
    end
end

$ cat runme.exe | ruby megrep.rb
Detect flag!!!
"SUVMU9UBRjEUVMU9UBRjCUVMU9UBRjCUVMU9UBRjOUVMU9mUBRjNUVMU9AUBRj{UVMU9UBRjRUVMU9UBRjuUVMU9UBRjnUVMU9UBRjnUVMU9eUBRj1UVMU99UBRjnUVMU9UBRj6UVMU9UBRj_UVMU9UBRjPUVMU9UBRj4UVMU9ua0UBRj7UVMU9u91UBRjhUVMU9u2UBRj}"
objdump -d runme.exe | awk '/6a /{printf "%c",strtonum("0x"$3)}'
"@C:\Temp\SECCON2018Online.exe" SECCON{Runn1n6_P47h}@%

フラグ出すところまで自動化したいけど、あんまり使い道がないので放置…

block

apkのdllをいじるだけ。

ildasmで以下の部分を編集 f:id:lailaiskyn:20181102190949p:plain

Transform以下にVector3を引数に取るやつを探すとTranslateがあるので変えてdllに変換

Unity - Scripting API: Transform

msilの編集は以下が参考になります

qiita.com

あとはAPK Editorでdllを変えたapkをインストールして実行

手前に飛んでくるフラグをスクショを取りまくって確認していました。

f:id:lailaiskyn:20181102192033j:plain

shooter

il2cppキツイなあと思い、global-metadata.datを眺めてただけ。

http://staging.shooter.pwn.seccon.jp/adminSQL injectionがあることまでは分かっていたけど、

web問じゃないし流石にないか…とか思ってたら終わった…阿呆でした

解けたweb問が解けなかったのをとても反省した…

来年はもうちょっと解けるようにしたい。

そんな希望