Oracle也有注入漏洞
2024-08-29 13:57:32
供稿:網友
正在看的ORACLE教程是:Oracle也有注入漏洞。近期,MSN、江民等知名網站相繼受到了黑客的威脅和攻擊,一時間網絡上風聲鶴唳。本報編輯部接到本文作者(熾天使)的電話,他詳細講述了發現國內最大域名提供商(以下簡稱“X網”)網站漏洞的經過。本報編輯部立即和X網的首席工程師進行了交流,確認了漏洞的真實性,該工程師也及時修補了該漏洞。
發 現
10月18日,筆者手上的項目做完以后,便和網上的朋友天南海北地聊天。聽到朋友網站的開張,心里也是非常的羨慕。
什么時候我才能擁有自己的主機和域名……想到申請主機和域名,筆者自然想到了X網(在中國太有名嘛^_^)。順手打開其主頁,突然看到了主頁右上角的會員登錄界面,這讓筆者“賊”心又起——要是能發現什么漏洞就好了,反正現在也沒什么事情。
筆者拿出端口掃描工具掃了一下X網的服務器,竟然什么漏洞都沒有發現,真是郁悶!轉念一想,畢竟X網也做了10多年了,這些大型網站服務器的安全措施恐怕不會少——映射,外加IDS和防火墻,補丁肯定也早打全了,說不定還有蜜罐程序等著你呢!
過了不久,筆者突然發現了一個情況,X網原來是用ASP寫的。前段時間ASP+MSSQL的注入漏洞可是鬧得沸沸揚揚,不少網站都吃了苦頭。這里會有這類問題嗎?不管了,先試一試再說。筆者隨手找了一個購買虛擬主機的頁面:???.cn/HAS_Client/buy/vir_host/vir_ host1_SB.asp?PackageID=10341。先用經典的方法來測試了一下,返回類型均為不匹配: ‘CDbl'錯誤。X網用的什么數據庫呢?筆者在參數后面加上一個單引號,再提交請求,頁面返回了一段報錯信息。
原來用的是Oracle,一般Oracle數據庫出現這樣的返回錯誤,都可能存在漏洞的。這和MSSQL未閉合引號的返回錯誤差不多,不過MSSQL出現這樣的錯誤提示,我們幾乎可以肯定存在注入漏洞了,而Oracle則要再進一步確定。
確 認
以下幾步為入侵的基礎,非常重要。我們分別在IE中輸入:
???.cn/HAS_Client/buy/vir_ host/vir_host1_SB.asp?PackageID=10341‘and%200<>(select%20count(*)%20from%20all_tables)%20and%20'1‘='1;
???.cn/HAS_Client/buy/vir_ host/vir_host1_SB.asp?PackageID=10341‘and%200<>(select%20count(*)%20from%20user_tables)%20and%20'1‘='1;
???.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端口。如今在服務器上運行的代碼的安全,就顯得格外重要了。代碼上一個小小的疏忽,往往就可能造成全局的崩潰。
今天有數據庫的注入漏洞,明天又將出現什么呢?