如果改完后404,尝试修改正则,加上\/ if (!preg_match(‘/^[A-Za-z\/](\w|\.)*$/’, $controller)) {五、漏洞分析 Thinkphp5.1.24 先看补丁: 对controller添加了过滤 查看路由调度: Module.php:83 publicfunctionexec(){// 监听module_init$this->app['hook']->listen('module_init');try{// ...
ThinkPHP 5.0.0~5.0.23 RCE 漏洞分析 首先借用师傅的一张图来梳理一下流程 call_user_func调用system造成rce 梳理思路: $this->method可控导致可以调用__contruct()覆盖Request类的filter字段,然后App::run()执行判断debug来决定是否执行...
前言 tp5最近爆了个rce,最先看到是在斗鱼src公众号上发的分析文章,这么大的洞,到了第二天那些什么安全网站连个预警都没有,估计tp5的站都被撸穿了。 搭建tp5环境 这是漏洞的修复https://github.com/top-think/framework/commit/802f284bec821a608e7543d91126abc5901b2815. https://github.com/top-think/t...
近日,thinkphp发布了安全更新,修复一个可getshell的rce漏洞,由于没有有效过滤$controller,导致攻击者可以利用命名空间的方式调用任意类的方法,进而getshell。二、影响范围 5.x < 5.1.31 5.x < 5.0.23 以及基于ThinkPHP5 二次开发的cms,如AdminLTE后台管理系统、thinkcmf、ThinkSNS等 ...
thinkphp5最出名的就是rce,我先总结rce,rce有两个大版本的分别 ThinkPHP 5.0-5.0.24 ThinkPHP 5.1.0-5.1.30 因为漏洞触发点和版本的不同,导致payload分为多种,其中一些payload需要取决于debug选项 比如直接访问路由触发的 5.1.x : ?s=index/thinkRequest/input&filter[]=system&data=pwd ...
/usr/bin/env python# -*- coding: utf-8 -*-'''name: thinkphp远程代码检测description: ThinkPHP5 5.0.22/5.1.29 远程代码执行漏洞'''importreimportsysimportrequestsimportqueueimportthreadingfrombs4importBeautifulSoupclassthinkphp_rce(threading.Thread):def__init__(self, q):threading.Thread.__init_...
$controller = strip_tags($result[1] ?: $this->app->config('app.default_controller')); F7跟进去,当$name存在反斜杠时就直接将$name赋值给$class并返回。攻击者通过控制输入就可以操控类的实例化过程,从而造成代码执行漏洞。 下面就是调用反射执行类的步骤了 ...
thinkphp5.0.x未开启强制路由rce漏洞解析 影响版本: 5.0-5.0.23 5.1.* 5.0.* ?s=index/think\config/get&name=database.username # 获取配置信息 ?s=index/\think\Lang/load&file=../../test.jpg # 包含任意文件 ?s=index/\think\Config/load&file=../../t.php # 包含任意.php文件...
这里调用\think\Route::get函数进行路由注册的操作。而这步操作的影响就是改变了上文提到的self::$rules的值。有了这个路由,才能进行RCE,否则不成功。这也就是为什么只影响完整版,而不影响核心版的原因。此时的self::$rules的值为: 那么,当攻击者控制返回的$method的值为get的时候,$rules的值就是这条路由的规...
有了这个路由,才能进行RCE,否则不成功。这也就是为什么只影响完整版,而不影响核心版的原因。此时的self::$rules的值为:那么,当攻击者控制返回的$method的值为get的时候,$rules的值就是这条路由的规则。然后回到上文取到$rules之后,根据传入的URL取得$item的值,使得$rules[$item]的值为captcha路由数组,就可以...