开展建设文明网站活动方案,跨境建站服务公司,佛山网站建设a068,免费建博客网站【Java代码审计】逻辑漏洞篇 逻辑漏洞概述常见逻辑漏洞点 逻辑漏洞概述
逻辑漏洞一般是由于源程序自身逻辑存在缺陷#xff0c;导致攻击者可以对逻辑缺陷进行深层次的利用。逻辑漏洞出现较为频繁的地方一般是登录验证逻辑、验证码校验逻辑、密码找回逻辑、权限校验逻辑以及支… 【Java代码审计】逻辑漏洞篇 逻辑漏洞概述常见逻辑漏洞点 逻辑漏洞概述
逻辑漏洞一般是由于源程序自身逻辑存在缺陷导致攻击者可以对逻辑缺陷进行深层次的利用。逻辑漏洞出现较为频繁的地方一般是登录验证逻辑、验证码校验逻辑、密码找回逻辑、权限校验逻辑以及支付逻辑等常见的业务逻辑
与普通的 Web 漏洞相比逻辑漏洞的不同点在于其源代码本身可能并不存在漏洞简单来说就是像一些零部件这些零部件的做工都是没问题的但是组装起来时可能会因为忽略了某些临界条件或环境而出现问题。逻辑漏洞也是如此在一个完整的逻辑控制链中每一个链的逻辑可能都没有问题但是当串到一起时可能导致逻辑存在缺陷进而出现逻辑漏洞
常见逻辑漏洞点
用户验证模块
1、“用户名不存在”利用这个反馈信息来爆破获取用户名
2、若有攻击者针对大量用户进行密码爆破则可能导致大量用户在短时间内无法登录自己的账号从而影响业务。旧版本的腾讯 QQ 曾采用该机制密码输错多次后会在 24h 内禁止登录有不少恶意攻击者故意输错其他用户的密码从而达到封禁他人 QQ账号的目的
3、登录时的验证码不变验证码没有一个完整的服务请求只有当用户刷新 URL 时才改变拦截登录时验证码的刷新请求可以使第一次验证码不会失效从而绕过验证码的限制
4、一些使用短信验证码登录的站点当验证短信验证码时返回 state 的成功值是 success失败值是 false然后客户端根据 state 的值来确定下一步的动作。这样我们可以通过修改响应包绕过短信验证
5、有的时候在短信验证码处随便输入验证数字会返回验证码错误但是当我们将验证码置空提交请求时服务端却不校验从而通过置空绕过登录验证
6、验证码有效时间过长导致不失效可被爆破
7、验证码找回界面未作校验导致可以跳步找回即直接访问密码修改界面页面
8、未对找回密码的每一步做限制如找回需要 3 个步骤第一步确认要找回的账号第二步做验证第三步修改密码。在第三步修改密码时存在账号参数因此可以尝试修改其他用户账号达到修改任意账户密码的目的
9、有些密码找回时未做验证码功能因而可能导致账号枚举
支付模块
10、未对价格进行二次验证导致攻击者可以抓包修改价格参数后提交实现修改商品价格的逻辑漏洞
11、存在两个订单一个订单 1 元另一个订单 1000 元对于 1 元订单进行支付支付后返回时存在 token将这个 token 保存然后再将订单号替换成贵的订单这样就可能完成两个订单的同时支付
12、没有对购买数量进行负数限制这样就会导致有一个负数的需支付金额若支付成功则可能购买了一个负数数量的产品也有可能返还相应的积分/金币到用户的账户上
13、请求重放当支付成功时重放其中请求可能导致本来购买的一件商品数量变成重放请求的次数但价格只是支付一件商品的价格更甚者多次下订单会出现0 元订单情况