Webサイトでの画像のアップロードとphpコードエクスプロイトの実行に関する古典的な質問をしたいと思います。
だから私はハッキングすることになっているウェブサイトをこのエクスプロイトを試してきました(私たちがハッキングするように設定されています)
ウェブページでは画像をアップロードできます。TamperDataを使用してMIMEタイプを変更するのは簡単ですが、ウェブページでは、画像を通過させる前に、ファイルの最後の文字が「.jpg」または「.jpeg」であるかどうかを確認します。
PHPコードの配置(私はphpコード、画像ファイルの最後に貼り付けられたphpコード、EXIFヘッダーのphpコードなど)を試しました)に関係なく、ウェブサイトには拡張子が常にjpgであるため、アップロード後に画像ファイルを開くと(または、.jpgとして保存されたプレーンなphpコードの場合はエラー)。
したがって、そのような場合、ファイルを.phpとして実行するにはどうすればよいですか? (null bite poisoningは機能せず、vuln.php.jpgまたはvuln.php; .jpgとしてコードをアップロードすることもできません。どちらも画像を表示するだけです)
PHPコード[...]の配置に関係なく、アップロード後にWebサイトに画像ファイルが表示されるだけです。
はい、そうです。拡張子ではなくコンテンツに応じて.jpgファイルを.phpファイルとして解釈する場合、サーバーは深刻な脆弱性を持ちます。
したがって、そのような場合、ファイルを.phpとして実行するにはどうすればよいですか?
適切なサーバーでは許可されていないため、コード自体になんらかの脆弱性がないと、画像ファイルをPHPファイルとして実行できません。
コードについての知識がなければ、推測以上のことはできません。故意に脆弱であると思われる場合は、拡張チェックがおそらく壊れていると思います。
あなたは試すかもしれません:
.htaccess
:拡張機能チェックはこれを拡張機能なしと解釈する場合があり、それで問題ない場合があります。サーバーが.htaccessファイルを解析する場合、AddType application/x-httpd-php .jpg
を介して画像ファイルでコードを実行できます。vuln.jpg.php
:チェックは、最後の拡張子ではなく、最初の拡張子をチェックする場合があります。vuln.php5
、vuln.php4
、vuln.phtml
など:チェックはホワイトリストチェックではなく、ブラックリストチェックである可能性があり、サーバーによってPHPファイル。これは、foobar
などのメークアップ拡張機能を使用して簡単にテストできます。合格した場合、これはブラックリストフィルターです。misc
およびuploads
を含むconfigs
などのディレクトリがあり、configsにはPHPファイルが含まれ、uploadsには画像のアップロードが含まれます。次に、include "misc/" . $filename
などのコードを使用できます。ディレクトリトラバーサルのチェックがあるとしましょう。これは悪いコードですが、一般的にはいまだに安全ですよね?含まれている.jpgファイルは、他のファイルと同じように解析されて実行されるため、ファイル内のPHPコードが実行されます。この例は少し遠いですが、このようなものが存在する可能性があることは完全に考えられます。tl; dr:jpgファイルはPHPファイルとして.htaccess
またはinclude
を介して実行できます。さらに、安全でない場合は、ファイル拡張子チェックをバイパスできる場合があります。
TamperDataを使用すると、一部のサーバーが機能しなくなります。ただし、exifエディタを使用すると問題なく動作します。
.jpgは、httpヘッダーまたはburpスイートで.phpに置き換えられます
単なる考え-サーバーを実際にハッキングしているわけではありませんが、組み込みの自己実行jsを含むjpgファイルをexifからアップロードできると、クライアントマシンで騒乱を引き起こす可能性がありますが、ユーザーの観点からすると、セキュリティ上の問題になります。参照: http://blog.trendmicro.com/trendlabs-security-intelligence/jpeg-files-used-for-targeted-attack-malware/