Burp SuiteのTurbo intruderを使用してrace conditionを調査する方法。
-
BApp StoreからTurbo Intruderを入れる
-
大量に送信したいリクエストを1つキャプチャする
-
Proxy > HTTP historyから当該リクエストを右クリック → Send to turbo intruder
-
下記スクリプトを入力 (https://github.com/PortSwigger/turbo-intruder/blob/master/resources/examples/race.py をベースに微修正)
# script for testing race condition def queueRequests(target, wordlists): engine = RequestEngine(endpoint=target.endpoint, concurrentConnections=30, requestsPerConnection=100, pipeline=False ) for i in range(30): engine.queue(target.req, i, gate='race1') engine.openGate('race1') engine.complete(timeout=60) def handleResponse(req, interesting): table.add(req)
-
リクエストのどこかに
%s
を入れる (X-Intruder: %s
ヘッダ追加など) -
Attackボタンをクリック、またはCommand-Enter (Mac)