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

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

2、实例

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

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

 

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

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

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

 

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

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

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

解析内容

触发xss

 

c、解析

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

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxjfs.html