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