0x01 XSS是啥
跨站脚本攻击Cross-site scripting (XSS)是一种安全漏洞,攻击者可以利用这种漏洞在网站上注入恶意的客户端代码。
当被攻击者登陆网站时就会自动运行这些恶意代码,从而,攻击者可以突破网站的访问权限,冒充受害者。
危害:盗取用户信息、钓鱼、制造蠕虫等。
0x02 XSS类型
存储型XSS、反射型XSS,DOM型XSS
0x03 存储型XSS
存储型XSS的攻击代码是保存在服务端(数据库),随着用户访问-数据库获取数据加载,输出在http响应中。
例如说一个场景:黑客在其他人的网站上写了一篇带有恶意JavaScript代码的文章,文章发表以后,所有访问该文章的用户,都会在他们的浏览器上执行黑客写入的恶意JavaScript代码。
0x04 反射型XSS
攻击代码在URL里,并且由服务器解析,输出在http响应中。
黑客需要诱惑用户点击一个恶意链接,触发XSS攻击。
0x05 DOM型XSS
DOM XSS 与 反射XSS很像。
区别就是DOM的攻击代码是在URL中,并且使用客户端接收,输出在DOM节点中。
0x06 不同类别之间的区别
XSS类型 | 存储型XSS | 反射型XSS | DOM型XSS |
---|---|---|---|
触发过程 | 1,黑客构造XSS脚本保存入数据库 2,正常用户访问携带XSS脚本的页面 |
正常用户访问携带XSS脚本的URL | 正常用户访问携带XSS脚本的URL |
触发点 | 数据库 | URL | URL |
解析处 | 后端web应用 | 后端web应用 | 前端JavaScript |
输出位置 | HTTP响应中 | HTTP响应中 | 动态构造的DOM节点 例如:js函数-innerHTML |