エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
[CTF]GOT Overwriteを試してみた(備忘録) - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
[CTF]GOT Overwriteを試してみた(備忘録) - Qiita
解法について プログラムでは2回の scanf関数で指定したアドレスに任意の数値を書き込むことができます... 解法について プログラムでは2回の scanf関数で指定したアドレスに任意の数値を書き込むことができます。そのため、基本的な方針は、 cnary が書き換えられたことを検知したときに遷移する __stack_chk_fail関数の .gotのアドレスを ROPGadget に向けて、ROPをすることでシェルを起動する。 という形になります。そして、細かいexploitの手順は以下になります。 最初の fgets関数には、printf関数を用いて .gotセクションの __libc_start_main の配置アドレスを出力させたあと、 main関数に再度戻るような ROP を入力する。ここで、 canary の値を書き換えて確実に__stack_chk_fail関数が呼び出されるようにする。 次の "Input address >> " が表示されたあとの scanf関数には .gotセク