ThinkPHP是一个国内使用很广泛的老牌PHP MVC框架。貌似国内有不少创业公司或者项目都用了这个框架。
最近官方发布了一个安全补丁,官方表述是:该URL安全漏洞会造成用户在客户端伪造URL,执行非法代码。 125 - $res = preg_replace('@(w+)'.$depr.'([^'.$depr.'/]+)@e', '$var['1']="2";', implode($depr,$paths)); 125 + $res = preg_replace('@(w+)'.$depr.'([^'.$depr.'/]+)@e', '$var['1']='2';', implode($depr,$paths)); 这个代码是把pathinfo当作restful类型url进行解析的,主要作用是把pathinfo中的数据解析并合并到$_GET数组中。 然而在用正则解析pathinfo的时候,主要是这一句: $res = preg_replace('@(w+)'.$depr.'([^'.$depr.'/]+)@e', '$var['1']="2";', implode($depr,$paths)); '$var['1']="2";' index.php/module/action/param1/${@print(THINK_VERSION)} 总之这个问题非常严重,找了一下,发现目前没有修补漏洞的网站还是很多的。而ThinkPHP框架的特征其实非常好识别,有意者直接写个scanner进行扫描也未必不可能。 为了不造成更大损失,特地发帖希望引起各位使用thinkphp做开发的同学关注
|