——D&X安全实验室
0x01 代码分析:
1、首先全局搜索常被过滤函数或标签(尽量不要搜索标签,结果太多了不好筛查),此处以onclick为例,未能筛选到相关规则,可替换其他搜索:
2、以下为使用script搜索为例,审查筛选相关规则:
3、除此之外,我很还可以用搜索常见特征 ’过滤’ 字段搜索:
4、打开safestring.class.php可以看到之所以onclick搜不到是因为使用了正则的方式写的屏蔽on开头诸多函数:
5、寻找对应的XSS过滤器:
6、可以单独测试XSS过滤器,发现XSS常用标签及其触发函数的过滤器写的有问题:
7、针对于XSS过滤器来说’<’和’>’都被转义,无法通过新建标签构建XSS。
但是由于过滤器编写有问题,可以考虑通过标签内部闭合属性构建XSS,然而经完整测试环境测试发现引号及触发函数都被禁用:
8、通过查找fliter_xss方法调用发现,开发写了方法把各类过滤器都规划起来(XSS过滤器写的有毛病,还有其他过滤器辅助):
9、针对于这种情况,只能寻找入参没有经过usafestr方法处理的位置。
此处可能存在存储型XSS漏洞,开始测试。
0x02 漏洞验证过程:
1、cms后台,这里使用网站录用人员权限账户(较低权限,无法获取客户信息等资料): http://127.0.0.1/yunyecms/admin.php?c=login&=
2、任意可修改资源进行Burp抓包修改:
3、Burp抓包后在 编辑器内数据(测试功能页对应conten_1)结尾处添加XSS payload: <img src="1" οnerrοr=alert(document.cookie)>
4、进入首页公司介绍,触发存储型XSS,(网站有xss过滤器,但未在编辑器内容提取后使用):