XSS(一)
XSS分类
1.反射型XSS
2.持久性XSS
3.DOM型XSS
****
反射型XSS
也称作非持久型,参数型跨站脚本
主要将Payload附加到URL地址参数中
例如:
http://127.0.0.1/XSS.php?name=<script>alert(`XSS`)</script>
持久型XSS
又称存储型跨站脚本
此类XSS不需要用户单机特定URL就能执行跨站脚本
攻击者事先将恶意JS代码上传或存储到漏洞服务器中
当受害者浏览包含此恶意JS代码的页面就会执行JS代码
DOM树
DOM会将XML文件的节点构建成树桩,以此反映文件本身的阶层结构
DOM节点:
文档是由节点构成的集合,在DOM里存在许多不同类型的节点,主要分为三种
- 元素节点--
<body>、<p>、<ul>
之类的元素在文档中的布局形成了文档的结构,称为元素节点 - 文本节点--包含一些内容,多数由文本提供
- 属性节点--元素或多或少都有一些属性,属性用于对元素做出更具体的描述
DOM型XSS原理
客户端的脚本程序可以通过DOM动态地检查和修改页面内容
程序执行不依赖于服务器端的数据,从客户端获得的DOM中的数据并在本地执行
浏览器用户可以操纵DOM的一些对象,比如URL、LOCATIOIN等
用户在客户端输入的数据如果包含了恶意JS脚本,而这些脚本没有经过适当的过滤和消毒,应用程序就可能受到基于DOM的XSS攻击
简单示例:
HTML页面
<body>
<div id = "private_msg>'XSS test'</div>
</body>
JS:
<script>
var text = document.getElementById('private_msg').innerHTML;
alert(text);
</script>
查找DOM树方法
document.getElementById
document.getElementByName
document.getElementsByTagName