来源
https://www.0daying.com/post-71.html
触发条件
两个条件:
1.迅睿CMS 版本为v4.5.4到v4.5.6(目前最新版)
2.登录后台,且为管理员或具有"应用"->“联动菜单"的管理权限
漏洞描述
后台"应用”->“联动菜单”->“导入"处可上传zip文件,且该处没有对用户上传的zip压缩文件做相应的过滤,导致用户可以上传任意文件
漏洞利用
版本v4.5.4
将要上传的文件压缩为zip格式,然后登陆后台,在具备相关权限的情况下,在"应用”->“联动菜单”->“导入"处直接上传该zip文件,同时上传时必须要抓包,响应包中会返回上传的文件的物理路径
响应包中返回的物理路径通常为*/cache/temp/*.zip
,而通过该漏洞上传的zip文件在上传成功后会自动解压,自动解压的过程中会自动在zip文件的同目录下创建一个名为压缩包去掉后缀名的文件名的目录,再将压缩包内的文件解压到此目录,因此,通常情况下如果上传一个名为webshell.zip,且压缩包内有一个名为webshell.php的文件的压缩包,那么,通过该漏洞上传zip文件之后,压缩包内的webshell.php文件的物理路径为*/cache/temp/webshell/webshell.php
,通过url访问为http://domain:post/cache/temp/webshell/webshell.php
版本v4.5.5和版本v4.5.6(目前最新版)
相比版本v4.5.4,这两个版本增加了对压缩包内文件的检测,但是此处我们先不尝试绕过相应的检测,而是尝试另一个更为简单的方法
这两个版本未对压缩包内的文件夹进行递归检测,因此只要把恶意文件放在文件夹内再压缩然后上传即可
相比版本v4.5.4,在上传该zip压缩文件时依旧可以通过抓包获取文件的物理路径,同时因为增加了一层文件夹,相应的解压之后的压缩包内的文件的物理路径变为*/cache/temp/linkage/webshell/webshell/webshell.php
,url变为http://domain:post/cache/temp/linkage/webshell/webshell/webshell.php
POC && EXP
很简单,我就不写了,不过注意目标站点的cms可能有坑,比如版本号低但实际的站点文件已经更新过了
POC
登录后台,获取版本号,然后验证一下是否为管理员或具有"应用”->“联动菜单"的管理权限即可
EXP
登录后台,然后在"应用”->“联动菜单”->“导入"处上传zip文件