国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Python的WEB黑客攻擊技術(shù)分析研究

2020-06-21 15:16賀軍忠
軟件工程 2020年6期

摘? 要:通過(guò)對(duì)Web黑客攻擊的語(yǔ)言分析研究,得知大部分黑客都以Python為攻擊語(yǔ)言,依托Internet對(duì)各種網(wǎng)絡(luò)服務(wù)器和客戶端進(jìn)行攻擊與密碼破解。文章著重從基于Python的各種Web攻擊目的入手,通過(guò)列舉的方法分析研究各種Web黑客攻擊技術(shù)與攻擊過(guò)程。根據(jù)各種基于Python的WEB黑客攻擊技術(shù)的攻擊方法,分析研究其攻擊過(guò)程,為企業(yè)等部門與單位的Web安全防護(hù)提供理論依據(jù)。

關(guān)鍵詞: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)

目前,我們使用的大部分服務(wù)都是基于網(wǎng)絡(luò)的,而基于HTTP協(xié)議的Web是網(wǎng)絡(luò)服務(wù)的中心。如PC中使用的網(wǎng)易、淘寶等門戶網(wǎng)站,以及智能手機(jī)中使用的各種移動(dòng)Web都屬于Web服務(wù)。為了保護(hù)系統(tǒng)安全,企業(yè)通常會(huì)關(guān)閉幾乎所有端口,但對(duì)外提供Web服務(wù)的80端口卻一直開放。比如我們常用的門戶網(wǎng)站網(wǎng)易(http//www.163.com)就使用80端口對(duì)外提供Web服務(wù)。輸入U(xiǎn)RL網(wǎng)址時(shí),若不指定連接端口,則默認(rèn)連接80端口。Web服務(wù)器通過(guò)80端口向用戶PC傳送文本、圖像、文件、視頻等多種內(nèi)容,用戶通過(guò)相應(yīng)端口將ID、密碼等純文本以及大容量文件等上傳到Web服務(wù)器。像這樣,80端口應(yīng)用廣泛,但安全設(shè)備卻幾乎不對(duì)其進(jìn)行檢查。雖然很多企業(yè)配備了Web防火墻等設(shè)備,對(duì)應(yīng)用程序級(jí)別的黑客攻擊進(jìn)行探查防范,但面對(duì)不斷發(fā)展的各種web攻擊技術(shù),這種防范手段也不是萬(wàn)能的。此時(shí)此刻,黑客們正在利用Web服務(wù)的工作機(jī)制嘗試發(fā)動(dòng)致命攻擊。

2? Python黑客攻擊的優(yōu)點(diǎn)(Advantages of Python hacking)

Python語(yǔ)言具有易學(xué)易用的特點(diǎn),且擁有各種強(qiáng)大功能。首先,Python支持功能強(qiáng)大的黑客攻擊模塊,其擁有用于支持黑客攻擊的豐富多樣的庫(kù),比如pydbg、scapy、sqlmap、httplib等。目前,這些庫(kù)被廣泛應(yīng)用于各種黑客攻擊。其次,Python能夠訪問(wèn)各種APl,Python提供了用于黑客可以訪問(wèn)的Windows、Os X、Linux、Solaris、FreeBSD、OpenBSD等系統(tǒng)的ctypes庫(kù),黑客借助它能鏈接以上系統(tǒng)提供的DLL與共享庫(kù)。第三,大多黑客攻擊工具為Python提供了APl,像Metasploit、sqlmap、Nmap等黑客工具都為Python提供了擴(kuò)展接口[1]。黑客們通過(guò)使用Python,可以將Metasploit、sqlmap、Nmap等工具改造得更加強(qiáng)大。第四,Python易學(xué)易用,這也是Python被好多黑客,尤其是新手所青睞的最重要一點(diǎn),這對(duì)黑客攻擊而言是個(gè)巨大的優(yōu)勢(shì)。據(jù)中國(guó)企業(yè)數(shù)據(jù)治理聯(lián)盟數(shù)據(jù)空間統(tǒng)計(jì)分析,目前有9大編程語(yǔ)言是黑客最喜歡和青睞的語(yǔ)言,并對(duì)做了詳細(xì)分析排名,其Python僅次于R 語(yǔ)言排名第二。該統(tǒng)計(jì)報(bào)告指出Python 是行業(yè)人員正在轉(zhuǎn)換發(fā)展的方向。過(guò)去兩年里,很明顯存在由R向Python轉(zhuǎn)化的趨勢(shì),Donnell說(shuō):“Python用途寬廣且靈活,所以人們蜂擁而至”[2]。掌握三四種編程語(yǔ)言是成為一名黑客所必需的,如C語(yǔ)言、C++、Jave與匯編語(yǔ)言,必須掌握。但其學(xué)習(xí)難度較大,要精通更是難上加難。而Python語(yǔ)言擁有各種強(qiáng)大功能,且具有易學(xué)易用的特點(diǎn)。所以Python語(yǔ)言成了黑客攻擊語(yǔ)言的首選。

3? ?黑客攻擊的定義(Definition of hacking)

Wikipedia中關(guān)于“黑客攻擊”的定義如下:“針對(duì)電子電路、計(jì)算機(jī)軟硬件、網(wǎng)絡(luò)、網(wǎng)頁(yè)等各種信息系統(tǒng),借助某種手段、技術(shù),使之執(zhí)行信息系統(tǒng)設(shè)計(jì)者、管理者、運(yùn)營(yíng)者預(yù)料之外的動(dòng)作行為,或者設(shè)法獲取高于系統(tǒng)給定的權(quán)限,對(duì)相關(guān)信息進(jìn)行查閱、復(fù)制、修改等的一系列行為[3]?!背R?jiàn)的黑客攻擊包括系統(tǒng)黑客攻擊、web黑客攻擊、應(yīng)用程序黑客攻擊和網(wǎng)絡(luò)黑客攻擊,黑客攻擊技術(shù)如圖1所示。

