SINE安全在對某客戶的網站進行網站漏洞檢測與修復發現該網站存在嚴重的sql注入漏洞以及上傳webshell網站木馬文件漏洞,該網站使用的是某CMS系統,採用PHP語言開發,mysql數據庫的架構,該網站原始碼目前是開源的狀態。
某CMS是專注於提供付費知識的社交CMS系統,知識付費在目前的網路中有這很高的需求,該系統可以對文件進行分享,收費下載,用戶發布的知識內容可以隱藏,提供給付費客戶閱讀。程式碼比較精簡深受廣大站長們的喜歡,該網站漏洞主要發生在上傳壓縮包的同時,構造惡意解壓代碼講zip包裡的webshell解壓到指定目錄,導致漏洞發生。 CMS還存在sql注入漏洞,我們一一的來詳細分解漏洞。
SQL注入漏洞詳情與修復方案
對網站的程式碼資料庫設定檔進行查看,看到資料庫的連接函數使用的是pdo模式,再仔細的追蹤程式碼查看到也使用了一些特殊符號的轉義操作,有些sql注入程式碼並沒有對齊進行全面的安全過濾,導致發生sql注入攻擊,程式碼截圖如下:
以上程式碼使用就是select查詢功能,我們著重的來看下他的cond函數,透過對程式碼的詳細查看確定這個函數是用來對接前端的用戶寫入的值,當前端用戶提交惡意的程式碼的時候就會傳入到id這個值當中,我們來拼接SQL語句,對id的值進行變數覆蓋操作,可以配合IN,like等sql語句來進行攻擊資料庫,查看資料庫的帳號密碼,以及修改資料庫。
為修復 SQL 注入漏洞,需要在 GET 請求和 POST 請求中過濾非法字元的輸入。 '分號過濾 --過濾 特殊字元過濾,單引號過濾,%百分號,and過濾,tab鍵值等的安全過濾。啟用php魔術,防止一些非法參數進行傳輸以及構造。
網站上傳webshell漏洞
網站是公開免費註冊用戶的,也算是普通的用戶,在對其上傳功能進行全面的安全檢測的時候發現存在上傳zip壓縮包的漏洞,上傳doc等文件是需要審核,但是zip直接寫入到資料庫中,我們透過上面發現的sql注入漏洞對資料庫進行查看,可以看到zip的檔案位址。
如何上傳webshell,我們透過sql注入漏洞查詢到網站後台的管理員帳號密碼,登入網站後台,後台的各項功能都不存在漏洞,但是在查看原始碼當中發現有一段可以對zip檔案解壓縮的功能程式碼,無需使用用戶權限就可以進行解壓,那麼我們來構造參數直接對該解壓縮程式碼檔案進行訪問,post請求過去,直接將我們的zip檔案解壓到了在目前文件中,我們就可以將我們的webshell木馬上傳上去。
關於網站上傳漏洞的修復,建議管理員關閉掉解壓縮功能,或對其解壓縮的文件進行權限判斷,是管理員使用者有解壓縮功能,還是普通會員權限擁有解壓縮文件的權限,對權限進行合理的安全分配,再一個對上傳的目錄進行無腳本權限設置,防止webshell木馬後門的運行。如果您對網站漏洞修復不熟悉的話,建議找專業的網站安全公司幫您修復網站漏洞,國內也就Sinesafe和綠盟、啟明星辰等安全公司比較專業.
以上是網站漏洞修復之上傳webshell漏洞修補的範例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!