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