ThinkPHP2.3.2 变量覆盖RCE复现
参考
https://cloud.tencent.com/developer/article/1855060
ThinkPHP3.2.x_assign方法第一个变量可控=>变量覆盖=>任意文件包含=>RCE
环境
TP3.2.3 php5.6.27 apache phpstudy2018
\Application\Home\Controller\IndexController.class.php写入demo代码:
assign($value);
$this->display();
}
}
因为程序要进入模板渲染方法方法中,所以需要创建对应的模板文件,内容随意 \Application\Home\View\Index\index.html写入第三方模板:
hello变量覆盖
攻击
恶意代码写入日志:
注意: debug模式开启或不开启有一点区别,但是都可以。
开启debug:
请求不报错 日志文件在 Application/Runtime/Logs/Home下
请求会报错 日志文件在 Application/Runtime/Logs/Common下
关闭debug:
请求不会报错 不会记录日志
请求会报错 日志文件在 Application/Runtime/Logs/下
我们可以看到日志记录:
payload:http://localhost/thinkphp-3.2.3//?m=Home&c=Index&a=index&value[_filename]=./Application/Runtime/Logs/Common/21_11_16.log