4? 基于Python的Web 黑客攻擊技術(shù)(Web hacking technology based on Python)

從本質(zhì)上說(shuō),計(jì)算機(jī)系統(tǒng)防范黑客攻擊的能力較差。計(jì)算機(jī)誕生之初,人們更多關(guān)注的是它的功能,而非安全。并且數(shù)十年中,計(jì)算機(jī)以單機(jī)形式運(yùn)行,直到互聯(lián)網(wǎng)出現(xiàn),計(jì)算機(jī)系統(tǒng)才暴露在多個(gè)用戶面前。從此以后,黑客們便開始潛心研究計(jì)算機(jī)系統(tǒng)和各種攻擊技術(shù)。計(jì)算機(jī)提供的多種功能一方面為用戶帶來(lái)了極大的便利,另一方面也為黑客提供了實(shí)施攻擊的手段,其中Web黑客攻擊尤為突出。

如圖2所示,Web系統(tǒng)一般由Internet瀏覽器、Web服務(wù)器、數(shù)據(jù)庫(kù)三部分組成,各部分功能劃分十分明確。瀏覽器用于處理用戶輸入,加工和接收來(lái)自Web服務(wù)器的數(shù)據(jù)并輸出到屏幕。Web服務(wù)器用于分析HTTP請(qǐng)求,并執(zhí)行相應(yīng)功能。需要處理數(shù)據(jù)時(shí),Web服務(wù)器會(huì)連接數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)處理。數(shù)據(jù)庫(kù)用于管理數(shù)據(jù),支持?jǐn)?shù)據(jù)的輸入、更新與查詢等功能。

黑客會(huì)惡意使用Web系統(tǒng)提供的功能。比如利用文件上傳功能,將Web shell文件與惡意代碼上傳到Web服務(wù)器,然后運(yùn)行Web shell文件,獲取上傳文件所在位置,進(jìn)而控制Web服務(wù)器。黑客利用用戶輸入功能可以實(shí)施SQL注人攻擊,通過(guò)輸入非正常SQL查詢?cè)u(píng)句獲取Web服務(wù)器的錯(cuò)誤信息,并對(duì)這些信息加以分析,進(jìn)而實(shí)施攻擊[4]。利用文件下載功能,可以將惡意代碼散布到網(wǎng)絡(luò)上的多臺(tái)PC。網(wǎng)絡(luò)瀏覽器中運(yùn)行的HTML與腳本代碼可以被惡意用于開展XSS攻擊與CSRF攻擊等。下面就各種Web攻擊進(jìn)行分析研究與比較。

