2011-08-13 10 views
2

私はeval()のようなPHPの悪用可能な関数に送られるデータを傍受したいコードを開発したいと思います。しかし、私のコードは、evalが何らかの形で存在するコードを編集したり、触れたりしてはいけません。一例として、 PHPの利用を傍受する悪用可能な関数

は、私は私のインターセプタコードでPHPファイルを作成し、evalの()(または任意の他のPHPから悪用可能な機能)をターゲットPHPページ内で呼び出す「必要」を使用します。どのようにそれを可能にすることができますか?

答えて

2

まず、PHPのすべての機能をシステムの悪用に使用できます。

このようにPHPの動作を変更するには、PHPインタープリタ自体を変更する必要があります。具体的には、interceptまたはrunkit PECLが必要です(または、インタープリタを自分で書き換えます)。どちらか、または翻訳プログラムを実行して、ラッパー関数への参照(「悪用可能」関数のリスト)の参照を再マップします(そして、インクルードファイルでこれらのラッパーを指定します)。

+0

その翻訳プログラムは、悪用可能な関数への参照をラッパー関数に再マップするためにどのように動作しますか?あなたは詳細を教えていただけますか? 攻撃されていない、または危険な機能がない理由は、攻撃されていない攻撃ベースの入力を受け取ったとしても、危険なアクションを実行しないためです。例えば$ strを出力します。 (私が知る限り)シンク関数にすることはできません。文字列 'str'の内容を表示するだけです。私は、特に、システムが許すよりも多くの知識を得るために害を及ぼす可能性がある機能に興味があります。 – user890928

+0

"のように、セッションクッキーを盗んでセッションをハイジャックするのに十分な文字列 'str' content"を表示するだけです。翻訳プログラム? sedの/ eval \(/ wrap_eval \(/ 'somefile.php> somefile.php – symcbean

0

私には、buid-inの機能を傍受できるPHP拡張機能を書いているかのように聞こえます。私は良いチュートリアルについては考えていないので、あなた自身のお気に入りの検索エンジンを使いたいと思っています。もう1つのヒント:、print_r()などについてはすでにxdebugのようなことがありますので、ソースとおもちゃを確認してください。がんばろう。

+0

はい拡張機能ですが、PHPコア内ではなくユーザー空間になければなりません。だから、私はrequireを使用して拡張機能を動作させることができるはずです。私はユーザーに自分のバージョンのPHPを使用させたくないので、自分のシステムでPHPを再コンパイルする必要があります。 – user890928

+0

PHPを再コンパイルする必要はありません.xdebugインストールガイドを見てください:http://xdebug.org/docs/install。これはPHPと一緒に読み込むものです。 – Shi

+0

Ok ...しかし、物事のユーザー空間側でしか動かないものはありませんか? – user890928

関連する問題