saotake’s blog

-竿竹-

angr on PythonをCTFに使う

Defcon2016のbaby-re、write-upを見ていると、私のように真面目に連立方程式を解いているパターンの他に、angrというフレームワークを使って自動解析して解いているパターンが多く見受けられました。そこで、angrの勉強をしてみました。 angr公式: angr, a …

radare2とradare2-webuiのインストール

defcon2016qの他の人のwriteupを読んでいたら、どうも私のradare2となんか出力(?)が違う。そういえば大分前にインストールしてから一度もアップデートしてないなぁ、と思い、アップデートしてみました。 まずはradare2のホームページにあるコマンドで、ra…

(DEFCON2016Qual) baby:re

バイナリが渡されてそれを解析する問題。 バイナリを実行すると、var0~var12の13個の数字の入力を求められる。適当に入力すると、「Wrong」と表示されてプログラムが終了。正しい13個の数字を解析して見つけるのが問題の趣旨。 > ./baby-re Var[0]: 1Var[1]…

(TUCTF2016)The Neverending Crypto Level 2~(Crypto10~)

Level2以降は、似たようなものが続きます。アルゴリズムはたいして難しくないので手間と時間の戦いです。 pythonコードは汚いので紹介だけです。 ■Level2(10) abcz ! ABC encrypted is nop(-.-NOP Level1とほぼ同じで、平文と暗号化の対応関係が変わっただけ…

(TUCTF2016)The Neverending Crypto Level1(Crypto10)

ncでつないで問題を何回も解くタイプの問題。 お題は、以下の感じ。 xxx@ubuntu:~/py$ nc 146.148.102.236 24069 Welcome to The Neverending Crypto! Quick, find Falkor and get through this! This is level 1, the Bookstore Round 1. Give me some text…

(TUCTF)I'm playing!(Misc10)

問題文は Check out our fancy IRC! そういえば最近の子はIRCはあまり使わなさそうですね。大会ホームページにてアナウンスされている、公式チャットルームに接続するとトピックとして表示されていました。日本人はあまりこういうパブリック(?)な場に参加…

(TUCTF2016)Student Grades(Web50)

以下のホームページに対するSQLインジェクションを行う問題 単純に「A' or 'A'='A」などの常套句を入れても検索NGになる。 HTMLソースに以下のヒントあり。 <form> Enter name: <input type="text" id='info'> <input id="submit" type="submit" value="Check my grades!" class="waves-effect waves-light btn"> </form> <script> document.getElementById('submit').addEventListener('c…

(sCTF2016Q1)解けなかった問題

自分のレベルの低さを再認識した大会でした。趣味の域ですが、どんどん挑戦していきたいです。 ■Control Panel(40) ユーザ作成時、burpとかで改行コード入りのユーザ名/パスワードを送ると、改行されてファイル(/etc/passwdと/etc/shadow?)に書き込まれる模…

(sCTF2016Q1)Secure Text Saver(60)

点数の低い問題から解いているのだけど、そろそろ解けない難易度になってきた。 そんな中、Binary/PWNについては、高得点の問題もなぜか正解数が多い。 というわけで試しにBinary問題を解いてみると、本当に簡単だった。 与えられた実行ファイルを実行すると…

(sCTF2016Q1)rev2(45)

rev1とほぼおなじじゃん・・・。 hopperでdisassembleして比較文見つけて終わり。 0000000000400687 call scanf@PLT000000000040068c mov eax, dword [ss:rbp+var_8]000000000040068f cmp eax, 0x30dda830000000000400694 jne 0x400711 点数が低い問題から見…

(sCTF2016Q1)Musical Penguins(45)

解けなかった。 バイナリエディタで開くとそのままファイルフォーマットが書いている優しい世界。 ダウンロードしたら最新版だけダウンロード数が桁違いで笑ってしまう。 ダウンロードしたソフトでファイルを開くとギターの譜面がでて、いかにも1音が0/1の1b…

(sCTF2016Q1)Rain or Shine(35)

最初はさっぱりわからず。 それぞれの音の下位1bitを取り出したらflagになるのかな?と思いつつ、pythonに食わせようとするとエラーになった。どうもwavとして破損(?)している模様。 しょうがなくぼーっとBinaryを見ていくと、0058FC00あたりまではWAVっ…

(sCTF2016Q1)rev1(20)

デコンパイルができれば終わりな問題。 user@ubuntu:~/Desktop$ file rev1rev1: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=82958aa51b05984108d0808209174e172dbf…

(sCTF2016Q1)Lengthy Lingo(35)

こういう閃き系の問題は解けると嬉しいけど解けないと時間が無限に消えますね。 数字の桁数をASCIIコード解釈すればOK。CSVなのでエクセルに食わせて、 =CHAR(LEN(A1)) で解けました。スペースまでカウントしてしまわないように(1敗)。

(sCTF2016Q1)Ducks(30)

ソースを見ると、攻撃できそうなのは以下の2行かな、と思った extract($_POST);if ($pass == $thepassword_123) { ?> 有名な仕様(脆弱性)で、extract()でGET/POSTを展開するとき、既存の変数も上書きできてしまいます。なので、burpかなにかでパケットを…

(sCTF2016Q1)When in Rome(10)

解説するまでもなく、rotすればオワリ。 数字はrotしないとかそういうのはめんどいので単純なシーサー暗号にしてほしい。

(sCTF2016Q1)Banana Boy(20)

stegsolveにかけても特に何も見つからず。 試しにjpg解析のフリーソフトを探してきて食わせたら、 ファイルの末尾に無効なデータがあるとのこと。 バイナリを見てみると、jpgのあとにjpgがくっついている。 (後ろのjpgは表示されない) ということで、後ろ…

sCTF2016Q1

学生向けということで、スキルが学生未満の私にはちょうどいい練習になりそうなので参加。簡単な問題しか解けなくてつらい・・・。

VMwareイメージファイルvmdkファイルの最適化

この前、VMwareのイメージを入れているHDDがぶっ壊れました。 HDDの換装をしてイメージをバックアップからコピーしていたところ、ファイルサイズが巨大になっていることを発見。 対象は、VMwareのディスクイメージの実体、vmdkファイル。 初期状態では使…

She said it douesn't matter(Misc 100)

Webの問題とか、VPNで接続しないといけないので面倒なCTFですね。 使ったツールはこちら。 ■TweakPNG http://entropymine.com/jason/tweakpng/ 【問題からわかること】 ・問題の画像を開いてみると、右下に茶碗らしきものの画像がバグって表示されている…