196の日記

セキュリティ系の勉強、その他開発メモとか雑談、忘れそうな計算式などを書き溜める場所になっています. githhubはUnity触っていた頃ものがメイン https://github.com/196kakinuma

セキュリティコンテストチャレンジブック pwn ASLR回避〜ブルートフォースの誤植

詳しい内容は省略

ASLRが有効だと、libc.so.6のアドレスが不定となり、今までの攻撃手段が使えない。しかし、そのランダム性にも規則性があり特に今回で言えば、8桁中6、5、4桁目のみが変化しています。なので、その範囲でアドレスを決め打ちし、呼び出したい関数のアドレスもoffsetを利用して決めてしまいます。あとは、そのアドレスになることを願って、ひたすら同じ入力を繰り返すだけです。

誤植

最後のbreakはif文にあるべきなので、このインデントは間違い。このままだと一回実行しただけで、breakしてしまう。なので以下のように修正

実行画面

f:id:thinline196:20180713230144p:plain