# 骑士CMS 骑士CMS assign_resume_tpl 远程代码执行
影响版本:
– 骑士CMS < 6.0.48 POC: 首先在前台注册一个普通用户,然后更新简历:
![qishi1.png](/media/editor/qishi1_20210720204724289954.png)
完成简历更新后,上传照片:
![qishi2.png](/media/editor/qishi2_20210720204732208834.png)
在上传图片马后,会生成图片地址:
![qishi3.png](/media/editor/qishi3_20210720204737682820.png)
复制路径,通过 a 方法调用assign_resume_tpl函数,再通过 POST 的方式提交该路径,即可包含成功
```
http://192.168.159.208/index.php?m=home&a=assign_resume_tpl
POST:
variable=1&tpl=../../../../var/www/html/data/upload/resume_img/2011/13/5fae95e469e05.jpg
```
如下图所示:
![qishi4.png](/media/editor/qishi4_20210720204747081353.png)
值得一提的是,通过上面的分析我们可以知道,在解析模板的时候,不是解析原生的 PHP 代码,因此如果图片马是纯 PHP 代码是无法利用成功的,必须要包括骑士 CMS 模板文件的标签,我们可以随便打开一个原有模板,然后复制一句话即可,如:/Application/Home/View/tpl_company/default/com_jobs_list.html
```
“`
![qishi5.png](/media/editor/qishi5_20210720204752799532.png)
因此最终的图片马所要包含的内容应该是:
“`
“`
另外一点,骑士 CMS 对于图片上传是有过滤的,所以需要绕过技巧,具体可以自行研究,当然你也可以考虑上传 docx 或者其他类型的文件,对于包含的结果是没有影响的
[@panda](https://xz.aliyun.com/t/8520)
请登录后查看评论内容