干货文章学点高级测试工程师才懂的技术:手把手教你进行越权测试
Posted 程序员小濠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了干货文章学点高级测试工程师才懂的技术:手把手教你进行越权测试相关的知识,希望对你有一定的参考价值。
关注我,每天分享软件测试技术干货、面试经验,想要领取测试资料、进入软件测试学习交流群的可以关注我的公众号【程序员小濠】
怎样进行越权测试?
要了解越权测试,首先要先了解什么是越权攻击。
越权攻击顾名思义就是超越了自己的权限范围,是指用户通过某种方式获取到了不属于自己的权限。越权攻击分为水平越权和垂直越权。
下面我们先来说一下水平越权
水平越权:攻击者尝试访问与他权限相同的用户资源。比如说在修改用户信息时,在浏览器上用户可以看到该用户的ID是多少,如下图
这里如果攻击者通过猜测或者其他途径获取到了其他用户的ID是多少,那么就可以在浏览器的地址栏里将ID直接换成要攻击的用户ID,就可以访问被攻击用户的用户信息并对其进行修改。
再举一个例子,比如说一个用户在某网站上买了一件商品,但是地址填错了,要去修改地址
我们看到地址栏里也有订单号的ID,那么如果攻击者获取到了其他用户的订单号信息,就可以轻易的对订单信息进行修改。
接下来我们再来说一下垂直越权
垂直越权:是指攻击者尝试访问更高级的权限内容。
比如用户A只有查看订单的权限,页面的URL如下图
用户B有查看订单的权限和查看账单的权限,URL如下
这种情况如果用户A猜测到了查看账单的路径,那么就可以直接通过访问路径的方法去访问账单。
下面我们根据之前讲述的两种攻击方式的逻辑来写一下怎样进行越权测试。
首先是水平越权测试,这里我们就需要先准备两个用户A和B,这两个用户有相同的用户权限。用用户A登陆系统去尝试获取或者修改用户B的信息,具体用例如下
接下来讲一下垂直越权测试,垂直越权测试也是需要准备两个用户C和D,这两个用户要有不同的用户权限,比如说A用户有编辑订单的权限,B用户没有,下面我们来设计一下测试用例
当然,现在好多网站为了安全起见,操作用户信息时,已经不在地址栏里显示这些敏感信息了,那如果不显示的话,越权测试我们该如何进行呢?
下面我们再来说一下如何利用工具进行越权测试。这里我们使用到的工具是Burp Suite。
首先我们用用户C登陆系统,然后将页面定位到编辑用户信息的页面,然后将Burp Suite切换到proxy,点击一下intercept is off,按钮变成intercept is on开始抓包。
然后在编辑用户的页面,点击保存按钮,这时候我们就会抓取到一些数据,如下图
我们可以看到,这里有用户的id数据。我们需要将这段信息保存到Repeater供回放时使用。操作如下图
这个时候我们切换到Repeater就可以查看到我们之前抓取到的数据了。
接下来我们通过F12去获取到用户D的id,或者是用上述同样的方式获取到用户D的id,将用户D的id,替换到我们保存到Repeater中的用户C的id,如下图
替换完成,点击“Go”,可在右侧查看执行的结果。
那么如何根据执行的结果判断这里是否存在越权漏洞呢?
执行的结果有两种,成功和失败。如果结果返回失败,那么我们可以认为这个地方不存在越权攻击的危险;如果结果返回成功,也有两种情况,一种是返回成功,用户D的信息确实被修改了,这种我们就可以认为这个地方存在越权的风险;另一种情况是返回成功,但是去查看用户D的信息时,并没有被修改,这种情况我们也可以认为是没有确认的风险。
最后:【可能给予你帮助】然后下面分享一些我的自学资料,希望可以帮到大家。
这份资料整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。对于软件测试的的朋友来说应该是最全面和完整的备战仓库了,这个仓库也陪伴我走过了很多坎坷的路,希望也能帮助到你。
关注我的微信公众号:【 程序员小濠】免费获取~
送上一句话:
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
我的软件测试交流群:175317069,群里有测试大牛分享经验~
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
以上是关于干货文章学点高级测试工程师才懂的技术:手把手教你进行越权测试的主要内容,如果未能解决你的问题,请参考以下文章