このエクスプロイトhttp://www.phrack.org/issues.html?issue=67&id=7をよりよく理解するために、proftpd をデバッグしようとしています。脆弱なセクションは mod_sql.c にあります。sql_prepare_where 関数 (ヒープ オーバーフローが行われる場所) をブレークポイントして、USER ... および PASS ... コマンドを呼び出しようとしましたが、トリガーされません。
mod_sql.c の数百行すべてにブレークポイントを設定してからプログラムを起動する理由を調べるために (完全なデバッグ オプションを使用して)、いくつかのブレークポイントがトリガーされます (sql_setuserinfo、set_sqlauthenticate、get_auth_entry...)。その後、プログラムがメイン ループに入ると、ブレークポイントに関連する他に何も発生しません (proftpd のログには、USER コマンドと PASS コマンドが mod_sql.c にディスパッチされることが記載されています)。
私が欠けているものを誰かが知っていますか?
[ GDB に不可欠な何かが欠けている可能性があります。私はロールで学んでいます :) ]