目录
1.漏洞概述
2.影响版本
3.漏洞等级
4.漏洞复现
4.1 vulnhub环境搭建
4.2 漏洞利用条件
4.3 自动化验证并利用漏洞
编辑
5.修复建议
1.漏洞概述
ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的开源轻量级PHP框架。ThinkPHP存在命令执行漏洞,该漏洞是由于开启了多语言功能,对参数lang传参过滤不严谨,攻击者可利用该漏洞执行命令。本质是ThinkPHP在开启多语言功能的情况下存在文件包含漏洞,攻击者可以通过get、header、cookie等位置传入参数,ThinkPHP LoadLangPack中存在目录穿越漏洞,然后再利用pearcmd文件包含并结合它的指令config-create创建恶意代码,从而实现远程代码执行。
CNVD:https://www.cnvd.org.cn/flaw/show/CNVD-2022-86535
2.影响版本
v6.0.0<=ThinkPHP<=v6.0.13
v5.0.0<=ThinkPHP<=5.0.12
v5.1.0<=ThinkPHP<=5.1.8
3.漏洞等级
严重
4.漏洞复现
4.1 vulnhub环境搭建
git clone https://github.com/vulhub/vulhub
cd vulhub/thinkphp/lang-rce/
docker-compose up -d
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57429543fe5e vulhub/thinkphp:6.0.12 "docker-php-entrypoi…" 8 hours ago Up 8 hours 0.0.0.0:8080->80/tcp, :::8080->80/tcp lang-rce_web_1
之后访问8080端口即可
编辑
4.2 漏洞利用条件
1、知道pearcmd路径;
2、ThinkPHP开启多语言模块
4.3 自动化验证并利用漏洞
POC:
编辑
编辑
Headers Cookie验证:
编辑
getshell:
编辑
使用蚁剑进行连接:
编辑
Headers think_lang验证:
编辑
getshell:
编辑
使用蚁剑进行连接:
编辑
Get型验证:
编辑
getshell:
编辑
使用蚁剑进行连接:
编辑
编辑
自动化验证脚本请点击
脚本请阅读原文获取:
https://blog.csdn.net/qq_41490561/article/details/128315395
5.修复建议
官方已提供修复补丁,详情请关注:GitHub - top-think/thinkphp: ThinkPHP3.2 ——基于PHP5的简单快速的面向对象的PHP框架
更多文章请前往:https://blog.csdn.net/qq_41490561
往期推荐
原文始发于微信公众号(网络运维渗透):ThinkPHP Lang文件包含To远程代码执行漏洞复现—CNVD-2022-86535
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论