来源:自学PHP网 时间:2015-04-17 14:47 作者: 阅读:次
[导读] 简要描述:Smarty是PHP下广泛使用的前端模板框架。但由于Smarty3引入了新的特性,导致在某些情况下,可以利用特性组合直接远程执行任意代码。详细说明:此漏洞原作者:cly,我代为发...
简要描述: Smarty是PHP下广泛使用的前端模板框架。但由于Smarty3引入了新的特性,导致在某些情况下,可以利用特性组合直接远程执行任意代码。 详细说明: 此漏洞原作者:cly,我代为发布而已:)
由于Smarty3中引入了两个特性: 因此,利用以上两个特性相结合,如果用户可以控制模板文件名,即可执行任意php表达式。
同样的,利用smarty3的resource特性,还可以直接利用“file:”协议直接远程包含任意文件。因为底层是使用fopen函数实现的文件打开,而默认的php配置中,虽然禁止了remote_file_include,但是对于remote_file_open却是允许的。利用这一个特性,让早已消失已久的RFI经典漏洞类型重见天日了。:)
$smarty->display($_REQUEST['tpl'].”.tpl”);
修复方案: 去除所有使用用户输入作为模板名进行渲染的代码,使用白名单方式限制只允许载入已知的tpl文件。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com