Web渗透测试之XSS跨站脚本攻击分类 详解
目录
XSS分类
反射类型
漏洞等级
反射性执行过程
DOM类型
什么是dom:
HTML-DOM树
攻击方法
DOM类型分类
触发dom的操作
DOM-XSS-x类型
存储型类型
影响程度
存储性执行过程
XSS分类
反射类型
-
找什么位置---但凡是有数据交互的【评论 注册 登陆-{输入输出}】。
-
没有存储下来 一次性的。
- 只要不保存到数据的xss 我们都称之为反射类型
-
<script> alert(123);</script>
漏洞等级
- 中低危漏洞 影响时间比较小
- 反射性刷新页面 效果就是没有【没有永久存储在数据库】
- 判断是不是有XSS注入 如果js的alert来判断
<a href=>xx</a>
-
这里生成了一个正常的标签了 其实也是正常的含有xss注入漏洞的 a标签有特殊效果就会变颜色了
-
输出的形式以标签的形式展示的 大概率存在css漏洞
反射性执行过程
-
1 如果是没保存 输出了 确实有xss 那么其他用户是一个新的页面,其他用户看到还是没有攻击的页面,这个时候需要让别人受到攻击咋办,这个时候是没办法插入数据到服务器的。
-
2 伪造一个html页面 写好攻击页面,发送给被攻击者客户端,发给他或者下载,让他触发你的攻击代码,让他输入用户名密码,自动就发送用户cookie发送黑客的网站。 针对的是放射性的xss。
DOM类型
中低危漏洞 不发送到服务器端
什么是dom:
- HTML的标签是节点,而这些节点组成了DOM整体结构-节点树。
- 通过HTM-DOM树种所有节点均可以通过JS进行访问
- 所有HTML元素【节点均可以被修改】 也可以创建或删除节点
HTML-DOM树
- 在网站页面种有很多元素,当页面达到浏览器的时候,浏览器会为页面创建一个顶级的Document object 文档对象
- 接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性,方法和事件。
- 可以通过通过DOM动态修改DOM动态修改页面内容
- 从客户端获取dom种的数据并且在本地执行
- 由于dom是在客户端修改节点的
- 所以基于dom类型的xss漏洞不需要和服务器交互
- 他只发生在客户端处理数据的阶段
攻击方法
-
用户请求一个专门设计过的URL
-
它由攻击者提交,而且其中包含CSS代码
-
服务器的响应不会以任何形式包含攻击者的脚本
-
当用户的浏览器处理这个响应时,DOM对象就会处理CSS代码,导致XSS漏洞。
-
-
客户端向服务端发送一个请求,服务端返回的数据
-
客户端会解析成树形结构
-
会找到html标签【元素 节点】我们说的元素 也是标签 标签元素 ,标签的属性,属性也是元素 属性元素。
-
-
浏览器将数据关联起来 方便后续加工,JS CSS 效果控件
-
Js代码又去找某个标签
-
DOM操作:
-
通过js代码操作DOM文档对象模型时候触发的漏洞一般不和服务端交互,一般属于中低危漏洞。
-
-
DOM类型分类
-
Dom也可能存在存储型的操作
-
Dom一般就是反射性的交互
触发dom的操作
- 可能出发Dom xss操作 也就是js中用了这些方法的时候
document.referer
window.name e
location
innerHTML
document.write
-
面不刷新也能发网络请求,网络请求拿到数据,通过JS塞入到Dom操作的标签中
-
通过浏览器输入网站 from表单都可以发送网络请求
-
也有有展示效果就不用深究是不是存在网络请求
-
DOM-XSS-x类型
-
Dom标签和反射性-后端交互联合使用
-
红队做攻击
-
这个是反射性和服务端进行交互了 客户端发生了变化了
-
存储型类型
- 存储到数据库中:这个弹窗是不会消失的因为是存储在数据库中了 XSS 钓鱼攻击
影响程度
中高危漏洞 影响时间比较长
存储性执行过程
-
POST请求发现xss漏洞 伪造一个登录页面HTML 写好攻击代码漏洞
-
向服务端提供攻击代码 保存了 存储性 一个性写入 就存储了
-
其他客户端就能看到 那么客户端就被攻击了
-
其余的注入方式都和放射性一致