蔡銳彬
摘要:將微軟操作系統(tǒng)下的漏洞捕捉利用的方法為研究對象,側重分析和捕捉旁注入侵的利用方法,為WEB站點漏洞修補提供更多迅速、便利的偵測捕捉利用。
關鍵詞:結構化查詢語句旁注;漏洞捕捉;木馬頁面
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2018)03-0037-02
改革開放不斷深入,互聯(lián)網(wǎng)的體量和增量速度不斷發(fā)展壯大,高速互聯(lián)網(wǎng)日益普及,網(wǎng)絡終端應用不斷普及,計算機網(wǎng)絡安全問題越來越受到關注,信息安全在計算機網(wǎng)絡中扮演的角色越來越重要。
計算機網(wǎng)絡安全問題在基于微軟視窗平臺的應用方面更加值得關注,某些方面不安全也確實令人擔憂,拒絕服務攻擊、基于數(shù)據(jù)庫平臺的代碼注入、操作系統(tǒng)漏洞捕捉利用、木馬插件、木馬郵件、垃圾信息等安全防范領域困擾層出不窮[1]。探討漏洞捕捉和利用方法,發(fā)現(xiàn)其共同特性,能夠幫助解決問題和克服困難,在指導計算機網(wǎng)絡安全方面的工作有所幫助。我們將談論計算機系統(tǒng)漏洞捕捉利用,結構化查詢語句注入、木馬頁面利用、分布式拒絕服務等方面的入侵和攻擊方法,并企圖通過分析來探討計算機網(wǎng)絡形成的高速互聯(lián)網(wǎng)的安全問題。
1 結構化語句旁注入侵
旁注入侵通過正常訪問3W端口來進行偵測。表面上和正常訪問網(wǎng)站網(wǎng)頁沒什么不同的,主流的防火墻安全系統(tǒng)并不會對旁注入侵進行警報,也無法進行鑒別,在網(wǎng)站系統(tǒng)管理者未查web服務器日志的情況下造成被入侵很久都未必會他們發(fā)現(xiàn)[2]。
雖然這樣,注入是一種靈活有效的方法,但在操作時往往會遇到這樣那樣的特殊情形。應該依據(jù)具體不同情況具體分析,能否構建一句精巧的旁注偵測結構化查詢語句,獲得提取到預期的信息和數(shù)據(jù),則要依靠入侵操作者的平時知識積累水平和運氣情況。
1.1 注入的原理
請看一個實例:在網(wǎng)站上,如果有一個鏈接,地址如下:http://www.aaa.com/../showInf.asp?idd=2,注入者可以在地址后加一個單引號',網(wǎng)站W(wǎng)EB服務器計算機將會應要求反饋如下的錯誤提示:
[Microsoft JET Database Engine 錯誤 '80040e14'
字符串的語法錯誤 在查詢表達式 'IDD=2'' 中。
/showInf.asp,行4]在上面這一錯誤提示信息,可以發(fā)現(xiàn)下面幾點有意義的信息:
1) 網(wǎng)絡Server上安裝微軟的MS-Access數(shù)據(jù)庫并設置JET-OLE鏈接。
2) 編程人員在代碼中未判斷用戶端提交的數(shù)據(jù)對于程序的合規(guī)性。
3) 網(wǎng)站的結構化查詢語句所查詢的表中存在名為“IDD”的字段。
通過上面例子可知,旁注偵測的基本原理是通過分析客戶端提交的代碼行,然后分析服務器的反饋信息,獲取旁注偵測信息及資料。
1.2 分析注入可行性
要分析是否存在漏洞,使用如下測試方法是較為準確的:
1) http://www.kkk.com/showdet.asp?idd=2
2) http://www.kkk.com/showdet.asp?idd=2 and 1=1
3) http://www.kkk.com/showdet.asp?idd=2 and 1=2
此法是常用的測試法。觀察以上的網(wǎng)址返回的結果,通常可以知道是否可以注入。
可注入時,反饋內容表現(xiàn)如下:
1) 網(wǎng)頁能夠正常顯示;
2) 網(wǎng)頁基本能正常顯示,但格式異常,內容與1)大致相同;
3) 出現(xiàn)BOF或EOF提示、或提示未找到記錄(已判斷但記錄溢出時)、或顯示網(wǎng)頁內容為空(代碼程序中做了on error resume next)。
若是不存在入侵條件則通過反饋異常來反映,觀察網(wǎng)頁程序定義的出錯提示類型甚至跳轉到的指定頁面信息。
以上是傳入數(shù)字型參數(shù)的判斷方法,實際應用的時候會有字符型和搜索型參數(shù),后面會在“結構化查詢注入一般步驟”做討論。
1.3 數(shù)據(jù)庫判斷和注入方法
不一樣的數(shù)據(jù)庫的函數(shù)采用的偵測注入法是有不同的,在注入偵測之前,應判斷數(shù)據(jù)庫類型。一般ASP動態(tài)網(wǎng)頁程序代碼經(jīng)常采用的數(shù)據(jù)庫為微軟的數(shù)據(jù)庫,大部分網(wǎng)站用這兩種數(shù)據(jù)庫。
獲取數(shù)據(jù)庫類型方法如下:
通過MS-SQL數(shù)據(jù)庫系統(tǒng)特有內置變量,WEB SERVER提示停且MS-SQL返回錯誤提示則可直接從出錯信息中獲知。采用如下方法:
http://www.kkk.com/showdet.asp?idd=2 and user>0
MSSQL注入方法是一種效率高的偵測方法。語句通過在正常語句后面加上and user>0產(chǎn)生特殊用意。使用MSSQL的內置變量nvarchar的取值與int比較,系統(tǒng)將轉型變量并導致顯示出錯信息。出錯提示類似是:將xxxx值 ”xxx” 轉換數(shù)據(jù)類型為 aaa 的列時發(fā)生語法錯誤,實際上,xxx暴露了用戶名的值,這樣,相當于顯示了數(shù)據(jù)庫的用戶名。
MS-SQL的超級用戶等同于管理員權限的角色,得到了sa權限,就可以拿到主機的管理權了。以上方法可很方便的測試出是否是用sa登錄,是sa登錄的話則提示的是:將“dbo”轉換成int的列發(fā)生錯誤,而不是直接顯示超級管理員用戶名“sa”。
如果互聯(lián)網(wǎng)信息服務器禁止返回錯誤提示,則可采用從Access和MSSQL間的區(qū)別入手。它們都有自己的系統(tǒng)表,MS-Access是在系統(tǒng)表[msysobjects]在網(wǎng)絡環(huán)境下讀該表會提示“沒有權限”,MS-SQL是在表[sysobjects]中,在網(wǎng)絡環(huán)境下能正常獲得[3]。
可以注入時用下面語句:
注入點鏈接后面加上“?idd=2 and (select count(*) from sysobjects)>0”
注入點鏈接后面加上“?idd=2 and (select count(*) from msysobjects)>0”
若數(shù)據(jù)庫是MSSQL,則前一網(wǎng)址的頁面與原頁面大致相同;而后一網(wǎng)址則找不到表msysobjects,將提示有錯,有容錯處理的頁面也將會不同。
只指定旁注入侵的判斷方法要拿到網(wǎng)站的保密內容還是不夠的。要從數(shù)據(jù)庫中獲取想要的內容,先要看看SQL注入的一般步驟:
先要判斷環(huán)境尋找注入漏洞偵測點,判斷數(shù)據(jù)庫類型,接著再根據(jù)參數(shù)類型,重構結構化查詢語句。按參數(shù)類型分如下幾種:
(A) IDD=2 這類注入的參數(shù)是數(shù)字型
(B) Class=電影 這種參數(shù)是字符型
(C)沒過濾參數(shù)的
將查詢條件替換成結構化查詢語句猜解表名,如:
IDD=2 And (Select Count(*) from Adm)>=0
若兩者反饋頁面信息是相同的那說明附加條件是成立的,那判斷出數(shù)據(jù)庫的表Adm是存在的,若不同則肯定不存在Adm表。通過字典不斷猜測,直到表名存在為止。表名猜解出后,可以將Count(*)替換成Count(字段名),用同樣的方法通過字典不斷猜解字段名。
2 注入型系統(tǒng)漏洞捕捉利用設計
2.1 系統(tǒng)漏洞捕捉系統(tǒng)設計
自主設計一個注入攻擊工具系統(tǒng),主要包括以下子系統(tǒng):旁注偵測、木馬頁面上傳、結構化查詢語句旁注、數(shù)據(jù)庫管理。功能是注入點智能化的發(fā)現(xiàn)系統(tǒng)漏洞,包含注入利用,ASP木馬文件上傳等入侵方法的系統(tǒng)設計和實現(xiàn)原理、方法。
2.2 系統(tǒng)設計
工具系統(tǒng)是根據(jù)微軟操作系統(tǒng)平臺的特點來設計的,專門針對廣泛流行的WEB服務器和ASP語言在數(shù)據(jù)庫查詢中常有的系統(tǒng)漏洞,采取相應操作,實現(xiàn)對微軟系統(tǒng)的漏洞捕捉注入入侵。系統(tǒng)有如下設計流程:
1) 采用國外http://whois.webhosting.info/網(wǎng)站提供的免費服務,通過域名查得IP,也可以通過IP查域名。存在于同一服務器的虛擬網(wǎng)站可能受到相鄰網(wǎng)站漏洞波及而遭受入侵。
2) 旁注入侵注入點智能發(fā)現(xiàn)。將MSHTML的get_links 獲取 IHTMLElementCollection 接口,再通過它的 IHTMLAnchorElement接口的get_href就可以得到網(wǎng)頁的所有鏈接了。得到這些鏈接后,觀察其中是否包含類似“.asp?id=”的語句,有則進行注入檢測,最終智能獲得可以注入的網(wǎng)站鏈接。
3) 對注入點數(shù)據(jù)庫實施猜解,判斷目標網(wǎng)站數(shù)據(jù)庫類型。然后根據(jù)不同類型采取不同的方法猜解,獲取表和其中的字段和記錄。
4) 嘗試猜解網(wǎng)站后臺管理員入口。多數(shù)網(wǎng)站的管理員登錄入口都是admin.asp,login.asp,manage.asp等等。
5) 嘗試猜解數(shù)據(jù)庫,可以獲取管理員賬號,結合管理員入口就可以進入網(wǎng)站的后臺。
6) 上傳木馬頁面WEBSHELL,利用數(shù)據(jù)庫備份功能,可以用它來把我們所上傳的經(jīng)過改裝成形如XXX.GIF的WEBSHELL恢復原型成XXX.ASP,讓網(wǎng)頁木馬真正起作用。
2.3 工具軟件實現(xiàn)
SQL注入模塊界面如圖SQL注入界面所示。包含批量掃描注入點、SQL注入猜解檢測、輔助工具,管理入口掃描四個子模塊。在SQL注入猜解模塊中包含了旁注入侵的精華思想。
3 系統(tǒng)漏洞智能發(fā)現(xiàn)實現(xiàn)與驗證
東莞搜房網(wǎng)www.dgsoufun.com和搜房網(wǎng)www.soufun.com是放在同一個虛擬服務器中的,也是子母公司的網(wǎng)站。搜房網(wǎng)的訪問流量很大,約為5000IP/天,論壇每天的新帖子達到1500篇以上,各方面比較完善。但是,在www.jxuf.com這個網(wǎng)站中,系統(tǒng)工具智能掃描到存在了注入點,東莞搜房網(wǎng)注入檢測:http://www.jxuf.com/../market_view.asp?id=14。得到金信聯(lián)行的網(wǎng)站控制權,再通過這個網(wǎng)站來控制東莞搜房網(wǎng)www.dgsoufun.com的系統(tǒng)管理權。
4 小結
本文通過分析微軟系統(tǒng)常用注入漏洞捕捉,設計一個智能檢測攻擊工具。淺談微軟系統(tǒng)漏洞入侵檢測的完整過程。從主機掃描開始,把域名解釋到IP,再通過IP查詢,發(fā)現(xiàn)主機上面存在的所有虛擬主機,即查詢出該IP上綁定了若干域名。增加掃描的漏洞的全面性,增加漏洞捕捉的可能性。針對不同主機,逐一掃描,發(fā)現(xiàn)各自存在漏洞可能。系統(tǒng)實現(xiàn)SQL注入漏洞發(fā)現(xiàn)智能化,避免人工干預,系統(tǒng)能將可入侵、可利用的漏洞鏈接顯示出來。
參考文獻:
[1] Shan Rongsheng, Li Jianhua, Wang Mingzheng. Anomaly detection for network traffic flow[J]. Journal of Southeast University(English Edition), 2004, 20(1):16-20.
[2] 薛麗軍.分布式拒絕服務攻擊檢測與防護[D]. 電子科技大學, 2003(05).