《CTF特训营》web部分读书笔记(六)条件竞争

前言

继续阅读《CTF特训营》web部分
本节是条件竞争

1、简介

条件竞争(Race Condition)

  • 多个线程或进程在读写一个共享数据时
  • 由于没有锁或同步互斥管理
  • 导致输出不一致的问题

2、问题分析与测试

一般代码逻辑引发的条件竞争

例子
《CTF特训营》web部分读书笔记(六)条件竞争_第1张图片
多用户访问时可能出现情况如下
《CTF特训营》web部分读书笔记(六)条件竞争_第2张图片
测试方法

  • 用burp的intruder模块
  • 截取数据包后,设置访问次数payloads为1000,并发线程数80,看结果

数据库查询语句未加锁

《CTF特训营》web部分读书笔记(六)条件竞争_第3张图片

select加锁的方式

select ... lock in share mode //共享锁
select ... for update //排它锁

结语

条件竞争这个漏洞比较少见
学到了

你可能感兴趣的:(ctf)