DOM-based型XSS
这种类型的XSS并非按照“数据是否保存在服务器端”来划分,DOM Based XSS从效果上来说也是反射型XSS。单独划分出来,是因为DOM Based XSS的形成原因比较特别,发现它的安全专家专门提出了这种类型的XSS。出于历史原因,也就把它单独作为一个分类了。通过修改页面的DOM节点形成的XSS,称之为DOM Based XSS。
我们客户端的js可以对页面dom节点进行动态的操作,比如插入、修改页面的内容。比如说客户端从URL中提取数据并且在本地执行、如果用户在客户端输入的数据包含了恶意的js脚本的话,但是这些脚本又没有做任何过滤处理的话,那么我们的应用程序就有可能受到DOM-based XSS的攻击。
为了更好地理解,通过实例来演示:我们直接进入pikachu平台进行演示:
我们随便输入一些数字作为试探信息,发现它回应了what do you see这句话。
图3.9 进入pikachu平台,输入试探性信息
通过试探性信息,我们可以知道输入点。如进入源代码页面,搜索一下what do you see,我们可以定位到这个地方。
图3.10 成功定位输入点
发现就是我们演示反射型XSS的方法,它把我们输入的东西赋值给了str,之后又通过字符串拼接的方法将我们的输入写到了a标签的href里面,那么接下来,我们如何去确认这个地方