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