0x01 XSS是啥

跨站脚本攻击Cross-site scripting (XSS)是一种安全漏洞,攻击者可以利用这种漏洞在网站上注入恶意的客户端代码。

当被攻击者登陆网站时就会自动运行这些恶意代码,从而,攻击者可以突破网站的访问权限,冒充受害者。

危害:盗取用户信息、钓鱼、制造蠕虫等。

0x02 XSS类型

存储型XSS、反射型XSS,DOM型XSS

0x03 存储型XSS

存储型XSS的攻击代码是保存在服务端(数据库),随着用户访问-数据库获取数据加载,输出在http响应中。

例如说一个场景:黑客在其他人的网站上写了一篇带有恶意JavaScript代码的文章,文章发表以后,所有访问该文章的用户,都会在他们的浏览器上执行黑客写入的恶意JavaScript代码。

存储型XSS效果图.jpg
存储型XSS效果图.zip

存储型XSS效果图2.jpg
存储型XSS效果图2.zip

0x04 反射型XSS

攻击代码在URL里,并且由服务器解析,输出在http响应中。

黑客需要诱惑用户点击一个恶意链接,触发XSS攻击。

反射型XSS效果图.jpg
反射型XSS效果图.zip

0x05 DOM型XSS

DOM XSS 与 反射XSS很像。

区别就是DOM的攻击代码是在URL中,并且使用客户端接收,输出在DOM节点中。

DOM型XSS效果图.jpg

DOM型XSS效果图.zip


0x06 不同类别之间的区别

XSS类型 存储型XSS 反射型XSS DOM型XSS
触发过程 1,黑客构造XSS脚本保存入数据库
2,正常用户访问携带XSS脚本的页面
正常用户访问携带XSS脚本的URL 正常用户访问携带XSS脚本的URL
触发点 数据库 URL URL
解析处 后端web应用 后端web应用 前端JavaScript
输出位置 HTTP响应中 HTTP响应中 动态构造的DOM节点
例如:js函数-innerHTML