1、漏洞描述:
竞争/并发漏洞,常属于逻辑业务中的漏洞类型,例如攻击者通过并发http/tcp请求而达到多次获奖、多次收获、多次获赠等非正常逻辑所能触发的效果。下面以简化的例子说明在交易的Web应用程序中潜在的并行问题,并涉及联合储蓄帐户中的两个用户(线程)都登录到同一帐户试图转账的情况:
1.帐户A有100存款,帐户B有100存款。用户1和用户2都希望从帐户A转10分到帐户B.
2.如果是正确的交易的结果应该是:帐户A 80分,帐户B 120分。
3.然而由于并发性的问题,可以得到下面的结果:
4.用户1检查帐户A ( = 100 分)
5.用户2检查帐户A ( = 100 分)
6.用户2需要从帐户A拿取10分(=90分),并把它放在帐户B (=110分)
7.用户1需要从帐户A拿取10分(仍然认为含有100个分)(=90分),并把它放到B(=120分)
8.结果:帐户A 90 分,帐户B 120 分。
2、检测方法
发送并发http/tcp请求,查看并发前后CGI功能是否正常。
例如:并发前先统计好数据,并发后再统计数据,检查2次数据是否合理。
3、修复方案
设置严格的流程操作控制和回滚机制,以及对数据库操作加锁。
附:短信轰炸问题
漏洞描述:
短信轰炸攻击时常见的一种攻击,攻击者通过网站页面中所提供的发送短信验证码的功能处,通过对其发送数据包的