xss dom型

1、发生场景

目标网站某处,响应页面中包含脚本,会读取数据作为eval等危险函数的参数或者直接赋值为innerHTML等敏感属性,从而造成危害。

参数来源可能是地址栏中的直接参数、路径参数或者hash,也可能是保存在cookie或本地存储中,还可能是当前页面的js变量、html元素的属性值或文本中。

换个角度来说,参数可能是在存在dom型漏洞响应页面对应的请求中,也可能是早已被攻击者存储到服务端的数据。

2、利用过程

攻击者测试发现dom型漏洞,有两种情况。

(1)对应反射型,受害者用户提交的请求中包含payload,或者在hash部分

(2)对应存储型,攻击者先提交payload保存到服务端,再由受害者用户访问

dom型漏洞,payload可能并不会提交到服务端

3、测试步骤

目前并没有太好的自动化分析方法,主要是分析可受攻击者控制的参数的流向,以及响应html中的敏感函数或属性。

判断,是否可以构造导致执行危害代码。

4、防护

((1)dom型xss的防护主要由前端进行,因为有可能payload并不会发送到服务端,以及payload长期保存在cookie和本地存储等情况

(2)尽量避免使用eval等危险函数,或者innerHTML等敏感属性

(3)参数在被危险函数或敏感属性使用前,进行敏感字符检查和字符转义

posted @ 2023-04-16 00:40  挖洞404  阅读(81)  评论(0编辑  收藏  举报