参考文献:https://blog.csdn.net/u011377996/article/details/79511160
条件竞争漏洞:
一种服务器端的漏洞,是由于开发者设计应用程序并发处理时操作逻辑不合理而造成。当应用面临高并发的请求时未能同步好所有请求,导致请求与请求之间产生等待时出现逻辑缺陷。该漏洞一般出现在与数据库系统频繁交互的位置,例如金额同步、支付等较敏感操作处,也会出现在文件的操作的地方。
一个栗子
cumt平台上的 上传三
- 打开是个上传界面,先上传一张图片,得到路径以及提示需要可执行文件
- 直接上传php文件前端验证都不能过,抓包修改后缀名为
php
,又得到下个提示 - 尝试php1,php2直到
phtml
说这个被安全软件给杀死了。这里应该就是用到条件竞争了,应该就是指文件上传成功之后又被删除了,若是一直访问,服务器来不及删除就已经解析应该就可以了拿到最后一个flag了。 - 用burp上传
phtml
文件,再写脚本访问上传的文件
为了避免出现竞争条件,进入临界区要遵循:
- 任何两个进程不能同时进入访问同一临界资源的临界区
- 进程的个数,CPU个数性能等都是无序的,随机的
- 临界区之外的进程不得阻塞其他进程进入临界区
- 任何进程都不应被长期阻塞在临界区之外