web-dev-qa-db-ja.com

PHPファイルを実行せずにダウンロードする方法はありますか?

最近、異常に質の悪いフィッシングメールを受け取りました。 「私たちがあなたの銀行なので、次のリンクからすぐにサインインしてください」と思います。リンクは、末尾に.phpが付いた説得力のないURLを指しています。

与えられたページの外観を偽ってフォームに入力されたデータを送信するのではなく、なぜPHPスクリプトを使用するのか?.

リンクをクリックして実際に確認したくありませんが、これが何であるかを知りたいと思いますPHPファイルが実行しようとしています。スクリプトをダウンロードする方法などはありますかあなたがクライアント側のJavaScriptでできるように?

または、サーバーによって実行されているため、PHPファイルにアクセスできませんか?

このファイルとその動作を危険なく分析する他の方法はありますか?

20
Zaibis

サーバーが正しく構成されている場合、PHPファイルをダウンロードできません。Webサーバー経由で呼び出されたときに実行されます。サーバーの機能を確認する唯一の方法は、SSH経由でサーバーにアクセスすることですまたはFTPまたはその他の方法。

これは、PHPがサーバーサイド言語であり、すべてのアクションがサーバー上で実行され、その後結果がブラウザに送信されるためですclientサイド)。

システムを台無しにするのが怖い場合は、VirtualboxをUbuntu VMで使用し、そこからページを開くことができます。VM =インストール後、危険な作業を行う前に、後でそのスナップショットに戻って、スクリプトがVMに対して実行したことをすべて取り消すことができます。

65
SPRBRN

他の人が言ったように、PHPファイルはサーバー側で実行されますが、サーバーが非常に正しく設定されていないため、単にソースを提供する場合を除きます。

クライアントに送信される内容を調べて、何も問題が発生する可能性がない場合は、メモ帳などのテキストエディタを使用してURLを開きます。つまり、File → Openしかし、実際のファイルではなくURLを開きます。

サーバーは要求を解釈し、通常送信するものをブラウザーに送信します。あなたのテキストエディタはそれを受け取りますが、編集する場合、テキストエディタができることは表示だけです。実行されるブラウザやその他のレンダリングエンジンに近づくことはありません。

12
Andrew Leach

_.php_ファイルはサーバー側で実行されるため、残念ながらソースコードを取得する方法はありません。ただし、試すことができるのは、システム管理者が間違いを犯したことを期待してURLを操作することです。

ユーザーがhttp://www.example.com/index.phpにアクセスすると、Webサーバーは_/usr/bin/php_から_index.php_ファイルを実行して_/var/www/html_を実行し、HTML応答を生成します。 )__。

通常、Webサーバーは_.php_ファイルのみを実行するように構成されているため、_.jpg_またはその他の種類のファイルは通常どおり提供されます。

ただし、忘れやすいシステム管理者がバックアップのために_.php_ファイルのコピーを作成した場合、_/usr/bin/php_によって実行されなくてもコピーを取得できる可能性があります。

したがって、システム管理者が_/var/www/html/index.php.bak_としてコピーを作成した場合、ブラウザでhttp://www.example.com/index.php.bakにアクセスして、ソースコードをダウンロードできます。

これらの残りのファイルを見つけるのは面倒な作業なので、自動化されたURLファジングツールを確認することをお勧めします。

最後に、curlを使用してこれらの実験を行うことをお勧めします。これは、JavaScriptまたはFlashがマシンで実行されないためです。

1
Gabor

いいえ、PHPがサーバー上で実行されるため、できません。終了

  1. コンピューターで実行されないため、コードを取得する必要はありません。そのため、セキュリティ上のリスクはありません。
  2. PHPは他のWebサイトと同様にWebサイトを提供するため、PHP固有の答えはありません。

    一般的な回答に関心がある場合は、 を参照してください。疑わしいメールの添付ファイルを安全に検査するにはどうすればよいですか? その回答は、ウェブサイトを安全に開く場合にも当てはまります。 。
1

方法がありますifサーバーにLFIエクスプロイトが含まれている場合: https:// www.owasp.org/index.php/Testing_for_Local_File_Inclusion

ただし、サーバーが適切に設定されていれば、PHPファイルをダウンロードできません。

私は最近、私が継承したプロジェクトでこれにパッチを適用する喜びを持っていました。 PHPスクリプトを直接ダウンロードして、$_GET[]どちらが重要か。

本当のことを言えば、可能性のあるエクスプロイトがあるという幸運が必要です。また、サーバーのファイルシステムの構造を把握する必要があります(つまり、対象となるスクリプトの相対パスはLFIの脆弱性を含むスクリプト)したがって、サーバーの探索を計画している場合は、サンドボックス/ VMを使用します。 Gustavo Rodriguesからのコメントで示唆されているように、サーバーの構成が実際に適切でない場合は、運が良いかもしれません。

1

あなたはHTTP経由でできません

A)ファイルに書き込まれたPHPコードは、httpクライアントに送信される前に、httpサーバーによってファイルから削除されます

したがって、HTMLフォームは、phpスニペット、phpタグで囲まれたコードを含むblah.phpを参照する場合があります。これにより、送信されたpassword = 1234かどうかがチェックされますが、blah.phpをwgetすると、そのコードは表示されません。 (phpをサポートするWebサーバーで、他のファイルを受信するようにリダイレクトせずに、blah.phpを直接取得できたとしても、実際には、取得しているサーバー上のblah.phpではありません)。これは、サーバーによって処理されたblah.phpで、phpコードが削除され、phpが出力したものに置き換えられます。または、クライアント側のコード(html/javascript)を使用して、決定されたphpコードを表示する必要があります。

そして

B)HTTPサーバーのphpモジュールが任意のphpを実行し、クライアントに送信する結果のファイルを生成します。

ちなみに、技術的にはサーバー上のHTMLファイルにPHPを含めることができます。 PHPファイルはHTMLファイルよりも危険です。PHPコードはサーバー処理を行い、HTMLファイルにある他のクライアント側のものを出力します。 HTMLやクライアント側のJavaScriptなど。

0
barlop