私は友人が彼のウェブサイトを保護するのを手伝っています. 彼は私にソース ファイルをくれました。私の意見では、多くの問題を引き起こす可能性があるものを見つけましたが、以前と同様に、私の友人はコードのこの部分が安全であると述べています。
if(is_file('foo/' . $_POST['f'] . '/bar/foo.php'))
{
include('foo/' . $_POST['f'] . '/bar/foo.php');
}
私はinclude()
関数をバイパスできることを彼に示しましたがis_file()
、コードのこの部分は 100% 安全であるため、コードが安全でないことを彼に示すのを手伝ってください、またはこのコードが安全であることを私に納得させてください.
このコードはinclude()
機能をバイパスします (WINDOWS):
curl_setopt($ch, CURLOPT_POSTFIELDS, 'f=../foo/bar.php' . str_repeat('.', 4086)); // without is_file() check this request leads to LFI
それでもis_file()
falseを返します