4.1? ?XSS攻擊

XSS(Cross-Site Scriptig,跨站腳本攻擊),Cross-Site Scriptig其縮寫為CSS,這與層疊樣式表(Cascading Style Sheets,CSS)易于混淆,黑客界約定跨站腳本攻擊為XSS[5]。其很容易用Python中單例模式進(jìn)行,XSS技術(shù)將包含惡意代碼的腳本植入布告板的公告,感染閱讀公告的用戶PC,從中盜取用戶個(gè)人信息。惡意代碼大多數(shù)是腳本代碼,它讀取Cookie,并將其發(fā)送到特定URL。XSS攻擊的主要步驟是:黑客首先通過(guò)Inernet將XSS腳本上傳到WEB服務(wù)器公告板等平臺(tái),互聯(lián)網(wǎng)用戶通過(guò)正常請(qǐng)求Web 服務(wù)器等公告板,此時(shí)XSS腳本便會(huì)響應(yīng)正常用戶,并在用戶PC上運(yùn)行XSS腳本,并將Cookie文件傳回Hacker PC。就這樣閱讀公告的過(guò)程中,其個(gè)人信息就會(huì)不知不覺(jué)地泄露。隨著瀏覽器安全性增強(qiáng),以及Web防火墻等設(shè)備的應(yīng)用,XSS攻擊的成功率已經(jīng)大幅降低。

4.2? ?CSRF攻擊

CSRF(Cros Site Request Forgery,跨站請(qǐng)求偽造)類似于XSS攻擊,它也將惡意代碼插入公告板,用戶閱讀相應(yīng)公告時(shí)即受到攻擊。其與XSS不同之處是XSS攻擊主要從用戶PC非法盜取個(gè)人信息,而CSRF主要通過(guò)用戶PC對(duì)Web服務(wù)器發(fā)動(dòng)攻擊。就黑客攻擊類型而言,CSRF攻擊既可以使Web服務(wù)器癱瘓,也可以用于盜取敏感信息,對(duì)于部分黑客來(lái)說(shuō)無(wú)疑是兩全其美,其攻擊過(guò)程如圖3所示。

4.3? ?網(wǎng)絡(luò)釣魚

網(wǎng)絡(luò)釣魚(Phinshing)是指黑客通過(guò)精心設(shè)計(jì)與銀行等類似的假冒網(wǎng)站,騙取受害人在這些網(wǎng)站輸入的金融信息或個(gè)人敏感信息。首先,黑客向用戶發(fā)送聲稱來(lái)自銀行或其他知名機(jī)構(gòu)的欺詐性郵件或鏈接信息,用戶打開電子郵件或點(diǎn)擊其中鏈接,就會(huì)進(jìn)入黑客精心偽造的釣魚網(wǎng)站。用戶可能將這些網(wǎng)站誤認(rèn)為正規(guī)網(wǎng)站,而在其中輸入用戶名與密碼。假冒網(wǎng)站就會(huì)保存用戶的這些信息,黑客利用這些輸入信息發(fā)動(dòng)更深層次的攻擊,其攻擊過(guò)程如圖4所示。

4.4? ?域欺騙

域欺騙(Pharming)攻擊中,黑客首先入侵DNS服務(wù)器,修改正常的網(wǎng)站域名與IP對(duì)照表,將仿冒網(wǎng)站的IP地址發(fā)送給用戶瀏覽器,從而將用戶引導(dǎo)至精心設(shè)計(jì)的仿冒網(wǎng)站。這樣,用戶在這些網(wǎng)站輸入的個(gè)人信息就會(huì)被偷偷盜走,此攻擊類似網(wǎng)絡(luò)釣魚攻擊。不同之處是域欺騙是偽裝DNS,用戶并不知情,其攻擊過(guò)程如圖5所示。

4.5? ?SQL注入

