File Inclusion即文件包含漏洞,我们先在C盘一目录下创建一个123.txt,内容为‘hello,world!’
Low
Low等级的代码从地址栏接收page参数,并未做出任何过滤
因此直接读取C:/work/123.txt,成功
Medium
Medium等级的代码将‘http://‘, ‘https://‘, ‘../‘, ‘..\‘都替换为‘ ‘,防御了简单的远程和本地包含
但是对绝对路径读取文件就没有效果了,而且str_replace()可以使用双写来绕过
若要使用相对路径,可以用...\.\来代替..\
若要使用远程文件包含,则可以用htthttp://p://来代替http://
High
High等级的代码限制了page参数必须以file开头,或者page参数为include.php
如果要以file开头,我们可以采用file协议来读取
即file:///C:/work/123.txt
Impossible
Impossible等级的代码采用白名单的形式,只有page参数的值为include.php、file1.php、file2.php、file3.php时才能读取成功
PS:通过文件包含执行的文件都将当作php文件来解析,如果失败则返回文件内容,如果将123.txt的内容改为
<?php phpinfo(); ?>
那么当读取123.txt则会出现php的配置文件,可看出此时是将123.txt作为php文件来解析
原文地址:https://www.cnblogs.com/Loong716/p/10391324.html
时间: 2024-10-28 19:51:50