fr33f0r4ll

自分用雑記

pwn

Heap exploitation Hack.lu CTF 2014: OREO

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 Insomni'hack 2017 Wheel of Robots Heap exploitationのお勉強、Writeup見ちゃった。 問題はここ。 参考にしたのはshellphishのhow2heap。 問題 実行ファイルだけ降ってくる。 解くのにlibcが必要になるが、途中で任意アドレスの読み出し…

Heap exploitation HITCON CTF 2014: stkof

Heap exploitation HITCON CTF 2014: stkof Heap exploitationのお勉強、初めてWriteup途中で見ずに解けて嬉しい。 問題はここ。 参考にしたのはshellphishのhow2heap。 解く上でlibcが必要になるが、Hintととして動作環境が出されているし脆弱性を突けば任…

Heap exploitation 9447 CTF 2015: Search Engine

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 復習

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 復習

TokyoWesterns CTF 2018 load 復習 答えを見ながら復習。 実行してみるとどうもファイルを読み込んでるっぽい。 リモートホストで実行すると、flag.txtという名前のファイルが読み込める。 /proc/self/fd/0がopenできるので、ファイルの代わりに標準入力を開…

途中でexecveするときのgdbデバッグ方法

普通にset follow-exec-mode sameとかset follow-fork-mode parentとかやっても何故か子プロセスおっかけちゃって解析できなかったのでメモ。 まずset detach-on-fork offをする。 そうするとforkしてもデタッチせずにプロセスを止めておいてくれる。 止めて…

pwn基礎 書式文字列攻撃1

書式文字列攻撃 printfの%xなどのフォーマットを利用してメモリを読み書きする。 入力した文字列を直接printfの第一引数に指定できるときに可能になる。 確認方法 この脆弱性があるかどうかを確認するには、%xなどを入力してみて出力を確認してみるのがてっ…

avastのretdec

avastがデコンパイラを公開したので使ってみた。 お題はちょっと前のsharif-ctf2018のvuln4で、試しにデコンパイルしてみる。 インストール まずはretdecをインストールする。 githubのリポジトリにインストールのやり方があるのでプラットフォームに合わせ…

libcから関数本体のオフセットを取得する方法

nm -D libc.so.6 | grep function_name

Heap exploitationのお勉強メモ1

heap知らなさすぎてナウなpwnが解けないので少しずつやり始めました。 mallocとfreeのアルゴリズムはここでお勉強した。 攻撃方法はshellphishのhow2heapでお勉強してる。 PoCプログラムに混じって置いてあるmalloc_playgroudが最高に良い。 全ての機能は使…

リンクされるlibcのメモ

pwn

pwnしてるときに知ったので簡単にメモ。 プログラムにlibc.so.6がリンクされるとき、ASLRによってランダム化されるのは7バイト分で、下3バイトは000で固定、上6バイトは0x00007fで固定になる。 リンクされたときのlibcのベースアドレスはlddコマンドで知るこ…

pwn基礎 バッファオーバーフロー3

pwn

前回の続き。 今度は関数を呼び出すのではなく自分で実行するべき命令を用意し、バッファオーバーフローを利用してその命令を実行する。 使ってるコードはココ。 crackme 攻撃対象のコードはこれ。 // sudo sysctl -w kernel.randomize_va_space=0 #include <stdio.h></stdio.h>…

pwn基礎 バッファオーバーフロー2

pwn

前回の続き。 折角なので使っているコードとかをリポジトリにまとめておく。 サンプルコード 攻撃対象にするコード。 #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基礎 バッファオーバーフロー1

pwn

自分自身の理解を深めるために、また後でまぬけにも分からなくなったときに参照できるようにするために、基本事項についてまとめておこう。 もしかしたら間違っているところ教えてもらえるかもしれない。 pwn バッファオーバフローを使った攻撃 x86を想定す…

pwntools 使い方

pwntoolsの使い方 tags: ctf pwn pwntools howtouse 忘れないようにメモする。 公式のDocsとか、関数のdescriptionが優秀なのでそっちを読んだ方が正確だと思う。 でも日本語じゃないと読むのに時間がかかってしまうので日本語でメモする。 基本 基本的な機…

バッファオーバーフローでeipが書き換えられない

pwn

自分の環境で脆弱性のあるプログラムを再現できなかった pwnの練習をしようとして脆弱性のあるプログラムを書いたら、何故かその脆弱性を(幸か不幸か)exploitできなかった。 解決するまでに結構かかってしまった上、日本語の情報が見つからなかったから残し…