web-dev-qa-db-ja.com

このWebサイトに実際のPHPコードを挿入するにはどうすればよいですか?

だから私は_example.com_でファイルアップローダーを見つけました。ファイルアップローダーはすべてのファイル拡張子を受け入れ、ファイルはディレクトリ内にアップロードされます

_/temp/random-numeric-id.php_

Phpファイルをアップロードしようとするとアップロードされましたが、そのファイルにアクセスすると、ファイルの内容がhtmlコメントとして読み取られます。たとえば、コンテンツ<?php print(123); ?>を含むファイルをアップロードし、_example.com/temp/111111111.php_にアクセスすると、phpコードが次のようになっているため、空白のページが表示されます。

<!--?php print(123); -->

これは何らかの保護メカニズムですか?これをバイパスして、そのサーバー上のphpで印刷機能を実行するにはどうすればよいですか?

3
Pong

これは奇妙です。私の推測では、これはある種の保護メカニズムですが、非常に安定したメカニズムではないようです。より良いアプローチは、.phpまたは同様の拡張子を持つファイルをブロックし、その上でそのフォルダーでPHP実行をオフにすることです。

これは悪用される可能性がありますか?よくわかりませんが、次のことを試してみてください。

  • 異なる PHPタグ<?<?=<%<%=<script language="php">)。
  • 空白を挿入して、さまざまなケースを試してください。 <?PHpまたは<? pHp。 (ただし、PHPエンジンがこれを認識するかどうかはわかりません。)
  • 終了タグは省略し、タグ内にタグをネストしてみてください。
  • たぶん、PHPファイルの置換だけを行うのでしょうか?その場合、代わりに.php5または.phtmlまたは類似のものを使用できます。

バイパス(存在する場合)を理解するには、システムの動作を推測し、理論をテストする必要があります。例えば。疑わしい場合は、単にすべての<<!--に置き換え、1つの<を送信して、何が起こっているかを確認してください。実験することを恐れないでください。試行錯誤はあなたの友達です。

5
Anders

ディレクティブベースのファイルを使用して、htshellsプロジェクトのような自己完結型のhtaccessをアップロードしてみましたか? https://github.com/wireghoul/htshells

3
wireghoul