xss原理和分类

前言:

准备智警杯的过程中,也不能掉下漏洞的学习。浅浅学习一下关于xss的一些知识

何为xss?

全名跨站脚本攻击,也属于注入,属于代码注入的一种。由于未进行严格的过滤,haker可以将恶意代码注入到网页当中,其他用户在访问该网页时会执行恶意代码。

xss有什么危害?

盗取用户账号

窃取用户cookie 冒充用户身份进入网站

劫持用户会话,执行任意操作

刷流量,执行弹窗广告

传播蠕虫病毒

记录一定限度的键盘输入

xss虽然不能直接产生攻击,但是由于其攻击的对象为用户,所以可以利用其作为跳板攻击

管理员用户。xss的危害取决于两点,一是漏洞本身(xss的类型和过滤策略)二是攻击者本身所能

构造的payload

xss的验证方式:

常见的验证方式,利用js代码弹窗功能

<script>alert(/xss/)</script>
<script>confirm('xss')</script>
<script>prompt("xss")</script>

xss的分类

一般来说可以将xss分为三种类型,反射型,存储型,DOM型

反射型xss

 

代码不会被存储,每次攻击需要重新进行代码注入(通过get或者post方式提交数据)

使用dvwa 来理解这个选择反射型注入

使用验证payload

成功执行弹窗

说明存在xss漏洞

分析其源代码:

注入后其源代码 构造的payload被注入到源代码处

切换到其他页面后 再回到这个页面

注入的代码已经不存在了。

证明反射型xss是非持久性的。

攻击流程

对于反射型xss来说 需要攻击者构造好恶意的链接,诱使用户点击并执行链接,类似于钓鱼的方法,来窃取用户的信息

存储型xss

 

危害最大的xss 构造的恶意代码会被存储到数据库当中,用户每次访问这个页面都会执行恶意代码。

dvwa 存储型为例

当我们 构造好payload 点击提交

页面出现弹窗

切换到其他的页面 再次切换回来依旧出现弹窗

在页面源代码当中找到 构造的payload

说明构造的payload 被长时间存储

攻击流程:

攻击者将恶意代码 写入浏览器,浏览器返回后端将其存储到服务器当中,当其他用户访问页面时就会执行恶意攻击的代码。

DOM型xss

什么是DOM?

DOM,文档对象模型 一种api接口,让用户可以使用js对html进行修改

用于处理html和xml 可以将html和xml处理成DOM树,从而利用js对其进行修改

三大节点:

元素节点 文本节点 属性节点

 直接对前端的html进行注入

如上图 利用dom向html当中写入数据,在这个过程当中。可以构造payload将恶意代码写入html当中,用户访问时就会触发恶意代码。(也是非持久型)

攻击流程:

在这个过程当中 纯前端操作没有后端的参与。

选择low难度的 DOM型xss 可以看到只有一个选择提交的功能模块,没有可以写入代码的模块。

加载url 可以看到 使用get方法提交了一个default参数

在url上构造xss的payload 出现弹窗验证存在xss漏洞

查看其页面源代码:

将get获取到的参数deault的值 进行转化之后 使用DOM写入到html当中

对于DOM类型的xss来说,可以用来获取网页当中一些存储隐私信息的节点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值