CVE-2018-25270ThinkPHP 5.0.23版本存在严重的远程代码执行漏洞。由于框架对路由参数的处理存在缺陷,攻击者无需身份认证即可通过构造特定的请求,利用路由机制调用`invokefunction`方法。该方法允许攻击者传递恶意函数名和参数,从而在服务器端执行任意系统命令或PHP代码,导致服务器被完全控制。
该漏洞的核心在于ThinkPHP框架对控制器路由的解析机制。攻击者通过URL参数`s`指定路由路径,例如`/index/\think\app/invokefunction`,从而直接调用`\think\App`类的`invokefunction`方法。该方法接收`function`和`vars`两个参数,并将它们传递给PHP内置的`call_user_func_array`函数执行。由于框架未对`function`参数进行严格的白名单限制,攻击者可以将其设置为任意系统危险函数(如`system`、`exec`、`file_put_contents`等),并通过`vars`数组传递函数参数。这种利用方式不需要任何用户交互,即可绕过部分安全限制,实现命令执行或Webshell写入。