Sp_password
到一個Transact-SQL語句中,這個審計機制記錄日志如下:
--'sp_password' was found in the text of this event.
-- The text has been replaced with this comment for security reasons.
這種行為發生在所有的T-SQL日記記錄中,即使'sp_password'發生在一個注釋中。這個過程打算通過sp_password隱藏用戶的密碼,但這對于一個攻擊者來說是非常有用的方法。
因此,為了隱藏所有注入,攻擊者需要簡單地在'—'注釋字符后追加sp_password,例如:
Username:admin'—sp_password
事實上一些被執行的SQL將被記錄,但是查詢本身將順利地從日志中消失。
[防范]
這部分討論針對記述的攻擊的一些防范。我們將討論輸入確認和提供一些簡單的代碼,然后我們將從事SQL SERVER鎖定。
[輸入驗證]
輸入驗證是一個復雜的題目。比較有代表性的是,自從過于嚴密地確認傾向于引起部分應用程序的暫停,輸入確認問題很難被解決,在項目開發中投入很少的注意力在輸入確認上。輸入確認不是傾向于將它加入到應用程序的功能當中,因此它一般會被忽視。
下面是一個含有簡單代碼的討論輸入確認的大綱。這個簡單的代碼不能直接用于應用程序中,但是它十分清晰地闡明了不同的策略。
不同的數據確認方法可以按以下分類:
1) 努力修改數據使它成為正確的
2) 拒絕被認為是錯誤的輸入
3) 只接收被認為是正確的輸入
第一種情況有一些概念上的問題;首先,開發人員沒必要知道那些是錯誤數據,因為新的錯誤數據的形式始終被發現。其次,修改數據會引起上面描述過的數據的長度問題。最后,二次使用的問題包括系統中已經存在數據的重新使用。
第二種情況也存在第一種情況中的問題;已知的錯誤輸入隨著攻擊技術的發展變化。
第三種情況可能是三種中最好的,但是很難實現。
文章來源于領測軟件測試網 http://www.kjueaiud.com/