アップロードフォームにNullバイトインジェクション攻撃を再現しようとしています。はそれがSUBSTR()をバイパスし、move_uploaded_fileので、file.phpとしてアップロードされますfile.php%の00jpg(:私はこのような名前のファイルをアップロードしようとしているアップロードフォームのヌルバイトインジェクション
<?php
if(substr($_FILES['file']['name'], -3) != "php") {
if(move_uploaded_file($_FILES['file']['tmp_name'], $_FILES['file']['name']))
echo '<b>File uploaded</b>';
else
echo '<b>Can not upload</b>';
}
else
echo '<b>This is not a valid file/b>';
?>
:私はこのコードを持っています)はヌルバイト(%00)で停止する必要があります。
問題は、アップロードされたファイルをサーバー上のfile.phpが、URLバーに/file.php%2500jpgを入力してアクセスすることができますfile.php%の00jpgを(名前が付いていないということです)。
move_uploaded_file()はヌルバイトを気にしないようですが、これはどのように機能しますか?拡張子が.phpのファイルを自分のコードでアップロードすることは可能ですか?
ありがとうございました。
「.cgi」や「.asp」や「.phtml」のような「アクティブな」拡張子でファイルをアップロードすることが可能です。 – duskwuff
PHPでNULLバイトの中毒が修正されました。 4 '。 –
**ファイルのアップロードにブラックリストを使用しないでください**。ホワイトリストを使用します。また、私はそれについていくつかの簡単な方法を考えることができます。あなたは消毒するべきです。 – Amelia