6月 5

DEFCON 20 CTF Forensic 300(f300) writeup

問題文: Please get my key back!
Challenge File

まずはダウンロードしてきたChallenge Fileの種類を調査。
# file for300-47106ef450c4d70ae95212b93f11d05d
for300-47106ef450c4d70ae95212b93f11d05d: data

data…

仕方がないので直接中身を眺めます。

ファームウェアっぽい?
この中から何かを取り出さなければ何もはじまらない。
ってことで「firmware-mod-kit」の「extract-ng.sh」問題ファイルを食わせてみます。
(firmware-mod-kitについての説明はココ参照。)

# ./extract-ng.sh for300-47106ef450c4d70ae95212b93f11d05d
Firmware Mod Kit (build-ng) 0.76 beta, (c)2011 Craig Heffner, Jeremy Collake http://www.bitsum.com 
Firmware-Mod-Kit has not been built yet. Building...
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
 
--------------- SNIP ----------------
 
Extracting 983180 bytes of header image at offset 0
Extracting squashfs file system at offset 983180
Extracting squashfs files...
Firmware extraction successful!
Firmware parts can be found in 'fmk/*'

取り出せた模様。
中身はこんな感じです。
# ls
bin dev etc home htdocs lib mnt proc sbin sys tmp usr var www

よく分からないのでディレクトリ内を手当たり次第調査していると明らかに怪しい名前のテキストが見つかったので中身をチェックします。
# cd home/
# ls
dlink
# cd dlink/
# ls
key.txt
# cat key.txt
ewe know, the sh33p always preferred Linksys

このテキストに書かれた内容でCORRECT!

あとで「firmware-mod-kit」の出力結果にあったログを見て分かったのですがbin-walkというツールがあるんですね。
単体で今回の問題ファイルを食わせてみたら以下のような出力を得ました。
# binwalk for300-47106ef450c4d70ae95212b93f11d05d
DECIMAL HEX DESCRIPTION
-------------------------------------------------------------------------------------------------------
108 0x6C LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompressed size: 3008436 bytes
983148 0xF006C PackImg Tag, little endian size: 14690560 bytes; big endian size: 2744320 bytes
983180 0xF008C Squashfs filesystem, little endian, version 4.0, size: 724610815 bytes, 1470 inodes, blocksize: 0 bytes, created: Sat Mar 6 20:29:04 1993

今回はファームウェアっぽいといだけで「firmware-mod-kit」を使ったわけですが、本来はこのように調査してLZMAであるなどということが分かった上で進めていくのが模範的なんでしょうかねー

Category: ctf | DEFCON 20 CTF Forensic 300(f300) writeup はコメントを受け付けていません
6月 4

DEFCON 20 CTF GrabBag 400(gb400) writeup

問題文: What is Jeff Moss’ checking account balance?
Bank site = http://140.197.217.85:8080/boa_bank
User:blacksheep
Password:luvMeSomeSheep

リンク先にアクセスすると早速Basic認証がお出迎えしてくれるので問題文にあるUser/Passwordで認証を行います。
すると下図の通り銀行(に模したサイト)「Baaaaaaank Of America」のサイトにアクセスできます。

Webサイトで個人(ここではJeff Moss)の情報をとなればSQL Injection。
ということでアタックできそうなポイントを探します。
zipコードにより支店を検索するところに「'(シングルクォート)」を入力してみると
下図のようにエラーを表示します。

テーブル情報を入手するためにSQL文を実行させます。

‎0 union select table_name,'0','0','0','0','0' from information_schema.tables

ずらずらずらっとでてきます。ここの情報を参考にさらにSQL文を実行していきます。

0 union SELECT column_name,'0','0','0','0','0' FROM information_schema.columns WHERE table_name ='customer'

いい感じ♪

ここまできたらユーザ名とパスワードを。
0 union SELECT username,password,'0','0','0','0' FROM customer
これでユーザ名とパスワードの一覧表が取得できるはずですが、出力の際に「<」や「>」などがあると
ブラウザ上での表示がされない場合があるのでソースコードで確認します。

「jeff moss」こと「dark tangent」のものと思われる
ユーザ名「dtangent」とそのパスワード「erl(<qZsxZ」が見つかりました。



このアカウント情報を利用して「My Baank」からログインを行います。


ログインに成功し、情報を見ることができました。

問題文は「What is Jeff Moss’ checking account balance?」ですので
「checking」の最新の数値である「0.00」で正解。

問題文の「balance」の意味がよく分からず一番下に表示されている数値「-3160.86」を入力しても
正解となりました。正解したからいいものの、これはどう見るべきものだったのかは分からずじまいでしたw

Category: ctf | DEFCON 20 CTF GrabBag 400(gb400) writeup はコメントを受け付けていません