条件竞争漏洞(并发漏洞)原理以及修复方法

发布时间:2024年01月15日

漏洞名称 :并发漏洞

漏洞描述:并发漏洞,常属于逻辑业务中的漏洞类型,例如攻击者通过并发http/tcp请求而达到多次获奖、多次收获、多次获赠等非正常逻辑所能触发的效果。下面以简化的例子说明
在交易的Web应用程序中潜在的并行问题,并涉及联合储蓄帐户中的两个用户(线程)都登录到同一帐户试图转账的情况:
帐户A有100存款,帐户B有100存款。用户1和用户2都希望从帐户A转10分到帐户B.
如果是正确的交易的结果应该是:帐户A 80分,帐户B 120分。
然而由于并发性的问题,可以得到下面的结果:
用户1检查帐户A ( = 100 分)
用户2检查帐户A ( = 100 分)
用户2需要从帐户A 拿取10 分( = 90 分) ,并把它放在帐户B ( = 110 分)
用户1需要从帐户A 拿取10分(仍然认为含有100 个分)( = 90 分) ,并把它放到
B( = 120 分)
结果:帐户A 90 分,帐户B 120 分。

检测条件

1、 Web业务运行正常
2、 Web业务存在逻辑上的并发漏洞。

检测方法

1、 发送并发http/tcp请求,查看并发前后CGI 功能是否正常。例如:并发前先统计
好数据,并发后再统计数据,检查2次数据是否合理。

修复方案

对数据库操作加锁。

文章来源:https://blog.csdn.net/CHENSMALLYUN/article/details/135599815
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。