off-by-one buffer overflow
最終更新日 2007-04-04 18:32:25 (1年以上前の記事です)
バッファオーバーフローの仕組み。
バッファを1バイトだけオーバーフローさせて制御を奪う方法。
ebp の下にリターンアドレスが格納されているものとしてプログラムは動いてるらしくて、 oldebp の1バイトを書き換えて、特定のメモリを指させ、その指し示したアドレスにリターンアドレスを埋め込んどく。
あとは、そのリターンアドレスの先にコードを埋め込んどけば制御が奪えるということだ。
| |
esp +----------------+
|****************|
|****************| < *2) *1 で指させたアドレスに shell コード先の
|****************| アドレス (3) を埋め込んどく
ebp +----------------+
| old ebp ****| < *1) old ebp の最後1バイトを **** で上書きし、
+----------------+ あるメモリを指すようにする
| return |
+----------------+
|**** shell ****| < *3) *2 から飛んできて shell が実行される
x86 上でうまくいくそうです。
最終更新日 2007-04-04 18:32:25
コメント
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5