案例:一個網站遭遇入侵,破壞相當嚴重,SQL數據庫被掛馬,所有的表裡面大部分字段都被多次重復插入掛馬代碼,查看日志,還好沒有涉及到服務器的安全,只是數據庫那裡出現了很多異常警告而已,網站確實存在漏洞
沒有辦法,我只得修復數據庫,因為他們沒有數據庫備份,根本就沒有辦法還原數據庫啊,何況連事務日志都沒有開啟,試著恢復了幾次都不成功,恢復數據庫沒有一點希望,我只得乖乖的幫他們清理掛馬代碼,不可能手工刪除掛馬代碼,畢竟數據太大了,不可能去直接修改,通過四處搜尋得到了一個勉強有效的解決辦法,每個表裡面去執行一下這個sql語句:
update tablename set @ziduanming =replace(cast(@ziduanming as varchar(8000)),'',null)
上面的sql語句可以對應修改表,字段名,和替換內容。
其實,sql數據庫掛馬是一種較新的掛馬方法,只要網站存在注入,並且連接數據庫是 db owner權限就可以進行數據庫掛馬,估計這次攻擊的流程應該是自動化的,通過先進的掃描技術批量收集到幾萬網站的SQL注入漏洞,針對漏洞攻擊,進行自動化的SQL注入掛馬。這次應該有很多網站遭殃了,asp+mssql的是主要被攻擊對象!
SQL Server數據庫掛馬的解決辦法:
正確清理木馬,注意數據庫不能隨便修改或刪除,被掛上馬後,更需要謹慎的操作。建議,先備份然後再小心清理。
如果以前沒有備份的話,就利用我上面的sql命令進行修復,
如何預防SQL數據庫掛馬:
1、清理網站上所有注入點。
2、為網站配置可靠的防注入程序。
3、最好在網站源碼中做好過濾,在數據庫中限制字符的類型和長度。
4、養成經常備份數據庫的習慣。大家可能無法保證天天備份數據庫,但也會保證每周備份一次,如果有時間保證天天備份數據庫。
5、最好是請專業的網站安全公司,對您的站和服務器做徹底的安全評估。