文件包含漏洞
php所提供的文件包含功能太强大,导致包含漏洞易出现 php文件包含漏洞 四个函数 include(),include_once(),require(),require_once() 区别:require找不到被包含的文件会报错并停止运行,include则是警告继续运行脚本 once为包含一次的意思,只会包含一次文件中代码 本地包含 只要文件中有正确的php代码,就好被执行。 可利用文件上传与文件包含来执行恶意代码。 非php代码文件会暴露源码信息 远程包含 条件是远程包含功能开启 在php.ini中 all_url_include = off /on 默认为off 需改为on 攻击者可构造恶意站点进行攻击。 $_GET[‘page’] 利用方式 敏感文件读取 访问目标主机文件,若有并且可以读取,可以读取文件内容 无该文件,会有类似open_basedir restriction in effect的警告 敏感路径 windows linux 2. 远程包含shell 若all_url_open是激活状态可以写入一句话木马 如: <? fputs(fopen("shell.php","w"), "<?php eval($_POST[shell]);?>") ?> 本地包含+文件上传 可以上传图片,文档 采用拼接方式构造图片木马等 再加上包含漏洞,调用文件