滲透測試網站sql注入攻擊與防護

網站安全發表於2020-11-25

幾年前,SQL隱碼攻擊在世界範圍內很流行,但現在,SQL隱碼攻擊仍然是最流行的攻擊方法之一,開發人員為此頭疼。當然主要是因為注入攻擊的靈活性,一個目的,多條語句,多種編寫方法。SQL隱碼攻擊可以分為工具和手工兩種。由於自動化,工具通常比手動注入效率高得多,但與手動注入相比,它們受到限制,因為它們沒有針對性。

滲透測試網站sql注入攻擊與防護

所有的輸入都可能是有害的,有引數的地方都可能存在SQL隱碼攻擊。但是由於瀏覽器的限制,http頭中的一些隱藏連結、API呼叫和引數往往被忽略。那麼如何進行全面的SQL隱碼攻擊挖掘呢?在滲透測試中,無論注入工具多麼強大,都會有侷限性,手動注入可以解決這個弱點。當然,手動注入需要滲透者對資料庫的語法有一定的瞭解。但是由於SQL隱碼攻擊的靈活性和多樣性,如果詳細討論的話,恐怕可以寫成單本書了。在這裡,作者將選擇最具代表性的例子進行論證。

滲透測試網站sql注入攻擊與防護

注入遇到的一個常見情況是注入得到的加密密文無法求解。為了解決這個問題,這裡解釋幾種可行的方法。(1)使用國外的搜尋引擎,往往會有意想不到的收穫,最常見的是Google。(2)用Whois查出管理員郵箱,然後發郵件通知管理員更改密碼。郵件內容無非是“我們是XXX檢測中心,你的網站有風險。請立即更改管理員密碼……”。(3)分析Cookie。有時加密的密文會出現在cookies中。這種情況下,cookies中的密文可以直接被管理員的密文替換。(4)在特定的注入環境中,原始密文有時可以被新密文替換。當然這種方法的執行條件比較苛刻,實踐中很少遇到。(5)使用密碼檢索功能。使用祕密安全問題來檢索密碼是很常見的。在這種情況下,可以注入祕密安全問題的答案,然後使用密碼檢索功能成功登入目標帳戶。(6)邏輯缺陷。比如一些登入功能、修改功能、密碼檢索功能等都是以密文的形式直接在資料包中傳輸的。這時可以用密文代替,這樣就可以登入並更改密碼了。

滲透測試網站sql注入攻擊與防護

如何防護SQL隱碼攻擊呢?

1.對程式碼進行過濾非法符號如</?&>之類的,對一些指令碼標籤scrpt以及img或frame都進行過濾和替換。

2.對一些函式變數直接進行強制定義,比如金額函式這裡直接限定只能寫入正整數型別的數值,那麼其他的引數像姓名的話可以直接限定到只允許寫入中文和英文的數值,其他的以此類推。

3.對一些帶入資料庫查詢和更新的語句,一定要看看get或post過來的資料引數是否是直接把引數型別鎖定好了的,防止被注入惡意語句導致被攻擊。

4.如果對著程式碼方面的問題不懂得話可以到網站安全公司去尋求幫助,國內如SINESAFE,鷹盾安全,綠盟,啟明星辰等等。


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

相關文章