前言
先说说2020_n1CTF的web题Easy_tp5复现问题。
这个题在保留thinkphp的RCE点的同时,并且RCE中ban掉许多危险函数,只能允许单参数的函数执行。对于现在在网络中流传的文件包含的点也增加了限制。
smile yyds!
先说一下这个题限制条件:
thinkphp版本:5.0.0
php版本:7
对于包含文件增加了限制
ban掉所有的单参数危险函数
设置open_basedir为web目录
设置仅在public目录下可写
在TP5.0.0的中,目前公布的只是存在利用Request类其中变量被覆盖导致RCE。如果ban掉单参数可利用函数那么只能用文件包含,但是文件包含做了限制不能包含log文件,所以只能从别的方面入手。
这些限制都太大了,所以需要想办法去上传一个shell来完成后续绕disable_function。
首先TP5.0.0目前只存在通过覆盖Request中的某些变量导致RCE,其余细节不再赘述,我们看看大概代码执行点在哪里。
call_user_func是代码执行点,我们基本上所有PHP自带的可利用函数基本被ban掉,所以我们需要从自写的函数调用来入手,首先我们需要看