正在看的ORACLE教程是:Oracle也有注入漏洞。近期,MSN、江民等知名網站相繼受到了駭客的威脅和攻擊,一時間網路上風聲鶴唳。本報編輯部接到本文作者(熾天使)的電話,他詳細講述了發現國內最大網域名稱供應商(以下簡稱“X網”)網站漏洞的經過。本報編輯部立即和X網的首席工程師進行了交流,確認了漏洞的真實性,該工程師也及時修補了該漏洞。
發 現
10月18日,筆者手上的項目做完以後,便和網上的朋友天南海北地聊天。聽到朋友網站的開張,心裡也是非常的羨慕。
什麼時候我才能擁有自己的主機和網域名稱……想到申請主機和網域名稱,筆者自然想到了X網(在中國太有名嘛^_^)。順手開啟其首頁,突然看到了首頁右上方的會員登入介面,這讓筆者“賊”心又起——要是能發現什麼漏洞就好了,反正現在也沒什麼事情。
筆者拿出連接埠掃描工具掃了一下X網的伺服器,竟然什麼漏洞都沒有發現,真是鬱悶!轉念一想,畢竟X網也做了10多年了,這些大型網站伺服器的安全措施恐怕不會少——映射,外加IDS和防火牆,補丁肯定也早打全了,說不定還有蜜罐程式等著你呢!
過了不久,筆者突然發現了一個情況,X網原來是用ASP寫的。前段時間ASP+MSSQL的注入漏洞可是鬧得沸沸揚揚,不少網站都吃了苦頭。這裡會有這類問題嗎?不管了,先試一試再說。筆者隨手找了一個購買虛擬機器主機的頁面:http://www.???.cn/HAS_Client/buy/vir_host/vir_ host1_SB.asp?PackageID=10341。先用經典的方法來測試了一下,傳回型別均為不匹配: ‘CDbl'錯誤。X網用的什麼資料庫呢?筆者在參數後面加上一個單引號,再提交請求,頁面返回了一段報錯資訊。
原來用的是Oracle,一般Oracle資料庫出現這樣的返回錯誤,都可能存在漏洞的。這和MSSQL未閉合引號的返回錯誤差不多,不過MSSQL出現這樣的錯誤提示,我們幾乎可以肯定存在注入漏洞了,而Oracle則要再進一步確定。
確 認
以下幾步為入侵的基礎,非常重要。我們分別在IE中輸入:
http://www.???.cn/HAS_Client/buy/vir_ host/vir_host1_SB.asp?PackageID=10341‘and%200<>(select%20count(*)%20from%20all_tables)%20and%20'1‘='1;
http://www.???.cn/HAS_Client/buy/vir_ host/vir_host1_SB.asp?PackageID=10341‘and%200<>(select%20count(*)%20from%20user_tables)%20and%20'1‘='1;
http://www.???.cn/HAS_Client/buy/vir _host/vir_host1_SB.asp?PackageID=10341‘and%200<>(select%20count(*)%20 from%20user_tab_columns)%20and%20'1‘='1;
以上這些是筆者猜測的Oracle的系統資料表:all_tables,user_tables和user_tab_col umns。如果沒有,就沒戲了。
沒想到頁面全都返回成功,這說明筆者猜測的系統資料表都是存在的,同時也說明提交的SQL語句,程式已經做了處理。
至此,筆者確認X網存在注入漏洞。
利 用
資料庫可以說是一個網站的重中之重,通過筆者發現的這個漏洞,我們完全可以訪問並修改資料庫中的所有資料。不光是使用者帳號,對於所有存在資料庫中的資料,我們都可以擷取並修改。
在開放Public組的UTL_File許可權的情況下,其實還可以利用Union查詢、讀取伺服器上的檔案,這點和PHP+MYSQL注入漏洞中的load_file()有些相似,當然也可以執行Update之類的。只是在Oracle注入漏洞研究上,筆者還是個菜鳥,沒能實現插入資料和進行更進階的注入攻擊。在整個測試漏洞的過程中,由於利用了NBSI的後台掃描功能和WPE,大大提高了效率。
現在,筆者已經可以得到X網所有使用者的資訊,只要登入進去,就能輕易更改他們的網域名稱指向。如果筆者是一個惡意攻擊者,只要把某個商業網站的網域名稱指向指到自己製作的一個假網站上,那麼使用者登入這個商業網站的帳號資訊就毫無安全可言了。其實此漏洞和網域名稱劫持有些相似,只要你是X網的使用者,筆者肯定就能黑了你的網站。對於X網來說,其所有的業務都有可能受到影響,資料可以被任意擷取竄改。
其他的一些危害也是顯而易見的,就不再做具體說明了。
修 補
要防止這類注入漏洞其實很簡單,只要對URL中提交的參數進行嚴格的過濾,去除一些比如單引號、SQL關鍵字等字元即可。具體做法:利用程式檢查提交的URL中問號後的字串,一旦發現單引號、分號、SQL關鍵字等特殊字元,馬上就 會跳轉到一個自訂的Error頁面。
對於X網的網管來說,解決這個問題其實花的時間不到5分鐘。另外,X網也應加強一下資料庫中的資料安全,至少加個密吧!
順便提一下,國內還有很多網站都存在這樣的注入漏洞。
編 後
自從經曆了許許多多蠕蟲和病毒的攻擊後,大家普遍對伺服器的安全十分關注,有些網站甚至只開了80連接埠。如今在伺服器上啟動並執行代碼的安全,就顯得格外重要了。代碼上一個小小的疏忽,往往就可能造成全域的崩潰。
今天有資料庫的注入漏洞,明天又將出現什麼呢?