反射型,存储型,DOM型XSS特点和区别
反射型XSS:攻击者构造一个参数包含恶意js代码的URL,诱骗用户点击,用户访问后向服务器发送请求,服务器响应包含恶意代码的页面,并在客户端执行。例如服务器后端存在PHP代码echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
,参数name传入js代码后,则会在服务器生成恶意页面,然后返回给客户端执行
存储型XSS:攻击者通过网页的留言、评论等交互处将恶意代码注入到服务器数据库中,用户请求后响应包含恶意代码的页面
DOM型XSS:攻击者构造一个参数包含恶意js代码的URL,诱骗用户点击,用户访问后向服务器发送请求,服务器的响应并不包含恶意代码,而是URL中的代码直接在本地浏览器由js执行。例如下面的html页面,当URL的参数a传入js恶意代码后,会直接被html内嵌的js代码写入到html中,并不需要经过服务器的处理
三者之间的区别
- 反射型 XSS 是一次性的,通过 URL 或表单数据直接反射到响应中。
- 存储型 XSS 是持久的,恶意代码存储在服务器上,并且可能影响多个用户。
- DOM 型 XSS 是纯客户端的,依赖于客户端 JavaScript 处理,服务器看不到这些攻击代码。
fuzz字典
https://github.com/TheKingOfDuck/fuzzDicts
XSS靶场通关
第一关
进行xss注入
第二关
需要闭合掉双引号构造payload
第三关
构造鼠标点击事件
第四关
继续构造事件
第五关
点击“>"触发a标签href属性