危害:可以读取系统任意文件

本地包含:
你包含的内必须在服务器上,才能叫本地! 包含的参数能够被控制,PHP采用的是includerequireinclude_onceinclude_once

将要包含的shell打包成压缩文件(支持什么格式的压缩?),然后用phar://压缩包/要解析的包文件这种格式去拿shell(可以搭配文件上传来传一个图片马)。phar会解析压缩包内的文件。

远程包含:
远程需要开启参数。它只能用http://地址/目录/文件.php完整的URL连接来访问

includeUrl.JPG

防御:

  1. 限制文件名中只能包含字母与数字,像/这种符号的输入统统替换成空字符串,这样不管它是相对路径还是绝对路径都无法切换目录。
  2. 关闭配置文件中的allow_url_fopen allow_url_include参数。
  3. 只允许包含指定目录下的文件。

标签: none

添加新评论