CISP-PTE XSS基础

同源策略

百度:同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。

同源的意思是指域名,协议,端口相同。不同源的客户端脚本(JavaScript,actionscript)再没明确授权的情况下,不能读写对方的资源。
如果两个页面的协议,端口和域名都相同,则两个页面具有相同的源。
以百度为例:https://www.baidu.com

URL是否同源原因
https://www.baidu.com/s?wd=1协议,端口,域名都相同
http://www.baidu.com/s?wd=1协议不同
https://www.sougou.com/s?wd=1域名不同
https://www.baidu.com:8080/s?wd=1端口不同

利用XSS漏洞,我们可以通过在目标网站上执行我们自己的脚本(JavaScript脚本),从而突破同源策略的限制。

XSS

XSS攻击是在网页中嵌入恶意的脚本代码,这些代码一般是用javascript语言编写。
我们可以利用XSS攻击盗取用户的账号密码、Cookie,改变网页内容,URL跳转,水坑攻击等。

XSS类型

XSS大致分为三种类型:反射型,存储型,DOM型。
我直接通过打靶场(DVWA)的方式来给大家一个直观的讲解

反射型XSS

打开DVWA,在DVWA Security中将难度调整为low,然后点击反射型xss,可以看到这样的一个页面。

在这里插入图片描述
可以看到这里有一个输入框,我们用F12来看下它的输入框的标签属性,找到它是用name变量来接收我们输入的值,然后再往上看,可以看到是用GET传值来传输变量。

在这里插入图片描述
当我们在语句中输入xss语句时,看效果会如何,在输入框中输入弹窗语句:<script>alert(1)</script>,这句话的作用是弹窗显示数字1,如下图:

在这里插入图片描述

再让我们更加深入去了解反射型xss,我们查看网络,找到该页面的文件,查看响应,查找我们输入的xss语句,发现是xss语句是存在相应包的。且可以看到我们输入的语句,<script>被浏览器认成标签进行渲染。所以才导致xss语句被执行。

在这里插入图片描述接下来我们随意点击一个页面,然后返回到反射型xss页面中,可以发现并没有弹窗。

在这里插入图片描述

那么我们这里可以总结以下特点:
1,反射型xss大多数用GET传值,传值是经过后端的(因为响应包里存在js语句)。
2,反射型xss的代码是只有一次性的,而并不是持久性的(从随意点击一个页面返回并没有弹窗可看出)。
3,反射型xss漏洞一般着重于在可以传值的地方中(类似于输入框)查找,说不定就存在xss漏洞了。

那么怎么利用反射型xss攻击呢,首先是我们找到该页面存在反射型xss漏洞,然后构造好恶意的xss语句,将该链接转发给正常的用户,以某种方式让用户点击链接,则攻击成功。

存储型XSS

访问存储型XSS页面,可以看到是一个留言板的页面。

在这里插入图片描述
我们看下是利用什么传值。

在这里插入图片描述
通过定位的操作可以看到是POST传值,POST传值相对于GET传值有几个好处:
1,比GET传值更加安全。
2,GET传值有限制值的大小,而POST没有。
3,GET传值输入的值是在URL中,而POST传值是在消息体中。

接下来写入xss弹窗语句<script>alert(1)</script>

在这里插入图片描述
点击sign Guestbook,发现弹窗。

在这里插入图片描述
可以看到留言板中有我们输入的留言,但是内容是空的我们查看响应包,发现存在我们输入的xss语句,为什么我们的留言是空的呢?因为浏览器将其作为标签并将标签内的内容执行了,也就是我们看到的弹窗。

在这里插入图片描述
那么我们点击其他页面再返回存储型XSS,发现这次是会弹窗的。

在这里插入图片描述
这里总结下存储型的特点:
1,存储型XSS一般存在留言板,帖子,个人信息这类页面中,这些页面很有可能存在存储型xss漏洞。
2,存储型xss恶意语句会经过后端再保存到数据库中(我们的xss语句之所以可以永久存储,是因为我们的代码存放在了数据库中,正常用户访问这个页面,后端会将我们的xss恶意语句发送给用户,使用户遭受到xss攻击)。
3,相对于其他xss类型,存储型xss的隐秘性更高,因为其他都需要点击攻击者构造好的链接,而存储型不需要。

利用存储型xss攻击其实很简单,只需要找到页面的留言板,帖子,个人信息等这种将值存放在数据库中的页面,监测如果存在xss漏洞,则插入xss漏洞,坐等用户去访问这个页面或者诱骗用户访问该页面即可。

DOM型XSS

打开DOM型xss页面,点击select。

在这里插入图片描述

可以看到url中有一个default的传值,值为English。
我们将值修改成xss弹窗语句<script>alert(1)</script>
输入完后回车,触发弹窗。

在这里插入图片描述
查看响应包,查找xss语句,发现并没有找到。
说明DOM型XSS漏洞并不会将xss语句传入到后端中。

通过F12定位代码,可以看到default值在前端中定义的,我们输入的值会在<script>标签中的代码过一遍后输出。在<script>标签中将我们输入的xss语句直接输出到浏览器中,浏览器将其作为标签渲染后,执行我们的xss语句。
在这里插入图片描述

点击其他页面,再返回DOM型XSS漏洞页面,发现并不会弹窗。
在这里插入图片描述

总结下DOM型XSS的特点:
1,输入的值并不经过后端,而是在前端中执行。
2,用URL传值,构造方法和反射型相同。
3,xss语句为一次性,跟反射型相同。

攻击方法也与反射型相同。唯一的区别是反射型的payload是经过后端的,而DOM型则是在前端的。

三者的区别

XSS类型反射型存储型DOM型
触发原理用户访问带有XSS语句的URL用户访问携带有xss语句的页面用户访问带有XSS语句的URL
数据存储存放在URL中存放在数据库中存放在URL中
经过位置后端后端,数据库前端
输出位置HTTP响应HTTP响应DOM节点

以上是xss的基础内容,如果有表哥需要补充或修正的,请私信我哈~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

beirry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值