今天看啥  ›  专栏  ›  编码安全研究

ThinkPHP多语言文件包含漏洞分析

编码安全研究  · 公众号  ·  · 2023-12-27 17:03
一、漏洞概述  ThinkPHP是一个开源轻量级PHP框架,其6.0.13及以前版本存在一个文件包含漏洞。简要来讲,在多语言特性开启的条件下,远程攻击者可通过控制传入参数来实现任意PHP文件包含。默认条件下,该漏洞只能包含本地PHP文件;但在开启了register_argc_argv且安装了pcel/pear的环境下,攻击者可通过 get、header、cookie 等传入参数,实现目录穿越包含pearcmd 。最终,通过pearcmd实现写入webshell。该漏洞影响版本为:v6.0.1~v6.0.13、v5.0.x、v5.1.x。二、漏洞分析  本文的分析均使用6.0.12版本。该漏洞要成功被利用需要满足三个条件:ThinkPHP开启了多语言特性php.ini开启了register_argc_argv安装了pcel/pear在app/middleware.php中开启多语言功能:在Lang.php 193行处设置断点,发送如下报文:GET /?lang=../../../../../public/index HTTP/1.1Host: localhost:80Cache-Control: max-age=0Upgrade-Insecure-Requests: 1 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照