CTF实战:技术、解题与进阶
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.1 XSS类型

本节介绍XSS的3种类型。

1.反射型XSS

反射型XSS又称非持久型XSS,指的是让请求的响应结果中包含恶意代码,浏览器解析后触发XSS。恶意代码并没有保存在目标网站,而是通过引诱用户点击一个恶意链接来实施攻击,代码如下。

将URL中的GET参数Name的值直接输出在网页中,如图1-54所示。

图1-54 传递参数

设置Name参数的值为<script>alert(1);</script>,我们写入的代码会直接输出和解析,执行结果如图1-55所示,这就是一个典型的反射型XSS。

图1-55 反射型XSS弹窗

2.存储型XSS

存储型XSS与反射型XSS的不同之处在于恶意代码会被保存在目标网站中,只要受害者浏览包含此恶意代码的页面就会执行恶意代码。这意味着只要有访客访问了这个页面,就有可能执行这段恶意脚本,因此存储型XSS的危害更大。

存储型XSS一般出现在个人信息、网站留言、评论、博客日志等交互处。

3.DOM型XSS

出现在DOM(Document Object Model,文档对象模型)中而不是HTML中的XSS称为DOM型XSS。DOM是HTML和XML文档的编程接口,提供了对文档的结构化的表述,并定义了一种从程序中对该结构进行访问的方式,从而改变文档的结构、样式和内容。DOM将文档解析为一个由节点和对象(包含属性和方法的对象)组成的结构集合,代码如下。

访问www.test.com/dom-xss.html#alert(1)时,alert(1)会被执行并触发弹窗,如图1-56所示。

图1-56 触发弹窗

在DOM型XSS中,受攻击页面的HTML源代码和响应页面将完全相同,响应页面是找不到Payload的。DOM型XSS不会被服务器端的过滤器阻止,因为在URL中,“#”之后的内容不会发送到服务器上。