pwn
SECCON Beginners CTF 2019 Writeup 忙しくてCTFしてなかったので復帰戦、全然駄目になっていた。 解けたのは Rev Seccompare Leakage Linear Operation Crypto So Tired Party Misc containers Dump だけ、1日目から8時間くらいやってあとはあきてしまった…
Heap exploitation Hack.lu CTF 2014: OREO How2Heapシリーズの続き、とうとうhouse of spiritまで来た。 house of spirit自体の解説はhttps://github.com/shellphish/how2heap、問題はhttps://github.com/ctfs/write-ups-2014/tree/master/hack-lu-ctf-2014…
Heap exploitation Insomni'hack 2017 Wheel of Robots Heap exploitationのお勉強、Writeup見ちゃった。 問題はここ。 参考にしたのはshellphishのhow2heap。 問題 実行ファイルだけ降ってくる。 解くのにlibcが必要になるが、途中で任意アドレスの読み出し…
Heap exploitation HITCON CTF 2014: stkof Heap exploitationのお勉強、初めてWriteup途中で見ずに解けて嬉しい。 問題はここ。 参考にしたのはshellphishのhow2heap。 解く上でlibcが必要になるが、Hintととして動作環境が出されているし脆弱性を突けば任…
Heap exploitのお勉強のためにhttps://github.com/shellphish/how2heapを解いたので(Writeup見ながらだけど)、そのメモ。 問題 fastbin_dup_into_stackの9447-search-engineを解いた。 問題のリンクはhttps://github.com/ctfs/write-ups-2015/tree/master/94…
SECCON CTF 2018 Online Profile 復習 参考にしたサイト https://teamrocketist.github.io/2018/11/04/Pwn-Seccon-2018-Profile/ Writeupその1、丁寧な方 https://github.com/sajjadium/ctf-writeups/tree/master/SECCON/2018/profile Writeupその2、概要し…
TokyoWesterns CTF 2018 load 復習 答えを見ながら復習。 実行してみるとどうもファイルを読み込んでるっぽい。 リモートホストで実行すると、flag.txtという名前のファイルが読み込める。 /proc/self/fd/0がopenできるので、ファイルの代わりに標準入力を開…
普通にset follow-exec-mode sameとかset follow-fork-mode parentとかやっても何故か子プロセスおっかけちゃって解析できなかったのでメモ。 まずset detach-on-fork offをする。 そうするとforkしてもデタッチせずにプロセスを止めておいてくれる。 止めて…
書式文字列攻撃 printfの%xなどのフォーマットを利用してメモリを読み書きする。 入力した文字列を直接printfの第一引数に指定できるときに可能になる。 確認方法 この脆弱性があるかどうかを確認するには、%xなどを入力してみて出力を確認してみるのがてっ…
avastがデコンパイラを公開したので使ってみた。 お題はちょっと前のsharif-ctf2018のvuln4で、試しにデコンパイルしてみる。 インストール まずはretdecをインストールする。 githubのリポジトリにインストールのやり方があるのでプラットフォームに合わせ…
nm -D libc.so.6 | grep function_name
heap知らなさすぎてナウなpwnが解けないので少しずつやり始めました。 mallocとfreeのアルゴリズムはここでお勉強した。 攻撃方法はshellphishのhow2heapでお勉強してる。 PoCプログラムに混じって置いてあるmalloc_playgroudが最高に良い。 全ての機能は使…
pwnしてるときに知ったので簡単にメモ。 プログラムにlibc.so.6がリンクされるとき、ASLRによってランダム化されるのは7バイト分で、下3バイトは000で固定、上6バイトは0x00007fで固定になる。 リンクされたときのlibcのベースアドレスはlddコマンドで知るこ…
前回の続き。 今度は関数を呼び出すのではなく自分で実行するべき命令を用意し、バッファオーバーフローを利用してその命令を実行する。 使ってるコードはココ。 crackme 攻撃対象のコードはこれ。 // sudo sysctl -w kernel.randomize_va_space=0 #include <stdio.h></stdio.h>…
前回の続き。 折角なので使っているコードとかをリポジトリにまとめておく。 サンプルコード 攻撃対象にするコード。 #include <stdio.h> #include <unistd.h> void shell() { char* args[] = {"/bin/sh", NULL}; execve("/bin/sh", args, NULL); } void echo() { char buf[0x10</unistd.h></stdio.h>…
自分自身の理解を深めるために、また後でまぬけにも分からなくなったときに参照できるようにするために、基本事項についてまとめておこう。 もしかしたら間違っているところ教えてもらえるかもしれない。 pwn バッファオーバフローを使った攻撃 x86を想定す…
pwntoolsの使い方 tags: ctf pwn pwntools howtouse 忘れないようにメモする。 公式のDocsとか、関数のdescriptionが優秀なのでそっちを読んだ方が正確だと思う。 でも日本語じゃないと読むのに時間がかかってしまうので日本語でメモする。 基本 基本的な機…
自分の環境で脆弱性のあるプログラムを再現できなかった pwnの練習をしようとして脆弱性のあるプログラムを書いたら、何故かその脆弱性を(幸か不幸か)exploitできなかった。 解決するまでに結構かかってしまった上、日本語の情報が見つからなかったから残し…