一、背景:
在某个工作日的上午,被安排了一个渗透测试项目,测试过程中收获了一枚垂直越权漏洞。本文打码较为严重,望师傅们理解。当然该垂直越权漏洞已经被修复了,本文记录主要是希望起到抛砖引玉的作用,分享一次垂直越权漏洞的挖掘思路,愿大家能够从中有所收获。
二、过程:
话不多说,在某个平台先添加一个平台管理员测试账号test,admin是当前系统登录的账号,属于超级管理员。
登录新添加的test账号发现没有平台管理等功能,功能点较少,再使用admin账号抓取添加平台管理员test1请求包。
将cookie中AuthCookie的值替换为test账号的。
请求成功,test1账号创建成功,存在垂直越权漏洞。
可以通过url,查看admin账号的roleId和userType信息。
使用test账号甚至可以直接创建超级管理员账号test2。
过了半个月时间,开发说漏洞已经修复了,emmmmmmmmm再测试发现该系统仍然存在垂直越权漏洞。
使用超级管理员账号添加普通管理员并抓包,修改roleId为1和userType为admin,发现仍然可以添加超级管理员账号test3,且test账号可正常登录。
使用低权限测试账号登录系统,获取此时cookie的值。
新开一个浏览器,使用高权限账号登录系统并抓取添加平台管理员数据包。
将数据包中的cookie替换为低权限账号的cookie,然后发送,仍然显示添加成功。
可以看到平台管理员账号添加成功,添加的平台管理员账号能登录。
通过url可查看admin账号的roleId和userType的值。
三、总结:
越权访问这类漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户帐后后,可以利用一些方式绕过权限检查,访问或者操作到原本无权访问的高权限功能。其与未授权访问有一定差别。垂直(纵向)越权指的是一个低级别攻击者尝试访问高级别用户的资源,如图所示。
在实际的代码安全审查或者是渗透测试过程中,这类漏洞往往很难通过工具进行自动化检测,因此在实际应用中危害很大。越权和逻辑漏洞一样,都可以进行手工测试,因为这些漏洞扫描器是无法识别出来的,只能通过我们手工测试,去利用,多细心观察、多实践,总会挖到越权访问这类漏洞的。
*该文章仅用于安全技术分享,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。*