読者です 読者をやめる 読者になる 読者になる

MMACTF 1st 2015に出た

Mr. Takedaで出て何もしなかった。1100ptで42位。

国内で言うと7位?まあつらい

Login as admin!

某ctfの某と全く同じだったけどこれ以外の解き方があったっぽい。

Splitted

わからんということでチームメイトのきひろちゃんに既にPSDになった状態のファイルを渡された。

Paint.netで開いてみたら白背景レイヤーがFLAGの上に被さっているだけだった。変換ツール避けかなんかか?

This program cannot be run in DOS mode.

f:id:misodengaku:20150910035013p:plain 実行ファイルを1バイト書き換えるだけ。

渡された実行ファイルを普通に実行すると「このファイルは実行できません」と言われて16ビットバイナリかなんかか?と思ったけどどうも普通の32bitバイナリっぽい。

ってことはヘッダがおかしそうなんでいろいろ見て回ったらMZスタブに書いてあるPEヘッダのオフセットが0で潰されていた。正しい値に直すと普通に起動できる。

Uploader

"php without start tag"みたいな怪しい英語でググりまくったら「PHP7.0で<% %>とか<script language="php"></script>で囲われた範囲をPHPとして解釈するのやめるよ」的な公式のリファレンスが出てきた。

ご丁寧にHTTPヘッダでPHP5.xを使っていることを教えてくれていたので怪しいPHPコードを<script language="php"></script>で囲ってアップロードした。

lsしただけでは見つからず結局/flagにFLAGがあった。

stream...

pcapngが渡されるのでWiresharkでpcapにしてからNetworkMinerに食わせるとストリーミング再生している動画のデータ?がファイルとして取り出せる。

ただそのまま拡張子をwmvとかにしても再生できないので、適当にwmv形式のファイルヘッダを漁ったところ(案外面倒)30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6Cで始まる(参考)ことがわかったのでそこが先頭になるようにデータを削る。

しかしこれだけだと動画の再生時間?かなにかを示すフィールドが0のままで再生できない(一応0xFFとかで潰してみたりもしたけどダメだった)。

結局ffmpegに食わせてaviとして出力、普通に再生してFLAGゲット。

MQAAAA

渡された文字列をBase64でデコードするとよくわからないファイルが出来上がる。

中身を見てみると#@~で始まって#~@で終わっているのに規則性がありそうな気がするんで#@~でググったらエンコードされたVBScript?らしいことがわかった。

デコードする方法もあるらしいんだけど適当に拡張子を.vbeにして実行したらFLAGが出た。

おわり

最高で100pt問しか解けなくてつらい

まあ自分が勉強不足なだけで全体的によかったと思うので次回以降期待してます