本文的知识内容,仅供网络安全从业人员学习参考,用于已获得合法授权的网站测试,请勿用于其它用途。请勿使用本文中的工具、技术及资料,对任何未经授权的网站、系统进行测试,否则,所造成的直接或间接后果,均由您自行承担。
在涉及多用户体系的相关功能的测试中(比如多用户交互的业务流程测试、垂直越权漏洞测试),经常需要频繁切换多个不同的账号,需要频繁地输入账号密码和验证码进行登陆、修改账号Cookie测试越权。这样的测试过程非常繁琐,大大降低了测试的效率。
上个版本我们上线了“身份切换模块”,点这里看教程(身份切换测试模块)。最近我们对其进行了更新:
● 在历史记录模块,重放数据包时可直接切换身份;
● 增加会话身份的展示,指示当前数据包使用的身份会话具体来源。
具体应用请看下面的实操。
本文通过测试靶场来演示新功能“历史记录模块中新增的用户身份切换功能”。
测试靶场:https://github.com/zhuifengshaonianhanlu/pikachu。
测试漏洞:垂直越权漏洞。
使用工具:HTTP抓包测试工具。
测试流程
本文中主要讲述如何在“历史记录”中使用身份切换来测试靶场是否存在越权漏洞,测试流程如下:
1.获取不同权限的用户:首先,在系统中创建两个用户,分别是普通权限的用户A和管理员用户admin。用户A具有普通用户的权限,而管理员用户admin则拥有执行特定管理操作的权限。
2.登录并记录身份信息:使用用户A和管理员用户admin分别登录系统,并记录下各自登录后的身份信息,包括cookie、JWT等用户标识,以及角色或权限等。
3.执行管理员操作:以管理员用户admin的身份登录后,执行一些只有管理员权限才能执行的特定增、删、改、查操作,本文中使用管理员权限创建用户“test”。
4.测试去除 cookie 重放是否存在越权:在历史记录中找到管理员用户 admin 创建用户“test”的数据包,使用“去除 cookie 的方法”直接发送该数据包,查看是否能够成功创建用户,如果成功则存在越权漏洞。
5.测试切换身份重放是否存在越权:在历史记录中找到管理员用户 admin 创建用户“test”的数据包,然后使用普通用户身份发送此数据包后,查看是否能够成功创建用户,如果成功则存在越权漏洞。
6.验证操作结果:验证使用用户A的cookie替换后执行的管理员操作是否生效。如果操作生效,那么说明普通用户A能够执行原本只有管理员才能执行的操作,证明了垂直越权漏洞的存在。
步骤 1 和 2 的配置过程不做详细描述,详细描述可以参考上一篇文章“身份切换测试模块使用”。
获取不同权限的用户
此处已经注册两个权限不同的用户,普通用户“pikachu”和管理员用户“admin”。普通用户只有拥有查看用户列表的权限,管理员用户可以对用户进行添加和删除。
登录并记录身份信息
通过配置已经记录登录身份信息,并且对用户进行了保活设置。
不同权限的身份访问页面
在 HTTP抓包测试工具,在身份切换中选择使用普通用户“pikachu”,打开右上角内置浏览器:
在内置浏览器中直接访问普通用户的后台,在“历史记录”中可以查看到访问的用户会话身份为“pikachu”,页面为普通用户登录页面:
回到“请求拦截”页面,切换用户身份为“admin”。
在内置浏览器中直接访问管理员用户的后台,在“历史记录”中可以查看到访问的用户会话身份为“admin”,页面为管理员用户登录页面:
根据页面显示可以分析出,管理员用户的权限高于普通用户,接下来先使用管理员身份创建用户,之后再历史记录中直接使用普通用户的身份创建用户,查看是否存在越权漏洞。
身份重放测试越权
当前身份会话属于“admin”账号权限,该账号拥有对普通用户的“添加、删除”功能,点击添加用户,会跳转到一个新页面,在该页面中填入需要添加用户的必要信息:
点击创建按钮后,回到管理员后台界面查看是否成功:
成功创建新建用户“test”,回到 HTTP抓包测试工具中查看“历史记录”,其中最上面的两条记录分别对应的是管理员页面和创建用户页面,大多数数据包的判断的方法为:根据命名规则、查看数据包具体信息以及在浏览器中访问页面时候 url 的地址。
查看请求路径为“/pikachu/vul/overpermission/op2/op2_admin_edit.php”的数据包,内容如下:
接下来分别使用去除 cookies 重放和切换身份重放测试是否存在越权漏洞:
测试去除 cookies 重放是否存在越权:
使用“去除 cookies ”直接重放,查看是否能不用 cookies 直接创建用户,操作流程为:
找到该数据包,单击右键 -->“重放该请求数据”-->“去除 cookies 重放”。如下图:
历史记录中,最上面会有一条成功的记录,该记录的会话身份为空:
点击该数据包查看原始请求数据和修改后的请求数据,对比后发现原始请求数据中含有 “Cookie”,但是修改后的请求数据并没有“Cookie”,使用“去除 cookies ”重放数据包成功:
回到浏览器中,刷新当前页面,发现成功创建了新用户“test”。
至此成功测试出不需要使用管理员的 cookies 也能成功创建用户,说明存在越权漏洞。
测试切换身份重放是否存在越权:
使用普通用户“pikachu”身份重放此数据包,查看是否能用低权限用户创建用户,操作流程为:
找到该数据包,单击右键-->“以指定身份重放数据包”-->“pikachu”。如下图:
历史记录中,最上面会有一条成功的记录,该记录的会话身份是“pikachu”:
回到浏览器中,刷新当前页面,发现成功创建了新用户“test”。
至此成功测试出使用低权限用户的 cookies 也能成功创建用户,说明存在越权漏洞。
HTTP抓包测试工具中“历史记录”的身份切换测试模块基础的使用方法和流程已经介绍完毕。
本次更新可帮助解决如下问题:
解决了在抓包中切换身份的问题:部分测试场景面临多个数据包很难判断当前抓取数据包是否是需要修改的数据包。
解决了在数据重放频繁切换历史记录:部分测试场景中,当测试的数据包为多个的时候,需要反复的切换数据包才能完成测试。
解决了账号手动删除 cookies 的问题:部分测试场景中,需要手动删除 cookies 来测试是否能够执行成功操作,频繁的删除数据不仅仅降低了工作效率,还容易导致数据包格式错误导致失败。
注意:工具使用内容请以最新版本为主。
下载和反馈
TangGo社区版本下载:
· https://tanggo.nosugar.tech/
反馈问题:
· https://tanggo.nosugar.tech/#/feedback
· 通过微信交流群反馈:关注【无糖反网络犯罪研究中心】公众号,回复“TangGo”,加入交流群进行反馈。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论