fr33f0r4ll

自分用雑記

2017-12-01から1ヶ月間の記事一覧

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コマンドで知るこ…

Live USBでブートできなかったときのためのメモ

タイトル通り、USBでブートしようとしたらできなかったのでその解決方法。 古いPCにUSBブートでxubuntu入れようとしたらmissing operating systemの表示が出てブートできなかった。色々調べた結果、UNetBootinだとUSBにbootフラグが立たないときがあるらしい…

opensslでファイル暗号化

みんな見られたくない画像とか一杯ストレージにあるよな? そういうわけでopensslを使ってファイルを暗号化する方法をメモ。 自分一人が暗号化、復号化できればそれでいいので共通鍵方式のAESを使って暗号化する。速度的にRSAを使うより多分速いだろうし。 暗…

SECCON CTF 2017 Quals writeup

ctf

チームで参加できたのでたくさん解けた。 僕が解いたのはputchar_music, vigenere3d, ps_and_qsの3つ。 チームは200位くらい。 コードはここ。 putchar music 映画のタイトル当てろという問題。 TLにこの時点で分かってる人いて笑った。 Cのワンライナーが降…

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>…