业务逻辑漏洞

业务逻辑漏洞

1.任意口令重置

(1)验证码不失效
漏洞原因:验证码未设置时效限制,仅判断验证码是否正确,未判断验证码是否已失效。
漏洞测试:枚举爆破,找到正确验证码。

(2)验证码直接返回
漏洞原因:客户端生成验证码,服务器响应包返回了正确的验证码与客户端验证码进行比对。
漏洞测试:本机走流程,拦截响应包返回的验证码,拿到正确验证码进行重置。

(3)验证码未绑定用户
漏洞原因:仅判断了验证码是否正确,未判断验证码是否与手机号相匹配。
漏洞测试:使用本机获取的验证码,拦截提交请求,修改目标手机号。

(4)修改接收的收集或邮箱
漏洞原因:仅判断了手机与验证码是否匹配,未判断手机与用户是否匹配。
漏洞测试:使用本机获取的验证码,拦截提交请求,修改目标用户名。

(5)本地验证绕过
漏洞原因:验证码校验在客户端生成判断结果发送给服务器,判断结果可被修改。
漏洞测试:通过拦截修改返回包的判断结果,然后发包。


(6)跳过验证步骤
漏洞原因:对整个验证步骤没有校验是否成功通过验证,导致可绕过验证步骤,直接跳转到重置密码界面。
漏洞测试:本机走流程,获取每个步骤地址链接,在重置时,获取验证码后直接跳转至重置密码界面,补齐链接参数


(7)未校验用户字段的值
漏洞原因:仅判断了手机号与验证码是否匹配,未校验最后提交重置密码时手机号是否与手机验证的对应。
漏洞测试:通过本机手机验证,拦截重置密码提交,修改目标手机号


(8)修改密码处id可替换
漏洞原因:未判断id跟用户名是否匹配,也未判断id跟用户原密码是否匹配。
漏洞测试:拦截提交,修改目标id。


(9)cookies值得替换
漏洞原因:未验证该cookie值是否与验证过程的cookie是否匹配,仅验证了cookie是否存在或正确。
漏洞测试:本机走流程,获取Cookie,通过拦截包修改目标用户,替换刚获取的cookie,发包。


(10)修改信息时替换字段值
漏洞原因:用户修改信息通过隐藏参数例如loginid来执行,通过修改loginid来修改他人信息。
漏洞测试:抓包,添加隐藏参数信息,参数修改为目标用户,发包。