业务安全-02业务逻辑漏洞之越权操作

Posted 百事都可樂.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了业务安全-02业务逻辑漏洞之越权操作相关的知识,希望对你有一定的参考价值。

越权

越权即越权查看被人的信息,又分为水平越权垂直越权,但是两者的本质都是一样的,只是越权的身份权限不一样而已

  • 水平越权:相同级别的用户,如用户A访问用户B

  • 垂直越权:普通用户到管理员,普通用户访问管理员

从上图可以看出权限问题,用户A和用户B都属于普通用户这一权限权限最高的是管理员,所谓的越权关系是指同一权限的关系和高低权限的关系。

如果使用用户A的权限去操作用户A的数据,用户A的权限小于用户B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。

一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。

因此,在在权限管理中应该遵守:

1.使用最小权限原则对用户进行赋权;

2.使用合理(严格)的权限校验规则;

3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;

越权的漏洞类型还是挺多的,比如越权查看别人信息,越权修改密码,通过id进行订单遍历等。但是本质都是一样的,都是因为数据包中存在某个参数值,而这个参数值又决定了某个用户的身份。当将其值进行修改,就可以查看到别的用户的信息。

靶场实战

靶场环境:pikachu-master/phpStudy PHP-5.4.45

抓包工具:burp

水平越权

用户A和用户B属于同一级别的用户,但双方不能操作对方的个人信息,如果用户A越权操作用户B的个人信息,我们称之为水平越权操作。进入靶场我们发现有三个用户lucy、lili、kobe,密码都为123456

  1. 进入靶场登录用户,查看信息,进行抓包

  1. 这里我们发现username可以修改的,我们修改username观察是否可以进行数据读取(这里的username就相当于id,具有唯一性)

由此可见,我们修改username就能查看其他用户的信息(tips:我们可以通过在网页中浏览用户,相同账号名不能创建、在url中进行id遍历等方式获取其他用户的username)

  1. 查看源代码,我们发现后台只判断是否登录并没有用session来校验

因为在查看信息的界面 只判断了是否登录 并没有判断是哪个用户

垂直越权

用户A权限高于用户B,用户B越权操作用户A的权限称之为垂直越权,进入靶场我们发现有两个用户admin是超级boss,密码是123456,pikachu只有查看权限,密码为000000

方式一:

  1. 首先我们登录管理员账号,进入添加用户界面的url,而这个url默认只有管理员才能访问,那么如何让普通用户也能进行访问呢?我们先记下这个url地址

  1. 退出管理员登录普通用户,然后访问记下的url,发现可以成功访问,并添加用户wyy

  1. 退出普通用户登录admin,发现wyy被添加成功

方式二:

  1. 重新登录管理员账号添加用户,利用burp进行抓包,将抓到的包放到repeater模块中

  1. 退出管理员登录后,然后用普通用户进行登录,复制普通用户的cookie值到repeater模块中替换掉原来的cookie

  1. 修改用户信息让添加的用户更清楚,然后点击send进行发送

  1. 回到浏览器刷新页面发现成功添加新用户,xzz为admin创建数据包时添加的,而xzq为重放数据包添加的

总结:

水平越权与垂直越权的区别:水平越权访问是一种 “基于数据的访问控制” 设计缺陷引起的漏洞,垂直越权是一种 “基于 URL 的访问控制” 设计缺陷引起的漏洞,本质上是所利用的漏洞不同获得的权限不同。垂直越权是一种 “基于 URL 的访问控制” 设计缺陷引起的漏洞,又叫做权限提升攻击,而水平越权访问是一种 “基于数据的访问控制” 设计缺陷引起的漏洞,两者在本质上完全不同。

web业务安全逻辑

一、认识业务逻辑漏洞

业务逻辑漏洞是指由于程序逻辑不严谨或逻辑太复杂,导致一些逻辑分支不能正常处理或处理错误,如攻击者根据在线购物支付漏洞可以任意修改支付金额,薅羊毛等操作。

二、价格&数量&产品

漏洞测试:大米cms
靶场地址:http://59.63.200.79:8003/dami_777/dami_888/index.php

1.价格&数量修改

先随便注册一个用户进行登陆,然后来到购买产品处,点击购买抓包


可以看到这里的参数涉及数量和金额尝试修改

这里发现成功把原来的金额修改

2.产品参数替换
返回到购买可以看到有两种产品,测试产品-价格6000和手机CMS-价格5400

购买这两种产品分别抓包


最后我们尝试用5400去买大米测试产品6000


参数替换

成功以5400的价格购买大米测试产品

三、CTF-CISCN2019(ikun)


这里提示ikun们冲鸭,一定要买到lv6!!!,先注册一个账号

然后我们写一个脚本找如下

import requests
url="http://f58e736b-f8c5-4bce-8a24-0bd040fe3c28.node4.buuoj.cn:81/shop?page="

for i in range(0,2000):

	r=requests.get(url+str(i))
	if 'lv6.png' in r.text:
		print (i)
		break


找到v6

价格高低有点贵,我们通过抓包修改折扣购买

这里的discoun就是折扣修改成0.0000001

成功ru yang mao,后续就不做了和业务安全没有太大关系,涉及jwt伪造和php反序列化

以上是关于业务安全-02业务逻辑漏洞之越权操作的主要内容,如果未能解决你的问题,请参考以下文章

逻辑漏洞基于BurpSuite的越权测试实战教程

web安全测试主要都有哪些漏洞

业务安全-03业务逻辑漏洞之暴力破解(Burte Force)

web业务安全逻辑

Web安全-逻辑漏洞-业务逻辑漏洞利用

web安全业务逻辑找回机制安全&接口安全