CVE-2018-20128:UsualToolCMS v8.0后台任意文件删除
一、漏洞摘要
漏洞名称: UsualToolCMS v8.0后台任意文件删除
上报日期: 2018-12-08
漏洞发现者: Krypton
产品首页: https://cms.usualtool.com/
软件链接: https://cms.usualtool.com/
版本: 8.0
CVE编号: CVE-2018-20128
二、漏洞概述
漏洞位于cmsadmin\a_sqlback.php
的第74-88
行,咱们贴上代码来看。74
行的if
用来判断$_POST['t']
的值是不是为del
,如果不是,则进入82-83
行的假区间,echo 一句无法删除。如果是del
则进入真区间
进入真区间后,75
行,将$_POST()
函数接收到的$backname
赋值给$backname
。
76
行用count()
函数将$backname
的个数做了统计赋值给$backnamenum
,
随后进入for
循环将$backnamenum
进行遍历并且获取他的每个文件名。然后赋值给$sqlback
,之后进入79
行的if
判断,通过自己的一个函数去检查$sqlback
,我们跟进这个函数
在class/UsualToolCMS_INC.php
的138-142
行是他的contain
函数执行的操作。
可以看到他是做的一个字符串分割且判断是否数量>1
,满足则return true
否则return else
,
然后继续查看一下unlinkFile
的函数,看一下他的代码是做了什么事情
判断文件是否存在 ,存在则删除,且return true
否则return false
然后cmsadmin\a_sqlback.php
的代码就全部跑完了,在审查的过程中,并没有对其文件名和目录做出限制,于是可以构造成一个任意文件删除漏洞
三、利用过程
来到数据库备份的地方
然后burp
抓包,得到数据包如下
然后我们在本机网站存放的磁盘下新建一个文件1.txt
,将数据包的backname
参数改为../../../../../1.txt
并且发包看结果。
发包前:
发包后:
burp的回显:
电脑的效果:
OK,可以看到 ,成功的删除了我们的1.txt
文件,于是乎,这个任意文件删除是ok的
四、参考信息
CVE中文申请网:http://www.iwantacve.cn/index.php/archives/90/
CVE官方:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20128
exploit-db:发布中