ThinkPHP在开启多语言功能的情况下存在文件包含漏洞,攻击者可以通过get、header、cookie等位置传入参数,实现目录穿越+文件包含,通过pearcmd文件包含这个trick即可实现RCE。 影响版本: 6.0.1 < ThinkPHP≤ 6.0.13 5.0.0 < ThinkPHP≤ 5.0.12 5.1.0 < ThinkPHP≤ 5.1.8 ...
前言 前段时间爆出的ThinkPHP多语言rce很有意思,最近刚好有时间就学习一下。 一、漏洞信息 利用条件: 1.安装并已知pearcmd.php的文件位置。(默认位置 /usr/local/lib/php/pearcmd.php,Docker版本的镜像中pear默认安装) 2.需要开启php.ini中register_argc_argv选项。(docker的PHP镜像是默认开启的) 3.thinkphp开启...
项目地址 https://www.thinkphp.cn/ 漏洞概述 如果 Thinkphp 程序开启了多语言功能,攻击者可以通过 get、header、cookie 等位置传入参数,实现目录穿越+文件包含,通过 pearcmd 文件包含这个 trick 即可实现 RCE。默认情况下,系统只会加载默认语言包,如果需要多语言自动侦测及自动切换,需要在全局的中间件定义文件...
Thinkphp 多语言 RCE 七月份的时候挖到这个洞,卖给了国内一个项目,如今距离修复的commit已经过去了将近三个月,在这里公开漏洞细节 影响范围 Thinkphp,v6.0.1~v6.0.13,v5.0.x,v5.1.x fofa指纹 header="think_lang" 简单描述 如果Thinkphp 程序开启了多语言功能,那就可以通过 get、header、cookie 等位置传入参...
直接执行了file_put_contents()任意文件写入,成功RCE exp构造 接下来构造exp,利用@Morouu师傅的链子进行修改。 前面的链子不用动,从调用__call方法的链子进行修改, 首先调用think\console\__call方法,$this->style赋值['getDomainBind']进入block方法, 跟进write()方法,这里调用League\Flysystem\File类的write方法,...
如果Thinkphp 程序开启了多语言功能,攻击者可以通过 get、header、cookie 等位置传入参数,实现目录穿越+文件包含,通过 pearcmd 文件包含这个 trick 即可实现 RCE。 默认情况下,系统只会加载默认语言包,如果需要多语言自动侦测及自动切换,需要在全局的中间件定义文件中添加中间件定义。因此只有启用多语言并且使用存在漏洞...
thinkphp框架中存在一个RCE方法,可以通过构造特定的请求参数来触发该漏洞。当攻击者发送含有恶意代码的请求到目标服务器时,服务器会解析请求参数并执行其中的恶意代码。 第三部分:构造恶意请求参数 要成功利用thinkphp的RCE方法,攻击者需要利用一些技巧来构造恶意请求参数。首先,攻击者需要找到一个合适的漏洞点,这通常是...
ThinkPHP在开启多语言功能的情况下存在文件包含漏洞,攻击者可以通过get、header、cookie等位置传入参数,实现目录穿越+文件包含,通过pearcmd文件包含这个trick即可实现RCE。 影响版本: 6.0.1 < ThinkPHP≤ 6.0.13 5.0.0 < ThinkPHP≤ 5.0.12 5.1.0 < ThinkPHP≤ 5.1.8 ...
如果Thinkphp 程序开启了多语言功能,那就可以通过 get、header、cookie 等位置传入参数,实现目录穿越+文件包含,通过 pearcmd 文件包含这个 trick 即可实现 RCE。 Thinkphp6开启多语言模式 目录:app/middleware.phpthinkphp5开启多语言模式 目录application/config.php ...
本篇文章将从框架的流程讲起,让大家对Thinkphp有个大概的认识,接着讲述一些关于漏洞的相关知识,帮助大家在分析漏洞时能更好地理解漏洞原理,最后结合一个比较好的RCE漏洞(超链接)用一种反推的方式去进行分析,让大家将漏洞和框架知识相融合。体现一个从学习框架到熟悉漏洞原理的过程。