ICMS 8.0.0后台模板注入导致远程代码执行0day漏洞分析

Author: 颖奇L’Amore

Blog: www.gem-love.com


前言

这个洞一年前就挖到了,然后2月份给了今年中旬比赛的XCTF Final(但是这个洞用不了因为题目需要RCE),因为比较久远,一直给忘记了。漏洞也是直接报给了开发者修复。

exploit

then upload 1.htm:

<font size=24px color=red>iCMS<=8.0.0 RCE</font>
<!--{foreach key=date value=alist from=1);phpinfo();/*?>}-->

Set template file to the htm file uploaded before

RCE:

Analyse

TemplateLite->_fetch_compile() calls $compiler->_compile_file($template_file), in _compile_file method, then it calls _compile_tag()

In the _compile_tag method, strict filtering is not performed, resulting in malicious code being injected into the template source code

go back to TemplateLite->_fetch_compile(), the template code injected with malicious code is written into the file and included, resulting in remote code execution

后记

还有一个RCE的洞,当时我做题目docker是用的官网的7.0.16,其实开发者早就更新到了8的版本。

7.0.16可以通过任意文件上传+更新patch包来getshell,这个也是注意到了,但是已在8.x不可用了,原因是通过Request::input()进行file_get_contents('php://input')并进行parse_str(),处理为数组后过不了md5()。所以这个洞不详细分析了。

Author: Y1ng
Link: https://www.gem-love.com/2021/12/10/ICMS-8-0-0后台模板注入导致远程代码执行0day漏洞分析/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
【腾讯云】热门云产品首单特惠秒杀,2核2G云服务器45元/年    【腾讯云】境外1核2G服务器低至2折,半价续费券限量免费领取!