Web漏洞之逻辑越权
[部分搜寻的资料用于自学,如有侵犯,联系可删! ———— by 611]
逻辑越权
一、基础知识
1、漏洞原理
逻辑越权漏洞就是用户跨越了自己的权限限制,去操作其他同级用户或上级用户,通常情况下,用户访问一个应用的大致流程是:登录—验证权限—数据库查询—数据返回,如果“验证权限”这个阶段出现了验证权限不足或者没有验证,那么就会导致越权,用户A可以操作其他用户的内容,而根据其他用户的类别,我们将逻辑越权分为水平越权和垂直越权两大类。

水平越权(同级别越权):也叫访问控制攻击。通过更换某个ID之类的身份表示,使得用户A获取同级用户B、C、D的操作权限。(这里的操作权限是指与用户A登录自己账户时相同的操作权限)
通俗点说:水平越权就是权限类型不变,权限ID改变。比如a,b两个普通用户,a只能看a的资料,b只能看b的资料。但是a通过修改用户名或者其他参数,看到了b的资料,就是水平越权。
垂直越权(高级别越权):也叫权限提升攻击。使用低权限的身份账号,向服务器发送高权限账号才能拥有的请求。
未授权访问(待补充)
二、案例演示
pikachu靶场(水平越权)
Write Up
1、登录用户kobe,登录成功后,发现有查看个人信息的按钮。


2、点击查看个人信息,抓取相应的数据包,通过观察数据包发现Get请求传入了一个username为kobe的。

3、我们尝试把username的值kobe换成另一个lucy,再发送该数据包,发现界面信息显示已经更换为用户lucy的。

过程分析
1、上述过程,用户kobe成功越权到同级别用户lucy,不需要知道lucy的账号和密码,就能执行登录lucy后可以做的操作。我们查看源码分析原因,该关卡源码有两个php文件。

2、op1_login.php这个文件用于登录功能,如果登录成功,则打开op1_mem.php的文件。

3、登录进去之后,op1_mem.php文件显示了界面信息,代码判断了登录成功之后,只是单纯地对提交的username进行了接收,然后根据其参数username的值,显示对应用户的信息。也就是说:只要登录上去了,那么后端就认为登录成功了,然后username是哪个用户就显示谁对应的信息,根本没有详细地去校验当前登录用户是否与username参数的值是否一致,导致产生了水平越权漏洞。

4、做的过程会有疑问:实战时如何才能知道的其他用户名呢?
- 有些网站注册的时候会提示:用户名已注册。那么我们就能知道一定有对应的用户名。
- 有些网站个人主页的URL对应id值,可以通过该id查看都要哪些用户。
墨者学院靶场——身份认证失效漏洞实战(垂直越权)
https://www.mozhe.cn/bug/detail/eUM3SktudHdrUVh6eFloU0VERzB4Zz09bW96aGUmozhe
本关的目的是通过普通用户test获取到管理员用户马春生的信息。
1、该关卡要抓两个数据包,第一次抓到后放出去,然后抓第二个,根据这两个数据包分析。
第一个数据包抓完放出去:

点击确定后,把包放出去,就会抓到第二个包:



3、将其发送至Repeater,发现有用户名和密码的信息。

3、我们观察第二个原始数据包发现有个参数是card_id,那么我们就大概判断这个card_id就应该是用户的ID标识,也就是说:只要我们获得管理员用户的ID,就有可能通过垂直越权获取到管理员的操作界面,那么我们如何能知道管理员的ID呢?我们发现,首页界面有头像的信息,那么尝试查看图片的URL,发现恰好URL中含有card_Id的信息。

4、所以我们把数据包中的card_id改成管理员的,则获取到了信息如下

5、密码判断应该是Md5加密,将其解密,获得用户名和密码,登录成功。
用户名:m233241
密码:9732343(md5解密后)

三、越权工具
Authz(Burpsuite里的插件)
插件原理
判断越权的过程就是使用用户A的认证Cookie,通过修改数据包中指定的字段值(比如上例中的card_id),然后去访问修改后的页面,如果访问成功,则存在越权。所以Authz的原理就是:设置好用户A的认证Cookie,可以通过前期用Intruder模块爆破的所有修改完ID字段的数据包,执行之后,Authz会利用用户A的认证Cookie,去批量测试所有的修改后的数据包,如果回应包是绿色的,证明都是越权成功的。
添加插件方法

举例
1、以案例演示中墨者学院的靶场为例,被修改的字段是card_id,所以我们可以批量生成被修改card_id的数据包,我们假设只有后两位是不一样的,那我们就利用Intruder模块,让后两位从0变到99。


2、把被修改的所有数据包发送到Authz插件。

3、把Cookie设置成当前用户的Cookie,然后点击Run,开始测试。(相当于用当前用户的Cookie去访问所有的Requests请求)

4、绿色的即为越权成功的。


浙公网安备 33010602011771号