记一次基于DOM类型的XSS注入

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

记一次基于DOM类型的XSS注入

阆南山水天下稀   2021-01-05 我要评论

1、现象

基于DOM类型的跨站式脚本涉及到输出未经筛选或者编码的不可信的客户端数据,被当做JavaScrip代码执行。通常情况下,如果怀疑URL的某部分是由客户端JavaScript代码进行处理并输出给用户的,存在潜在的XSS。

2、实例

本次笔者经历的不是通过URL中部分内容传入不可信的客户端数据,而是通过页面的输入框,输入固定格式的内容,然后通过客户端JavaScript代码进行处理并回显给用户。

 

3、步骤

a、如上图所示,客户端需要输入固定格式要求的内容,点击“解析”按钮,可以将文本框的内容解析并回显到页面中

当我们在输入框中输入一小段JavaScript代码时,可以查询网页源码中的效果

 

 通过网页源码,我们发现这段代码片段已经完全插入到网页中去(至于插入的实际代码,可能需要多次尝试,无非是通过尖括号或者引号绕过解析,不详述,如果有兴趣可以交流)。完成代码片段植入后,事实上的效果并未如我们所见的弹框。笔者甚至通过植入一个函数,然后在网页Console中调用仍然未通过。

b、换位思考,如果植入一个其他正常的页面元素,如button、img标签如何

通过尝试植入button、img是可行的,上效果图,图下图:

 

c、解析

事实上,输入框的第一排文字是被JavaScript解析为用户姓名的,并回显在下面的输入框中;通过测试发现,用户姓名解析是通过空格来进行分割,因为植入的代码片段中使用了大量的 “/**/” 进行空格注释,保证代码片段的完整性。细致的观察到姓名和代码片段间有单引号和右尖括号(通过完成解析绕过)

顺利植入了img标签,鼠标移动过图片则触发了xss漏洞!该过程完全不会通过服务器!!

 

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们