SECCON 2017 Writeup
SECCON2017の予選、RiST(@realRiST)というチームで参加しました。 結果は1200点で177位でした。チームを結成して初めて出場したSECCON2016では200点だったので、成長率は500%です。 圧倒的成長卍
チームで解いた問題は
- Vigenere3d
- Run me!
- putchar music
- Qubic Rube
- SHA-1 is dead
- Powerful Shell
- Log search
- Thank you for playing!(解いたと言ってもいいのだろうか)
です。自分はPowerful Shellを解きました。ではWriteup書きます。
Powerful_Shell
ファイルの中身を見ると、
$ECCON=""; $ECCON+=[char](3783/291); $ECCON+=[char](6690/669); $ECCON+=[char](776-740); $ECCON+=[char](381-312); $ECCON+=[char](403-289); $ECCON+=[char](-301+415); : : If(Test-Path variable:global:psISE){"D`eb`u`g`g`in`g is `pr`o`h`ib`it`e`d";Exit} : : If($host."na`m`e" -ne "C`on`s`o`l`e`H`o`st"){"D`eb`u`g`g`in`g is `pr`o`h`ib`it`e`d";Exit} : :
とあったので、デバッグを阻止している部分をコメントアウト。次いでファイルの末尾に
"$ECCON" > file.ps1
を追記してファイルに落とし込む。
実行してもThis host is too flesh!
と出てプログラムが落ちる。「SECCON」の文字を出力しているであろう箇所の下の Checking Host
を削除。
次いでピアノ。
$secret=@(440,440,493,440,440,493,440,493,523,493,440,493,440,349)
とあるので、これに一致するように奏でれば次に進めるっぽい。
"$k " + [math]::floor($keytone[$k])
を挿入してキーと数値の対応を調べて、 $secret
の値に合う楽譜()を作ると
hhjhhjhjkjhjhf
となった。次のステージへ。
ここでも難読化されてるので、
[System.Text.Encoding]::ASCII.GetString($plain) > ans.ps1
としてファイルに書き出す。「また」難読化されたファイルが出て来るので、PowerShell ISEに食わせてステップイン実行する。
flag: SECCON{P0wEr$H311}