2015-01-01から1年間の記事一覧

DEF CON Qualifier 2015: r0pbaby

pwnの勉強のため DEF CON Qualifier 2015: r0pbabyを解いてみた。 今回は、ローカルの環境のみで実行。 以下のサイトを参考とした。 http://geeksspeak.github.io/blog/2015/05/18/defconctf-2015-quals-ropbaby-writeup/ https://blog.0x80.org/r0pbaby-wri…

セキュリティコンテストチャレンジブック[書式文字列攻撃(got)]

書式文字列攻撃を試してみる。 strlen関数をsytem関数に書換え、 /bin/shを起動する。 おそらくp123の表の、 3行目の1列目は、[%43272x]ではなく[%41352x] 4行目の3列目は、[43280]ではなく[41360] #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { </string.h></stdio.h>…

実行ファイルのセキュリティ機構

実行ファイルのセキュリティ機構 コンパイル時に設定可能なもの Stack Smash Protection BOF 対策。スタックフレームのローカル変数領域と Saved EBP の間に Canary(カナリア) と呼ばれる値を挿入。この部分の値の変更を判定。 NX bit(No eXecute bit) Windo…

セキュリティコンテストチャレンジブック[書式文字列攻撃]

とりあえずメモ。加筆予定 $ gcc -m32 -w -o fsb fsb.c $ ./fsb AAAA%p,%p,%p,%p,%p,%p,%p,%p,%p AAAA0x80,0xf7fbcc20,0xffffd854,(nil),(nil),(nil),0x41414141,0x252c7025,0x70252c70 secret = 0x12345678 secret のアドレスを確認 $2 = (<data variable, no debug info> *) 0x804a028 <secret> </secret></data>…

セキュリティコンテストチャレンジブック[ret2libc]

ret2libc の後にもう1度関数を呼ぶ とりあえずメモ rp++ で pop している場所を探す。 $ rp -f bof3 -r 1 | grep pop 0x0804855f: pop ebp ; ret ; (1 found) 0x08048339: pop ebx ; ret ; (1 found) 0x08048586: pop ebx ; ret ; (1 found) どれを使っても…

CTFに使いそうな小技[Python]

よく使うのに忘れがちなのでメモしておく。 実験 >>> print 'AAAA'.encode('hex') #Ascciiを16進数表記にする 41414141 >>> int('41414141',16) # 16進数を10進数に変換 1094795585 Ascii文字列を16進表記 >>> import binascii >>> binascii.hexlify('hoge')…

セキュリティコンテストチャレンジブック[エクスプロイト(ret2plt)]

ret2plt(Return to Procedure Linkage Table)の やり方。 動作検証してみた。 OS: Ubuntu 14.04 64bit PLTに書かれた短いコード片を関数として呼び出すと、動的リンクされたライブラリのアドレスを解決してライブラリ内の関数を実行してくれるらしい。 ret2p…

セキュリティコンテストチャレンジブック

セキュリティコンテストチャレンジブックの内容を試してみた。 // bof.c /* gcc -m32 -fno-stack-protector -o bof bof.c python -c 'print("CTF for Beginners")' | ./bof python -c 'print("A"*128)' | ./bof python -c 'print("A"*128)' | strace -i ./bo…

久しぶりのブログ

10ヶ月ぶりのブログ。 アウトプット用にしばらく続けてみるかな。