前言
最近看到CNVD有个漏洞,https://www.cnvd.org.cn/flaw/show/CNVD-2020-31720。是joomla的插件,因为以前也没怎么看过joomla的漏洞,所以想下载下来看看能不能还原poc。还好,这个漏洞属于差不多看见代码就知道存在的类型。插件是从这里下的https://ordasoft.com/Download/Download-document/570-Component-OS-CCK-free.html.
分析
找路由
这个插件安装完成后,可以看到有个明显的uploader.php文件,运气很好,直接进去看看发现的确有文件操作。
本来想直接通过url访问这个文件,结果有个判断不能直接访问
所以我就直接全局搜了下文件名,发现可通过joomla路由/index.php?option=com_os_cck&task=getContent传递
漏洞原理
首先,进行了一个文件的获取
然后进行了文件类型的判断,但其实这个判断不重要,因为可以在文件里加php代码
而最后保存的时候,就是漏洞所在,保存的文件名,直接利用获取的后缀拼接了,ext 就是 $pathinfo['extension'],导致可保存任意文件。
利用
上传个jpg然后抓包,在内容里加入PHP代码。
文件会上传到
joomla\images\com_os_cck0\original
目录下,另外同名文件会依次在后面加1。访问url,PHP代码执行成功。
题外话
学了好几年感觉自己越来越菜,joomla和wordpress路由我没仔细研究过,感觉找漏洞的时候有点吃力。以前觉得自己太菜,不好意思分享,最近想开了,还是要分享,不然永远也不知道自己哪有问题hhh。