條件競爭漏洞是一種服務器端的漏洞,由于服務器端在處理不同用戶的請求時是并發(fā)進行的,因此如果并發(fā)處理不當或相關操作邏輯順序設計的不合理時,將會導致此類問題的發(fā)生。
舉個例子,很多web程序都會有上傳文件的功能,頭像和圖像等,服務器肯定會檢查文件是否滿足條件,不滿足的要被刪除。
那么問題就在于,如果我們采用大量的并發(fā)請求,就傳遞一個生成惡意webshell 的圖像,訪問它就可以生成webshell。在上傳完成和安全檢查完成并刪除它的間隙,攻擊者通過不斷地發(fā)起訪問請求的方法訪問了該文件,該文件就會被執(zhí)行,并且在服務器上生成一個惡意shell 的文件。
至此該文件的任務就已全部完成.至于后面發(fā)現(xiàn)它是一個不安全的文件并把它刪除的問題都已經(jīng)不重要了,因為攻擊者已經(jīng)成功地在服務器中植入了一個shell文件,后續(xù)的一切就都不是問題了。