wordpress系統(tǒng)本身代碼,很少出現(xiàn)sql注入漏洞,反倒是第三方的插件出現(xiàn)太多太多的漏洞,我們SINE安全發(fā)現(xiàn),僅僅2019年9月份就出現(xiàn)8個(gè)插件漏洞,因?yàn)榈谌介_發(fā)的插件,技術(shù)都參差不齊,對安全方面也不是太懂導(dǎo)致寫代碼過程中沒有對sql注入,以及xss跨站進(jìn)行前端安全過濾,才導(dǎo)致發(fā)生sql注入漏洞。
目前發(fā)現(xiàn)的wordpress漏洞插件,AdRotate廣告插件,NextGEN Gallery圖片管理插件,Give贊賞插件,這些插件使用的網(wǎng)站數(shù)量較多,因?yàn)殚_源,免費(fèi),功能強(qiáng)大,使用簡單,深受眾多站長們的喜歡,關(guān)于該網(wǎng)站漏洞的詳情我們SINE安全來詳細(xì)的給大家分析一下:看下圖的代碼
在前端進(jìn)行輸入的時(shí)候,可以插入惡意的sql注入代碼,如果后端沒有對前端輸入進(jìn)來的參數(shù)值進(jìn)行安全過濾攔截,那么就會(huì)導(dǎo)致sql注入漏洞的發(fā)生,我們來看上面的一段代碼。該代碼在寫的時(shí)候,會(huì)將get中的ID,傳入后數(shù)據(jù)庫中進(jìn)行查詢,沒有做任何的安全過濾導(dǎo)致sql注入,在wordpress最新版中以及將get、post、cookies、提交的方式進(jìn)行了安全攔截,對一些非法的字符與sql注入攻擊語句加強(qiáng)過濾,但是還是被繞過,導(dǎo)致sql注入的發(fā)生,就拿adrotate插件來說,在dashboard目錄下的publisher文件夾下的adverts-edit.php代碼中第46行:
對前端來的get_ad變量只是做了簡單的html字符轉(zhuǎn)換操作,并沒有實(shí)質(zhì)性的對sql語句進(jìn)行攔截,導(dǎo)致可以執(zhí)行SQL注入代碼,獲取管理員賬戶密碼。截圖如下:
give插件,也存在漏洞,漏洞產(chǎn)生的原因是includes目錄下的donors文件夾里的class-give-donors-query.php代碼,在獲取訂單的函數(shù)中,沒有對其order by字符進(jìn)行攔截,導(dǎo)致sql代碼可以到后端進(jìn)行查詢數(shù)據(jù)庫,導(dǎo)致sql盲注。代碼如下:
關(guān)于wordpress漏洞修復(fù)辦法,建議插件的開發(fā)公司在對代碼編寫過程中,對用戶的輸入,以及提交,get,post等請求進(jìn)行全面的安全過濾與安全效驗(yàn),及時(shí)的更新wordpress的版本以及插件版本升級,定期對網(wǎng)站代碼進(jìn)行安全檢測,檢查是否存在網(wǎng)站木馬后門,以及webshell文件,對插件目錄可以設(shè)置安全權(quán)限部署,防止惡意篡改,對wordpress的后臺登錄做安全驗(yàn)證,僅僅使用賬戶密碼還不行,還要使用另外一種方式進(jìn)行驗(yàn)證,短信驗(yàn)證以及google身份驗(yàn)證器。
我們專注高端建站,小程序開發(fā)、軟件系統(tǒng)定制開發(fā)、BUG修復(fù)、物聯(lián)網(wǎng)開發(fā)、各類API接口對接開發(fā)等。十余年開發(fā)經(jīng)驗(yàn),每一個(gè)項(xiàng)目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!