逻辑漏洞(一):从修改返回包绕过登录校验到未授权获取数据

1 概述

由于对登录的账号及口令校验存在逻辑缺陷,或再次使用服务器端返回的相关参数作为最终登录凭证,导致可绕过登录限制,如服务器返回一个flag参数作为登录是否成功的标准,但是由于代码最后登录是否成功是通过获取这个flag参数来作为最终的验证,导致攻击者通过修改flag参数即可绕过登录的限制!

有的通过修改返回包是可以正常登录其账号的。比如使用admin账号进行登录,修改返回包后可以正常登录到系统,正常使用系统功能的。这次遇到的是修改返回包绕过登录校验后,可以查看到相关功能,但并没权限查看到相关数据,后面通过分析数据包字段内容并进行修改后才获取到数据。

思路:通过修改返回包的状态码可以看到系统功能,更改数据包的参数值达到未授权获取数据。

2 详情

系统登录界面如下,明显的是双因素认证,使用用户名密码加手机验证码进行登录。

用户名密码和验证码随意输入,截取返回包。

正常的返回包内容,告知用户名或密码不正确。

修改返回包code值为0,然后前端可以看到功能。

虽然说可以使用功能,但并不是一个真正的成功登录进去的,所以什么数据都没有。然后通过分析数据包,看到有一个如下数据包,然后进行猜测分析。后端会对staffNumber和openid进行校验,由于这两个字段的内容并未在数据库中,所以无法查询到数据。经过尝试,把这两个字段内容值置为空,可以获取到数据。

参数值置空,可以获取到数据。这里还有个小漏洞,系统只允许查看最近一个月的数据,但通过修改数据包里的时间可以突破其限制,查看任意时间段的数据。

posted @ 2022-08-09 20:45  NoId1  阅读(2779)  评论(0编辑  收藏  举报