一、漏洞原理
允许攻击者在用户的浏览器中执行恶意的脚本。只要是能输入参数的地方都可能产生XSS,比如说评论区,搜索框等。
二、漏洞利用
XXS漏洞常用于钓鱼,Cookie值窃取等操作。可以和文件上传漏洞打组合拳。
靶场:Pikachu靶场
- 反射型XSS
 
反射型XSS攻击又被称为非持续化攻击。通常通过构造恶意的URL语句,发送给用户造成攻击。
这个就是简单的反射型XSS通过修改URL参数。

- 存储型XSS
 
存储型XSS又被称为持续化攻击。它会把攻击者的恶意脚本存储到服务器数据库和文件中,大多数通过留言功能,评论区等功能,当用户访问这个些被写入恶意脚本的评论时就会被造成攻击。

这个留言板功能,我们输入javascript的弹窗

这个语句已经存储到服务器的数据库里面

- DOM型XSS
 
DOM(Document Object Model)是HTML文档的一种表现形式,它以树状结构组织页面内容。这个树状结构包含了HTML标签、文本、属性等所有页面元素的信息。我们插入恶意脚本在DOM树中,当浏览器执行HTML时就会解析我们插入在HTML中的恶意代码造成攻击。所以说DOM型XSS不需要和浏览器产生交互。
<!DOCTYPE html>
<html>
<head>
  <title>XSS示例</title>
  <script>
    // 获取 URL 中的参数并插入到页面
    var userInput = window.location.hash.substring(1);
    document.getElementById('output').innerHTML = userInput;
  </script>
</head>
<body>
  <div id="output"></div> //这里就是在浏览器解析DOM树时,就是执行我们刚刚插入的script代码
</body>
</html>
  这个就是构造的URL:http://example.com/page.html#<script>alert('XSS')</script>
    var userInput = window.location.hash.substring(1);
    document.getElementById('output').innerHTML = userInput;
//这里就是把我们在URL上输入的script代码插入到里面
 
 

它是在html里面的a href里面执行的

三、漏洞修复
- 过滤和转义字符
 - 安全策略(CSP)
 - HTTP only标记
 



















