我根据自己的知识创建了一个简单的网站,但我发现它存在本地文件包含( LFI )漏洞。我想测试在我的计算机上利用它,但每当我尝试绕过无效的空字节时。我写了这个简单的代码并试了一下,但它仍然没有工作=> [test.php?page = index.php%00(显示当前目录中的index.php)]
$page=$_GET['page'];
if(!include($page.".php"))
phpinfo();
有人可以提出解决方案来完成它吗?
(../../etc/passwd
也无效)
我正在使用 PHP 5.3.2 和 Apache 2.2.14 和 firefox 。
答案 0 :(得分:2)
include
不是布尔函数。
尝试
if( file_exists($_GET['page'] . ".php") ) {
include($_GET['page'] . ".php");
}
然后,您可以致电scriptName.php?page=test
查看test.php
是否存在。
答案 1 :(得分:0)
我总是使用白名单,所以允许的页面。如果'index'不在允许的页面内,我不会包含它。 [假设:?page = index和$ allowed = ARRAY('index','home','imprint',...)]
答案 2 :(得分:0)