網站漏洞檢測 wordpress sql注入漏洞程式碼審計與修復

網站安全發表於2019-09-16

wordpress系統本身程式碼,很少出現sql注入漏洞,反倒是第三方的外掛出現太多太多的漏洞,我們SINE安全發現,僅僅2019年9月份就出現8個外掛漏洞,因為第三方開發的外掛,技術都參差不齊,對安全方面也不是太懂導致寫程式碼過程中沒有對sql注入,以及xss跨站進行前端安全過濾,才導致發生sql注入漏洞。

網站漏洞檢測 wordpress sql注入漏洞程式碼審計與修復

目前發現的wordpress漏洞外掛,AdRotate廣告外掛,NextGEN Gallery圖片管理外掛,Give讚賞外掛,這些外掛使用的網站數量較多,因為開源,免費,功能強大,使用簡單,深受眾多站長們的喜歡,關於該網站漏洞的詳情我們SINE安全來詳細的給大家分析一下:看下圖的程式碼

網站漏洞檢測 wordpress sql注入漏洞程式碼審計與修復

在前端進行輸入的時候,可以插入惡意的sql注入程式碼,如果後端沒有對前端輸入進來的引數值進行安全過濾攔截,那麼就會導致sql注入漏洞的發生,我們來看上面的一段程式碼。該程式碼在寫的時候,會將get中的ID,傳入後資料庫中進行查詢,沒有做任何的安全過濾導致sql注入,在wordpress最新版中以及將get、post、cookies、提交的方式進行了安全攔截,對一些非法的字元與sql注入攻擊語句加強過濾,但是還是被繞過,導致sql注入的發生,就拿adrotate外掛來說,在dashboard目錄下的publisher資料夾下的adverts-edit.php程式碼中第46行:

網站漏洞檢測 wordpress sql注入漏洞程式碼審計與修復

對前端來的get_ad變數只是做了簡單的html字元轉換操作,並沒有實質性的對sql語句進行攔截,導致可以執行SQL隱碼攻擊程式碼,獲取管理員賬戶密碼。截圖如下:

網站漏洞檢測 wordpress sql注入漏洞程式碼審計與修復

give外掛,也存在漏洞,漏洞產生的原因是includes目錄下的donors資料夾裡的class-give-donors-query.php程式碼,在獲取訂單的函式中,沒有對其order by字元進行攔截,導致sql程式碼可以到後端進行查詢資料庫,導致sql盲注。程式碼如下:

網站漏洞檢測 wordpress sql注入漏洞程式碼審計與修復

網站漏洞檢測 wordpress sql注入漏洞程式碼審計與修復

關於wordpress漏洞修復辦法,建議外掛的開發公司在對程式碼編寫過程中,對使用者的輸入,以及提交,get,post等請求進行全面的安全過濾與安全效驗,及時的更新wordpress的版本以及外掛版本升級,定期對網站程式碼進行安全檢測,檢查是否存在網站木馬後門,以及webshell檔案,對外掛目錄可以設定安全許可權部署,防止惡意篡改,對wordpress的後臺登入做安全驗證,僅僅使用賬戶密碼還不行,還要使用另外一種方式進行驗證,簡訊驗證以及google身份驗證器。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31542418/viewspace-2657070/,如需轉載,請註明出處,否則將追究法律責任。

相關文章