分享客戶網站被駭客攻擊,如何修復漏洞與防護?
做網站的安全防護,我們隨即對客戶網站進行了全面的滲透測試,包括了網站的漏洞檢測與代碼
安全測試,針對於發現的漏洞進行了修復,包括網站安全部署等等方面,下面我們將這一次的安
全應急處理過程分享給有需要的客戶。
首先客戶網站採用的架構是PHP語言開發,mysql資料庫,使用的是linux centos系統作為網站的
運行環境,代碼使用的是開源的某CMS系統,我們首先打包壓縮了一份網站原始程式碼到我們本地
的電腦,人工對其代碼進行全面的滲透測試與檢測,首先我們會從網站的安裝檔入手,我們查
看到使用的是install.php作為網站安裝的檔,一般這裡會存在網站漏洞,例如:沒有對其做安
全驗證,導致可以任意的安裝網站,覆蓋設定檔,甚至可能會出現表單裡不做安全過濾,導
致寫入webshell一句話木馬代碼到config.php文件裡。
經過我們ESAFE安全技術的人工代碼安全審計,發現客戶網站存在任意重裝網站漏洞,漏洞檔
:install.php,查看到使用的變數值為DEL_INSTALLER=1的時候才會刪除安裝檔,我們看到
預設值=0.也就是說不會刪除安裝檔,我們可以訪問該代碼,直接執行重裝操作。
繼續檢查代碼是否還存在其他的漏洞,在檢查到設定檔config.php代碼中,有調用到cookies方
面的賦值,繼續追蹤分析發現存在越權漏洞,管理員登錄網站後,會保存cookies,但是這個coo
kies的構建很簡單,是使用了emhash的方式,對傳入的key值進行了MD5加密操作,最終cookies
的構成是由帳號名以及HASH值拼接構成的,那我們就可以偽造cookies,直接越權操作其他管理
員帳號,甚至可以以普通用戶的許可權,去操作網站管理員的許可權。
我們ESAFE安全工程師對後臺代碼進行安全審計的時候發現,存在上傳漏洞,可以上傳php檔,
後臺有個設置上傳尾碼名的功能,但是默認網站對添加PHP的尾碼名做了過濾,會將PHP稀釋掉
,以及不允許,那麼我們在實際的滲透測試中如何繞過呢?看到後臺有資料庫備份恢復的功能,
那麼我就可以將資料庫裡的尾碼名改為php,再直接恢復到網站中去,直接上傳PHP腳本後門也
叫webshell到網站裡去。
至此客戶網站的所有滲透測試以及漏洞檢測已完畢,共發現3處漏洞,1個是install.php安裝重置
漏洞,1個是越權漏洞,1個是檔上傳漏洞,針對以上3個漏洞,我們ESAFE安全對其做了漏洞修
複,對install的變數值進行了判斷,當網站安裝後,自動刪除install.php檔,對越權做了用戶的
所屬許可權判斷,如果不是當前使用者的cookies直接返回錯誤狀態,對後臺的資料庫備份功能做限
制,只能備份,不能恢復,恢復操作使用phpmyadmin來進行網站的資料恢復,如果您對網站的
安全不是太懂的話,建議找專業的網站安全公司來處理解決,做好網站安全,才能保障用戶的
每一次訪問。