File Inclusion
(LOW)
当代码等级为低时,我们可以实现本地文件包含。例如我在当前目录下创建个 phpinfo.php 文件,并带入访问。可以看到成功读取该文件!
如果此时我们打开 PHP 配置文件内的 allow_url_include=on 时,我们就可以进行远程文件包含!例如:我包含百度的URL。
我们来查看代码。可以看到代码对传入参数并未做任何过滤,直接以 get 方式接受执行!
下面,我们将代码改为中级别。我们同样访问包含百度URL地址的路径,可以看到出现了 warning 警告!
接着我在 http 中间再添加个 http 。此时我们再次访问。发现成功绕过过滤机制!
? 我们同样访问 phpinfo.php 成功访问!说明代码未对本地文件包含做过滤!
现在我们来查看代码。从代码中我们可以看到增加了 str_replace() 函数,将 http// ?和 https:// 进行了过滤替换为空。但这里只对第一次提交的数据进行过滤,因此只要我们再添加一个 http:// 即可绕过!
最后我们来看看高等级代码的过滤。可以看到,此时代码对接受的文件进行了严格的限定,提交的文件必须为 include.php 。否则就直接返回错误!
转载请注明:即刻安全 » (一)DVWA文件包含漏洞源码审计