漏洞原理 该漏洞出现的原因在于ThinkPHP5框架对控制器名缺少必要的过滤,导致让攻击者可以通过url调用到ThinkPHP框架内部的敏感函数,进而执行任意命令。 代码审计 要理解这个漏洞,首先要学习thinkphp是怎么处理路由的 thinkphp/library/think/App.php#r
这是漏洞的修复https://github.com/top-think/framework/commit/802f284bec821a608e7543d91126abc5901b2815. https://github.com/top-think/thinkclone下来 再cd think文件夹 ,clonehttps://github.com/top-think/framework,文件夹名字改为thinkphp 再进入thinkphp ,代码回滚到修洞修复之前 分析 可以看到,修复之...
一、概述 近日,thinkphp发布了安全更新,修复一个可getshell的rce漏洞,由于没有有效过滤$controller,导致攻击者可以利用命名空间的方式调用任意类的方法,进而getshell。 二、影响范围 5.x < 5.1.31 5.x < 5.0.23 以及基于ThinkPHP5 二次开发的cms,如AdminLTE后台管理系统、thinkcmf、ThinkSNS等 shadon一下: 三...
ThinkPHP5 5.0.23版本存在一个远程代码执行(Remote Code Execution, RCE)漏洞,该漏洞允许攻击者通过构造特定的请求,在服务器上执行任意代码。这种漏洞对于Web应用来说是非常严重的,因为它允许攻击者完全控制受影响的服务器。 2. 漏洞成因和攻击方式 成因 该漏洞主要是由于ThinkPHP5在处理路由和控制器方法解析时存在逻...
今天朋友遇到一个ThinkPHP5 _method 的RCE漏洞,环境是:tp5014开启debug,linux,PHP7,日志,Session都写不进去,没办法包含的情况。 思路就是使用反序列化,回调 unserialize 函数,是可以成功利用的。如图: 差不多就是这样,为了难得去写其他版本的pop链了,所以我直接把tp5024中修复漏洞的代码去掉了,并开启了debug。
ThinkPHP官方最近修复了一个严重的远程代码执行漏洞。这个主要漏洞原因是由于框架对控制器名没有进行足够的校验导致在没有开启强制路由的情况下可以构造恶意语句执行远程命令,受影响的版本包括5.0和5.1版本。 0x02 环境 程序源码下载:http://www.thinkphp.cn/download/967.htmlWeb环境:Windows 10 x64+PHPStudy 20018...
ThinkPHP 5.0.0~5.0.23 RCE 漏洞分析 首先借用师傅的一张图来梳理一下流程 call_user_func调用system造成rce 梳理思路: $this->method可控导致可以调用__contruct()覆盖Request类的filter字段,然后App::run()执行判断debug来决定是否执行...
近期ThinkPHP发布了一个安全更新,用于修复未经身份验证的高风险远程代码执行(RCE)漏洞,360Cert也曾针对该漏洞发布过预警(cert.360.cn/warning/det)。而最近,我们则监测到利用这个已被披露的ThinkPHP RCE漏洞发起攻击的案例:黑客利用此漏洞在运行有未打补丁的ThinkPHP的服务器上(包含Windows、Linux)安装远控、挖矿、永...
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文件...