1

調査の目的で、古い1.3.xバージョンのApacheWebサーバーでバッファオーバーフローのエクスプロイトをテストしたいと思います。とにかく私はスタック保護をオンにしているので、それは機能しないか、少なくともこの理由で機能しないと思います。保護を無効にするには、次のフラグを使用してコンパイルする必要があります。

-fno-stack-protector -z execstack

しかし、それらをapacheコンパイルプロセスに追加する方法がわかりません。私はこのようなことをしたことはありません。手伝って頂けますか?

4

1 に答える 1

2

試す:

CFLAGS="-fno-stack-protector" LDFLAGS="-z execstack" ./configure [...]

CFLAGSはコンパイラ用でexecstack、リンカー オプションなので、LDFLAGS. または、サポートされている場合は、コンパイラにリンカー オプション -with を渡すことができます-Wl

CFLAGS="-fno-stack-protector -Wl,-z,execstack" ./configure [...] 

詳細についてはINSTALL、Apache ソース アーカイブのファイルを参照してください。

生成された最上位の を検査または比較すると便利です。とMakefileのいずれかまたは両方にパラメータが表示されます。EXTRA_CFLAGSEXTRA_LDFLAGS

あなたが持っているタスクを考えると、定期的な事前リンクASLRタスクを持つ Linux ディストリビューションを実行している場合は、処理されないパスに Apache をインストールすることを確認する必要があります。バイナリは一晩で「修正」されます...

prelinkがインストールされているかどうかを確認します

 dpkg -l prelink      # Ubuntu/Debian derived
 rpm -qv prelink      # CentOS/Red Hat derived

で構成を確認し (通常は)、または/etc/prelink.confのいずれかを使用します。/etc/defaults/prelink/etc/sysconfig/prelink

Ubuntu では ( CentOS/RH ではなく/usr/local/)、 ( binsbinlib)の下のディレクトリが処理対象含まれます。Apache をデフォルトでインストールする場合は/usr/local/apache変更しないでください。完全にインストールしたい場合は、ディレクトリ ブラックリスト ( -b) 行を/etc/prelink.conf

于 2013-03-04T11:30:58.413 に答える