


摘? 要:通過對Web黑客攻擊的語言分析研究,得知大部分黑客都以Python為攻擊語言,依托Internet對各種網絡服務器和客戶端進行攻擊與密碼破解。文章著重從基于Python的各種Web攻擊目的入手,通過列舉的方法分析研究各種Web黑客攻擊技術與攻擊過程。根據各種基于Python的WEB黑客攻擊技術的攻擊方法,分析研究其攻擊過程,為企業等部門與單位的Web安全防護提供理論依據。
關鍵詞:WEB攻擊;XSS攻擊;SQL注入;Web shell攻擊
Abstract: With programming language analysis and research on Web hacking, Python is regarded as the most commonly used language on password cracking and attacking various network servers and clients. This article focuses on the purpose of various Web attacks using Python, and analyzes various Web hacking techniques and attack processes with examples. Based on the analysis of different Python-based Web hacking technics, the paper discusses attack processes, hoping to provide a theoretical basis for Web security protection of enterprises and organizations.
Keywords: Web attack; Cross-Site Scripting (XSS) attack; SQL injection; Web shell attack
1? ?引言(Introduction)
目前,我們使用的大部分服務都是基于網絡的,而基于HTTP協議的Web是網絡服務的中心。如PC中使用的網易、淘寶等門戶網站,以及智能手機中使用的各種移動Web都屬于Web服務。為了保護系統安全,企業通常會關閉幾乎所有端口,但對外提供Web服務的80端口卻一直開放。比如我們常用的門戶網站網易(http//www.163.com)就使用80端口對外提供Web服務。輸入URL網址時,若不指定連接端口,則默認連接80端口。Web服務器通過80端口向用戶PC傳送文本、圖像、文件、視頻等多種內容,用戶通過相應端口將ID、密碼等純文本以及大容量文件等上傳到Web服務器。像這樣,80端口應用廣泛,但安全設備卻幾乎不對其進行檢查。雖然很多企業配備了Web防火墻等設備,對應用程序級別的黑客攻擊進行探查防范,但面對不斷發展的各種web攻擊技術,這種防范手段也不是萬能的。此時此刻,黑客們正在利用Web服務的工作機制嘗試發動致命攻擊。
2? Python黑客攻擊的優點(Advantages of Python hacking)
Python語言具有易學易用的特點,且擁有各種強大功能。首先,Python支持功能強大的黑客攻擊模塊,其擁有用于支持黑客攻擊的豐富多樣的庫,比如pydbg、scapy、sqlmap、httplib等。目前,這些庫被廣泛應用于各種黑客攻擊。其次,Python能夠訪問各種APl,Python提供了用于黑客可以訪問的Windows、Os X、Linux、Solaris、FreeBSD、OpenBSD等系統的ctypes庫,黑客借助它能鏈接以上系統提供的DLL與共享庫。第三,大多黑客攻擊工具為Python提供了APl,像Metasploit、sqlmap、Nmap等黑客工具都為Python提供了擴展接口[1]。黑客們通過使用Python,可以將Metasploit、sqlmap、Nmap等工具改造得更加強大。第四,Python易學易用,這也是Python被好多黑客,尤其是新手所青睞的最重要一點,這對黑客攻擊而言是個巨大的優勢。據中國企業數據治理聯盟數據空間統計分析,目前有9大編程語言是黑客最喜歡和青睞的語言,并對做了詳細分析排名,其Python僅次于R 語言排名第二。該統計報告指出Python 是行業人員正在轉換發展的方向。過去兩年里,很明顯存在由R向Python轉化的趨勢,Donnell說:“Python用途寬廣且靈活,所以人們蜂擁而至”[2]。掌握三四種編程語言是成為一名黑客所必需的,如C語言、C++、Jave與匯編語言,必須掌握。但其學習難度較大,要精通更是難上加難。而Python語言擁有各種強大功能,且具有易學易用的特點。所以Python語言成了黑客攻擊語言的首選。
3? ?黑客攻擊的定義(Definition of hacking)
Wikipedia中關于“黑客攻擊”的定義如下:“針對電子電路、計算機軟硬件、網絡、網頁等各種信息系統,借助某種手段、技術,使之執行信息系統設計者、管理者、運營者預料之外的動作行為,或者設法獲取高于系統給定的權限,對相關信息進行查閱、復制、修改等的一系列行為[3]。”常見的黑客攻擊包括系統黑客攻擊、web黑客攻擊、應用程序黑客攻擊和網絡黑客攻擊,黑客攻擊技術如圖1所示。
4? 基于Python的Web 黑客攻擊技術(Web hacking technology based on Python)
從本質上說,計算機系統防范黑客攻擊的能力較差。計算機誕生之初,人們更多關注的是它的功能,而非安全。并且數十年中,計算機以單機形式運行,直到互聯網出現,計算機系統才暴露在多個用戶面前。從此以后,黑客們便開始潛心研究計算機系統和各種攻擊技術。計算機提供的多種功能一方面為用戶帶來了極大的便利,另一方面也為黑客提供了實施攻擊的手段,其中Web黑客攻擊尤為突出。
如圖2所示,Web系統一般由Internet瀏覽器、Web服務器、數據庫三部分組成,各部分功能劃分十分明確。瀏覽器用于處理用戶輸入,加工和接收來自Web服務器的數據并輸出到屏幕。Web服務器用于分析HTTP請求,并執行相應功能。需要處理數據時,Web服務器會連接數據庫執行數據處理。數據庫用于管理數據,支持數據的輸入、更新與查詢等功能。
黑客會惡意使用Web系統提供的功能。比如利用文件上傳功能,將Web shell文件與惡意代碼上傳到Web服務器,然后運行Web shell文件,獲取上傳文件所在位置,進而控制Web服務器。黑客利用用戶輸入功能可以實施SQL注人攻擊,通過輸入非正常SQL查詢評句獲取Web服務器的錯誤信息,并對這些信息加以分析,進而實施攻擊[4]。利用文件下載功能,可以將惡意代碼散布到網絡上的多臺PC。網絡瀏覽器中運行的HTML與腳本代碼可以被惡意用于開展XSS攻擊與CSRF攻擊等。下面就各種Web攻擊進行分析研究與比較。
4.1? ?XSS攻擊
XSS(Cross-Site Scriptig,跨站腳本攻擊),Cross-Site Scriptig其縮寫為CSS,這與層疊樣式表(Cascading Style Sheets,CSS)易于混淆,黑客界約定跨站腳本攻擊為XSS[5]。其很容易用Python中單例模式進行,XSS技術將包含惡意代碼的腳本植入布告板的公告,感染閱讀公告的用戶PC,從中盜取用戶個人信息。惡意代碼大多數是腳本代碼,它讀取Cookie,并將其發送到特定URL。XSS攻擊的主要步驟是:黑客首先通過Inernet將XSS腳本上傳到WEB服務器公告板等平臺,互聯網用戶通過正常請求Web 服務器等公告板,此時XSS腳本便會響應正常用戶,并在用戶PC上運行XSS腳本,并將Cookie文件傳回Hacker PC。就這樣閱讀公告的過程中,其個人信息就會不知不覺地泄露。隨著瀏覽器安全性增強,以及Web防火墻等設備的應用,XSS攻擊的成功率已經大幅降低。
4.2? ?CSRF攻擊
CSRF(Cros Site Request Forgery,跨站請求偽造)類似于XSS攻擊,它也將惡意代碼插入公告板,用戶閱讀相應公告時即受到攻擊。其與XSS不同之處是XSS攻擊主要從用戶PC非法盜取個人信息,而CSRF主要通過用戶PC對Web服務器發動攻擊。就黑客攻擊類型而言,CSRF攻擊既可以使Web服務器癱瘓,也可以用于盜取敏感信息,對于部分黑客來說無疑是兩全其美,其攻擊過程如圖3所示。
4.3? ?網絡釣魚
網絡釣魚(Phinshing)是指黑客通過精心設計與銀行等類似的假冒網站,騙取受害人在這些網站輸入的金融信息或個人敏感信息。首先,黑客向用戶發送聲稱來自銀行或其他知名機構的欺詐性郵件或鏈接信息,用戶打開電子郵件或點擊其中鏈接,就會進入黑客精心偽造的釣魚網站。用戶可能將這些網站誤認為正規網站,而在其中輸入用戶名與密碼。假冒網站就會保存用戶的這些信息,黑客利用這些輸入信息發動更深層次的攻擊,其攻擊過程如圖4所示。
4.4? ?域欺騙
域欺騙(Pharming)攻擊中,黑客首先入侵DNS服務器,修改正常的網站域名與IP對照表,將仿冒網站的IP地址發送給用戶瀏覽器,從而將用戶引導至精心設計的仿冒網站。這樣,用戶在這些網站輸入的個人信息就會被偷偷盜走,此攻擊類似網絡釣魚攻擊。不同之處是域欺騙是偽裝DNS,用戶并不知情,其攻擊過程如圖5所示。
4.5? ?SQL注入
SQL注入主要利用HTML input標簽發動攻擊。首先,瀏覽器接收用戶輸入的賬號與密碼,并將其發送給Web服務器。Web服務器通過SQL語句查詢數據庫,比對是否存在與輸入的賬號和密碼一致的用戶信息。此時,黑客向用戶賬號與密碼中輸入的不是正常值,而是一些能夠誘使數據庫產生錯誤行為的值。比如,將類似于OR 1=1;/*,數據庫將忽略條件返回所有值。黑客通過反復輸入非正常的SQL語句,并分析數據庫返回的數據,從而得到最適合對系統進行攻擊的SQL語句[6]。SQL注入攻擊在Python的sqlmap模塊下只需5步即可完成。分別是第1步搜索URL、第2步尋找漏洞、第3步搜索數據表、第4步搜索列、第5步訪問數據,其攻擊過程如圖6所示。
4.6? ?Web shell
Web shell惡意利用了Web提供的文件上傳功能。首先,黑客將用于遠程操縱服務器的Web shell文件上傳到Web服務器,然后找到上傳文件所在位置,得到訪問Web shell文件的URL地址。然后,通過該URL地址運行Web shell文件,獲取可以控制操作系統的超級權限。Web shell攻擊利用Python提供的fileupload等模塊也比較容易實現[7]。近來,Web shell 與SQL注入都成為實施Web黑客攻擊最強大的技術,其攻擊過程如圖7所示。
5? ?結論(Conclusion)
為了防范web黑客攻擊,幾乎所有企業都安裝了諸如防火墻、IPS、IDS等多種安全設備。盡管如此,它們還是不得不向網絡暴露一些端口,以對外提供Web服務。為了確保安全,這些公司使用了類似于Web防火墻的設備,但對黑客而言,Web系統仍然是最誘人的攻擊對象。文章通過對Python語言的分析,得知大部分黑客以其為攻擊語言。在利用Python提供的豐富模塊進行各種攻擊,本研究對各種基于Python的Web黑客攻擊技術進行分析與比較,有助于企業等進行針對性的防護。
參考文獻(References)
[1] 張雅楠,唐陽山,田國紅,等.基于Python數據處理的不安全駕駛行為研究[J].遼寧工業大學學報(自然科學版),2019,39(06):381-383;388.
[2] 數據處理的9大編程語言[EB/OL].http://www.chinaedg.com/shujuzhishixuexi/zhishipuji/2019-06-17/1876.html,2019-6-17/2019-11-25.
[3] 潘崇霞,仲偉俊,梅姝娥.不同攻擊類型下風險厭惡型企業信息安全投資策略[J].系統工程學報,2019,34(04):497-510.
[4]姜鵬.Web應用程序安全的“七宗罪”解析[J].計算機與網絡,2018,44(09):50-51.
[5] 丁媛媛.計算機網絡病毒防治技術及如何防范黑客攻擊探討[J].赤峰學院學報(自然科學版),2012,28(08):41-42.
[6] 楚翔皓,劉震.基于LSTM神經網絡的SQL注入攻擊檢測研究[J].天津理工大學學報,2019,35(06):41-46.
[7] Yu Li, Jin Huang, Ademola Ikusan, et al. ShellBreaker:Automatically detecting PHP-based malicious web shells[J]. Computers & Security, 2019(87): 101-108.
作者簡介:
賀軍忠(1982-),男,碩士,網絡工程師/講師.研究領域:網絡組建與信息安全.