<
某CMS最新版审计漏洞披露
>
上一篇

python动态爬虫
下一篇

ESPCMS前台存储xss打管理员cookie及代码执行getshell

版本 V6.1.3

1. 任意文件删除

漏洞出现在后台备份恢复功能删除zip处,对应的文件为Metinfo/app/system/databack/admin/index.class.php的821~836行从代码中可以看到$file可控且未进行过滤可进行任意目录遍历

img

漏洞复现

img

img

删除成功

2. 文件上传漏洞

文件上传漏洞也是也是出现在数据库备份恢复时,追踪对应文件上传功能点处,具体为upfilety.php文件的269行开始处,上传type为sql时执行,而默认type为sql,上传的后缀限制为sql和zip,若为压缩包zip程序进行解压判断压缩包里的文件是否为sql文件,而漏洞正是发生在此处位置代码312~328行处,当zip里面的文件非sql文件时并未终止上传,继续判断然后输出压缩包里的文件非sql文件,上传完成后,输出提示信息再exit退出。整个上传逻辑判断存在问题,因此可通过zip上传任意文件。(在审计此处时看到代码的320行处后缀(houzhui)开发竟然写为houzui了,普通话~哈哈)

img

压缩包校验

img

img

img

img

img

3. 跨目录解压漏洞

此漏洞原来与1任意文件删除类似不在进行详述。

img

$file可控且未过滤../

img

img

4.变量覆盖

此漏洞存在余

漏洞分析,以6.1.3(https://www.metinfo.cn/upload/file/MetInfo6.1.3.zip) 为例:

位置:admin/login/login_check.php,此处加载了 /admin/include/common.inc.php

img

admin/include/common.inc.php

img

此处变量可以实现变量覆盖。

因此可以覆盖$url_array变量,EXP为:

[http://127.0.0.1/admin/login/login_check.php?url_array]=123&url_array[]=123&url_array[]=aa%22+autofocus+onfocus=alert(2)+a=%0a%0ba=&url_array[]=123

img

其中authcode 为其加解密算法。 管理员正常登录后,该值会被取出并解密

app/system/include/class/common.class.php

img

最终直接输出在

app/system/safe/admin/templates/index.php

img

最终: img

无需登录,访问上述链接可以在后台直接X。当管理登录后台时,切换到“安全与效率”界面,XSS可自动触发。

img 此漏洞经测试存在于Metinfo6.x版本中。

影响版本:

6.0.0

6.1.0

6.1.1

6.1.2

6.1.3

5.存储XSS

在后台添加新闻时最终执行的函数为doaddsave,通过对应文件(about_admin.class.php、news_admin.class.php、article_admin.class.php)代码分析,添加的数据先通过$list再保存到了$_[‘M’]通过var_dump()打印输出可以看到未进行过滤。

img

代码分析,添加时执行的函数如下,在执行doaddsave时将前端获取到的内容通过$_M[‘form’]进入到了insert_list(),然后对内容大概过滤了一下但是可以看到并未对$list[‘title’]新闻标题进行过滤,然后直接插入到了数据库。

img

img

最终在后台管理-》添加新闻复现如下:

img

img

Top
Foot