SQL注入主要利用HTML input標(biāo)簽發(fā)動(dòng)攻擊。首先,瀏覽器接收用戶輸入的賬號(hào)與密碼,并將其發(fā)送給Web服務(wù)器。Web服務(wù)器通過(guò)SQL語(yǔ)句查詢數(shù)據(jù)庫(kù),比對(duì)是否存在與輸入的賬號(hào)和密碼一致的用戶信息。此時(shí),黑客向用戶賬號(hào)與密碼中輸入的不是正常值,而是一些能夠誘使數(shù)據(jù)庫(kù)產(chǎn)生錯(cuò)誤行為的值。比如,將類似于OR 1=1;/*,數(shù)據(jù)庫(kù)將忽略條件返回所有值。黑客通過(guò)反復(fù)輸入非正常的SQL語(yǔ)句,并分析數(shù)據(jù)庫(kù)返回的數(shù)據(jù),從而得到最適合對(duì)系統(tǒng)進(jìn)行攻擊的SQL語(yǔ)句[6]。SQL注入攻擊在Python的sqlmap模塊下只需5步即可完成。分別是第1步搜索URL、第2步尋找漏洞、第3步搜索數(shù)據(jù)表、第4步搜索列、第5步訪問(wèn)數(shù)據(jù),其攻擊過(guò)程如圖6所示。

4.6? ?Web shell

Web shell惡意利用了Web提供的文件上傳功能。首先,黑客將用于遠(yuǎn)程操縱服務(wù)器的Web shell文件上傳到Web服務(wù)器,然后找到上傳文件所在位置,得到訪問(wèn)Web shell文件的URL地址。然后,通過(guò)該URL地址運(yùn)行Web shell文件,獲取可以控制操作系統(tǒng)的超級(jí)權(quán)限。Web shell攻擊利用Python提供的fileupload等模塊也比較容易實(shí)現(xiàn)[7]。近來(lái),Web shell 與SQL注入都成為實(shí)施Web黑客攻擊最強(qiáng)大的技術(shù),其攻擊過(guò)程如圖7所示。

5? ?結(jié)論(Conclusion)

為了防范web黑客攻擊,幾乎所有企業(yè)都安裝了諸如防火墻、IPS、IDS等多種安全設(shè)備。盡管如此,它們還是不得不向網(wǎng)絡(luò)暴露一些端口,以對(duì)外提供Web服務(wù)。為了確保安全,這些公司使用了類似于Web防火墻的設(shè)備,但對(duì)黑客而言,Web系統(tǒng)仍然是最誘人的攻擊對(duì)象。文章通過(guò)對(duì)Python語(yǔ)言的分析,得知大部分黑客以其為攻擊語(yǔ)言。在利用Python提供的豐富模塊進(jìn)行各種攻擊,本研究對(duì)各種基于Python的Web黑客攻擊技術(shù)進(jìn)行分析與比較,有助于企業(yè)等進(jìn)行針對(duì)性的防護(hù)。

參考文獻(xiàn)(References)

[1] 張雅楠,唐陽(yáng)山,田國(guó)紅,等.基于Python數(shù)據(jù)處理的不安全駕駛行為研究[J].遼寧工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2019,39(06):381-383;388.

[2] 數(shù)據(jù)處理的9大編程語(yǔ)言[EB/OL].http://www.chinaedg.com/shujuzhishixuexi/zhishipuji/2019-06-17/1876.html,2019-6-17/2019-11-25.

[3] 潘崇霞,仲偉俊,梅姝娥.不同攻擊類型下風(fēng)險(xiǎn)厭惡型企業(yè)信息安全投資策略[J].系統(tǒng)工程學(xué)報(bào),2019,34(04):497-510.

[4]姜鵬.Web應(yīng)用程序安全的“七宗罪”解析[J].計(jì)算機(jī)與網(wǎng)絡(luò),2018,44(09):50-51.

[5] 丁媛媛.計(jì)算機(jī)網(wǎng)絡(luò)病毒防治技術(shù)及如何防范黑客攻擊探討[J].赤峰學(xué)院學(xué)報(bào)(自然科學(xué)版),2012,28(08):41-42.

[6] 楚翔皓,劉震.基于LSTM神經(jīng)網(wǎng)絡(luò)的SQL注入攻擊檢測(cè)研究[J].天津理工大學(xué)學(xué)報(bào),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.

作者簡(jiǎn)介:

賀軍忠(1982-),男,碩士,網(wǎng)絡(luò)工程師/講師.研究領(lǐng)域:網(wǎng)絡(luò)組建與信息安全.