sqlmap的界面
“他們會使用Google來搜索那些典型的容易受到SQL注入腳本攻擊的URL”, AI-Bassam說。“他們還經常使用腳本來檢查所有URL,用自動化的方法來試探是否存在漏洞”
“你甚至可以教一個4歲的孩子來做這種事情[譯者注:汗~~我還不如個4歲的孩子]”, AI-Bassam補充道,強調這整個過程簡單到令人發指的地步。確實,Hunt就曾經上傳過一個視頻,視頻上顯示他是怎么教他3歲的兒子用Havij來實施SQL注入攻擊的[譯者注:這是真愛啊,我堅決不會讓我女兒走上計算機這條不歸路]
“你把要攻擊的URL輸入進來,然后所有數據就出來了”,Hunt向Motherboard介紹道。在YouTube上有太多教程來介紹如何實施SQL注入攻擊了。
事實上,已經有很多解決方案被網站開發人員用來防止SQL注入攻擊了和避免客戶信息或者公司信息泄漏了。而且那些解決方案一經存在好幾年了。
所有這些解決方案的核心都是采用“prepared statments” (預編譯聲明?): 當SQL語句在數據庫中執行是,絕對不能直接執行用戶的輸入。
如果這些解決方案直接有效,那為何SQL注入攻擊還是這么猖獗呢?
“使用prepared staement的好處是它們可以從語義層面上杜絕任何在開發者意料之外的輸入,這些輸入可以通過構造一些SQL語法,讓數據庫查詢語句從任意一張數據表中獲取一條額外的數據”,Mike Schema在給Motherboard的一封email中如此說導,他是雅虎的一名高級經理、軟件工程師。
另外一種做法是“使用SQL庫對用戶輸入做一些凈化操作”,AI-Bassam建議。簡而言之,就是將輸入中任何潛在的惡意部分去除掉。
那么,如果SQL注入如此簡單,以至于小孩子都能用,而且解決方案又這么直接有效,為什么SQL注入攻擊還這么猖獗呢?
“任何一名嚴謹的程序員都應該知道SQL注入攻擊,但是仍然有大量的程序員缺乏經驗,所以公司在雇傭某人的是偶,他可能沒有受到過任何關于如何消除風險的訓練”, AI-Bassam指出。除此之外,“他們的經理們往往只要求開發出能用的軟件,而不是安全的軟件”。
來自雅虎的Schema也認同這一點,并且補充“有些時候,一些小應用功能有限,要求很快就把東西做出來”,導致開發者經常忽略一些應對各種攻擊的工作,盡管他們實施起來也不是很困難。
Hunt不是那么寬容,他也不認同所有的過錯都來自于高層管理的壓力。相反,他認為現在有網上有這么多教程詳細的向開發人員講解如何避免SQL注入攻擊,對,是詳細的教程,不僅僅是一些好的建議。“這些年,我看到很多有關如何避免明顯的SQL注入風險的教程”,他說到。
隨著互聯網黑客們不停的在YouTube上分享他們的SQL注入攻擊經驗,網站的開發者們也沒有閑著。“我們有能力的人站出來,分享他們的專業知識,而不僅僅是把自己的事情做好就行了”,Hunt說。
最后,這些網站的安全和他們的數據安全歸根到底還是網站開發者自己負責的。這意味著SQL注入攻擊和漏洞還會存在,至少在未來一段時間內不會消失。[譯者注:估計原作者的意思是安全還是由開發者自己負責,不在于黑客不去攻擊,自己開發的時候不注意,還是沒辦法避免被攻破的~~]
原文轉自:http://www.testwo.com/article/630