お絵描きやプログラミングやアーマードコアについて綴っていくつもりです。プログラミングは備忘録的に使うつもりだったりする。
プロフィール

Author:typeすつーか
FC2ブログへようこそ!

最新トラックバック
カウンターです
ついったー

広告とか

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--/--/-- --:-- スポンサー広告 TB(-) CM(-)

DSC01964_s.jpg
これが

















qr0.png
こうなって、














formatInfoが10111110なので、
もし誤り訂正レベルHだとすれば、
マスクは001なので、





















qrmask.png
こうなって、














qrmegrep.png
こうなる。






SECCON{PSwIQ9d9GjKTdD8H}



スポンサーサイト
2014/12/08 22:43 ctf TB(0) CM(0)
seccon2014 onlineソーシャルハック?の罠にハマったすつーか氏。
今後ミスリードを踏んでしまっても引き返せるような人間になりたい。

...とその前に
omoi.png
競技開始直後、問題画面やランキング画面にアクセスするとこんな画面が表示されてた。

ひょっとしてこれが問題なのか・・・?

と思ったりもした。(ほんのちょっとだけ。


さて、「ソーシャルハック?」のミスリードについてだ。

top.png

ソースを見るとひどい。改行もない。
topsrc.png

jsbeautifierにかけて整形してソースを読む。
定型文が予め定数でセットされていることがわかるが、ここに記述されている文章以外もunknownは発言している。
なぜだろうか?

とりあえずjsの難読化packerがかかっているのでunpackする。
unpack前↓
packer.png


unpack後↓
message.png

ソースを見ると、stageという変数で、今どのセリフをいうかorゲームオーバー(退席とか)を管理していることがわかる
こちらが発言をしたときに、ChromeのConsoleをみると何かエラー出たりする。
ので、Consoleで何かできないか探ってみると、
post("はつげん")とかするとブラウザの方には表示されないがGET通信で発言をサーバーに送信してることがわかる。
posthack.png
あと、post()メソッドを直接実行すると、英数字の正規表現に引っかからないため、ふつーにサーバーに英語の文字列送信できる。(フォーム使って、英語のみだったらjsのせいで、サーバーに一切リクエスト飛ばさない。
english.png


実はbogus()メソッドを使うと乗っ取りアカウントで発言できたりする。
bogus.png

あとscroll()メソッドを実行すると画面の最下部に自動でスクロールする(そんなことよりフラグくれ



GETメソッドで発言をサーバーに投げると、サーバーからはjsonが送られてくる
kaiwaCallback({"kaiwa":"ctf"})

kaiwaCallbackでkaiwaが帰ってくるんだからflagCallbackでflagが返ってくるのでは?とかテキトーに考えてリクエスト飛ばすもkaiwaしか返ってこない(つらい

URLからOSコマンドインジェクションとか出来んじゃね?とか思ってリクエスト投げまくってたら「ソーシャルハック?」鯖のレスポンスが悪くなってきて、気がついたらスコアサーバー落ちてたりした。(ぼ、ぼくのせいじゃないと思いたい・・・
で、ttp://chat.quals.seccon.jp/index.cgi?   にアクセスすると、なんかフォーム出てきたのでここからでもダイレクトに発言をサーバーに飛ばせれる。ソースを見るとこんな感じ。
keigo.png


なやみに悩んだ挙句、unknownが「画像を送信しろ」的なことを言ってるので
「DataURISchemeで送信してやるよ!!! ほらよ!!!」
ってやると「500 Internal Server Error」が発生した。
500error.png

メールアドレスが書いてあったので、チームの一人が「keigoアカウントでsshログインとか?」と提案。
しかし、パスワードで弾かれてしまう。

( ˘⊖˘) 。o(待てよ?「ソーシャルハック?」ってタイトルだし、keigoさんにメール送信してsshパスワードとか聞くのでは?)
と思ってラブレター送信!!!!

loveletter.png

・・・しかし、keogoさんからお返事が返ってくることはありませんでした・・・(´・ω:;.:...
(文面めっちゃ適当だったからかな・・・




WriteUpみると、
正解はホントに画像を見せる。。だった。。
画像を貼り付けたURL(というか画像の拡張子を含んだURL)
を発言すると、そのURLを踏みに行ってくれる。
しかも、ご丁寧に「見たよ」といってくれる。

画像の拡張子を貼らなかったら「画像のURLを教えてよ。」ってヒントくれたりする。

で、アクセスログとか見ると、UserAgentのところらへんが「」
access.png
あとはnmapしてサーバーに会いているポート調べてVNC開いてるのがわかるからそこにさっき手に入れたパスワード入れる。と、デスクトップにメモ帳が開いてて、フラグが書いてあるそうな。
追い詰めるとはこの事だったのか。


ジャンルがネットワークってなってるのを、もっと尊重するべきでした_(:3」∠)_

2014/07/19 23:15 ctf TB(0) CM(0)
チームL3のravencodingです。
はじめてSECCONに参加しました。
前日は緊張しすぎて楽しみすぎてなかなか寝付けませんでした。
「(NewsZEROに出てたみむらさんに生で会える...! )」
「(竹迫さんにも生で会える...!)」
(まさに、”むっちゃドキドキしてきた...”ですね(ゲフンゲフン


フォレンジックスのwriteupです。


---
指令部からの暗号文を解読してください

DiskImage.dd
---
500pt...(゚A゚;)ゴクリ

DiskImage.ddをAutopsyに食わせて見てみると、Message.txtと削除された画像ファイルが見つかりました。

Message.txt↓


司令部からのメッセージを送る。

VRZGNWSOHPMY

位置については、これまでと同様に写真を参照してくれ、
くれぐれも写真は忘れずに削除するように!!



削除されてた画像↓

tank.jpg

zero.jpg

google画像検索にかけると、タンクが「九五式軽戦車」零戦っぽいのが「西沢広義」と出た。
タンクの名前で検索したらガルパンが出てきたので焦った。
   (え、ガルパン関係なん...? アニメ見てないよ><; 艦これもやっとけばよかったかな><;)←と感じたけど特に深い意味は無いだろうとスルー。


ここで歴史に詳しいチムメンがWW2の頃はパープル暗号ではないかと写真見て即刻答えてくれた。
パープル暗号でぐぐってみると、日本版のエニグマらしいことがわかった。

とりあえず画像をバイナリエディタで覗いてみると、F6 Exif Version 0.9.0bという意味ありげなワードが見えたのでググってみる。
tool.png
すると、同じ名前のツールが見つかったので使ってみる。

exiftank.png
exifzero.png

ユーザコメントのところに
Rotor position 1:J
Rotor position 3:N
とあったので、アルファベットずらす回数かなと思い、submitするもwrong。



1時間くらいパープル暗号で解こうとしたけどそもそもパープル暗号がどういう手順で暗号化・復号化しているのかわからなかった。(時間かけすぎ;

パープル暗号について詳しく解説している記事がネットで見つからなかったので、エニグマ暗号のページを読むことにした。
問題 1926年 エニグマによる暗号通信開始
ここの画像を見てみると、ロータ1とかロータ2ロータ3と書いてあったので閃いた。
先ほどユーザコメントで見かけた


Rotor position 1:J
Rotor position 3:N


だが、もしかすると、

Rotor position 2:□


がダンプファイルの中に隠されているのではないかと睨んだのだ。

僕はAutopsy使いではないのでAutopsyでキーワード検索できるのを知っていたチームリーダに
「2:」で検索して!と依頼。

予想通り、

Rotor position 2:P


がヒット!

もしかすると、エニグマ計算機で復号できるんじゃないかと考えて、ネットでエニグマ計算機を探すも見つからず、
(予選終了後にググったら普通にヒットしてたので調べ方が悪かったんだろう)
どうしようかと悩んでいたところ、もう一人のチムメンが「Androidアプリでエニグマシュミレータありますよ」との情報を。
Screenshot_2013-12-02-01-16-04.png

さっそくインストールしてつかってみるも、エニグマ計算機のreflectorが3種類ある模様。
3つのreflectorを全てためしみて復号&submitすると正解だった。

FLAGワード↓
TORATORATORA

由来としてはこれ↓みたい。ワレ奇襲ニ成功セリ
トラトラトラ - Wikipedia


チーム全員で解いた感じでした。
歴史に詳しいチムメン、
Autopsyのキーワード検索機能を知っていたチームリーダ、
AndroidアプリでEnigmaシュミレータを見つけてくれたチムメン、
Androidアプリのreflector3種類総当りで500ptゲットした僕。
全員が絶妙なヒントを出し合って初めてとくことが出来ました。胸熱ですね(ぇ


あと、北陸予選二位のdendenbiyoriチームの方のwriteup見てると、僕らとはかなり解き方のアプローチが違ってておもしろかったです。


ちょっと残念だったのはこれ↓




最後に一言、
ORIJHHZOMBY
2013/12/02 01:39 ctf TB(0) CM(0)
8月のあたまくらいに、友達にタンプレを渡した。
ただ単純に渡すのもつまらないのでクイズの答えがわかったら、
タンプレの隠し場所が書いてあるというものにした。
そしたら、誕生日に仕返しされた(´・ω・`)

彼はWEBセキュリティに精通しているためか、js関連の問題を出してきた。
せっかくなので参考にしたサイトをメモしておく。

Google ChromeのJavaScriptデバッガの進化がすごい

/packer/で難読化されたJavaScriptコードをきれいに元に戻す術

packerで圧縮されたコードのデコード

StackOverflowにも同じようなのがあった。
どうも検索ワードがうまいこと/packer/の特徴的な部分のワードを含んでいたらしい。


参考サイトはいっぱい出てきたけど、やったことは二つだけ。
packer decoder (blog.shimazu.org
で、何かしらにEncodeされているコードをdecodeして、可読性のあるコードにして、それを読み解いて完了。
でもこちらは整形までしてくれなかったので、
Online JavaScript beautifier
を使った。



2013/09/24 13:46 ctf TB(0) CM(0)
jarファイルとかはここ↓
Apache Commons
からダウンロードしてつくった



import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.commons.codec.binary.Base64;


public class Onion {
public static void main(String[] args){
File inFile = new File("OriginOnion.txt");//まずOnionを用意する.
try {
FileInputStream fis = new FileInputStream(inFile);
byte byte0[] = new byte[(int) inFile.length()];
fis.read(byte0);
fis.close();


//剥き剥きの部分.
byte tmp[] = new byte[(int) inFile.length()];
tmp = Base64.decodeBase64(byte0);
for(int i = 0; i < 15; i++){
tmp = Base64.decodeBase64(tmp);
}

//カーネルの部分を取り出す.
File outFile = new File("flag.txt");
FileOutputStream fos = new FileOutputStream(outFile);
fos.write(tmp);
System.out.println(new String(tmp));
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}

}
2013/03/26 16:23 ctf TB(0) CM(0)
検索フォーム
ブロとも申請フォーム
QRコード
QR
IPv4枯渇時計
linuxコマンド
ぶくろぐ
本棚です
icat
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。