網(wǎng)絡(luò)安全原理與應(yīng)用(第三版)課件 第4章 Web安全_第1頁
網(wǎng)絡(luò)安全原理與應(yīng)用(第三版)課件 第4章 Web安全_第2頁
網(wǎng)絡(luò)安全原理與應(yīng)用(第三版)課件 第4章 Web安全_第3頁
網(wǎng)絡(luò)安全原理與應(yīng)用(第三版)課件 第4章 Web安全_第4頁
網(wǎng)絡(luò)安全原理與應(yīng)用(第三版)課件 第4章 Web安全_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1網(wǎng)絡(luò)安全原理與應(yīng)用(第三版)第五章Web安全5.1

Web安全概述5.1.1

Web服務(wù)Web是一個(gè)運(yùn)行于Internet上的基本的client/server應(yīng)用。Browser/Server,客戶為瀏覽器,服務(wù)器為WebServer;在Web應(yīng)用中,WebServer后面常常與數(shù)據(jù)庫(kù)打交道服務(wù)器:規(guī)定了服務(wù)器的傳輸設(shè)定、信息傳輸格式及服務(wù)器的基本開放結(jié)構(gòu);客戶機(jī):Web瀏覽器,用于向服務(wù)器發(fā)送資源索取請(qǐng)求,并將接收到的信息進(jìn)行解碼和顯示;通信協(xié)議:Web瀏覽器與服務(wù)器之間遵照HTTP協(xié)議進(jìn)行通信HPPT協(xié)議它定義了Web瀏覽器向Web服務(wù)器發(fā)送索取Web頁面請(qǐng)求的格式,以及Web頁面在Internet上的傳輸方式。HTTP工作過程:(1)Web服務(wù)器在80端口等候Web瀏覽器的請(qǐng)求;(2)Web瀏覽器通過三次握手與服務(wù)器建立起TCP/IP連接,然后Web瀏覽器向Web服務(wù)器發(fā)送索取頁面的請(qǐng)求:Get/dailynews.html(3)服務(wù)器以相應(yīng)的文件為內(nèi)容響應(yīng)Web瀏覽器的請(qǐng)求5.1

Web安全概述5.1.2Web服務(wù)面臨的安全威脅(1)注入攻擊:如果應(yīng)用程序沒有正確過濾用戶輸入,攻擊者可以輸入特定的SQL代碼來讀取、修改或刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)。常見的有SQL注入、NoSQL注入、OS注入、LDAP注入等。跨站腳本攻擊(XSS):當(dāng)應(yīng)用程序未對(duì)用戶輸入進(jìn)行適當(dāng)?shù)倪^濾和轉(zhuǎn)義時(shí),攻擊者可以在網(wǎng)頁中注入惡意腳本。當(dāng)其他用戶訪問這個(gè)網(wǎng)頁時(shí),這些腳本會(huì)在他們的瀏覽器中執(zhí)行,可能導(dǎo)致用戶的敏感信息被竊取,或者被誘導(dǎo)執(zhí)行某些操作??缯菊?qǐng)求偽造(CSRF):攻擊者通常會(huì)誘導(dǎo)用戶訪問一個(gè)惡意網(wǎng)站,然后利用用戶的身份在目標(biāo)網(wǎng)站上執(zhí)行敏感操作,如更改密碼、發(fā)送郵件等。5.1.2Web服務(wù)面臨的安全威脅(2)文件上傳漏洞:如果應(yīng)用程序沒有對(duì)上傳的文件進(jìn)行嚴(yán)格的檢查和過濾,攻擊者可以上傳惡意文件,例如可執(zhí)行的腳本文件或包含惡意代碼的文件。這些文件可能會(huì)被執(zhí)行,導(dǎo)致攻擊者能夠控制服務(wù)器或竊取敏感數(shù)據(jù)。反序列化漏洞:當(dāng)應(yīng)用程序從不受信任的來源接收序列化的數(shù)據(jù)時(shí),如果沒有進(jìn)行適當(dāng)?shù)尿?yàn)證和過濾,攻擊者可以注入惡意對(duì)象,導(dǎo)致應(yīng)用程序執(zhí)行惡意代碼或泄露敏感數(shù)據(jù)。目錄遍歷漏洞:如果應(yīng)用程序沒有對(duì)用戶請(qǐng)求的文件路徑進(jìn)行嚴(yán)格的檢查和過濾,攻擊者可以通過構(gòu)造特定的請(qǐng)求來訪問服務(wù)器上的敏感文件或執(zhí)行惡意代碼。敏感信息泄露:如果應(yīng)用程序在處理敏感數(shù)據(jù)時(shí)未采取適當(dāng)?shù)陌踩胧?,如加密存?chǔ)、訪問控制等,可能導(dǎo)致敏感數(shù)據(jù)泄露,例如數(shù)據(jù)庫(kù)連接字符串、API密鑰等。5.1.2Web服務(wù)面臨的安全威脅(3)會(huì)話劫持:當(dāng)攻擊者能夠竊取用戶的會(huì)話令牌時(shí),他們可以利用這個(gè)令牌冒充用戶進(jìn)行操作。會(huì)話劫持可以通過多種方式實(shí)現(xiàn),例如嗅探網(wǎng)絡(luò)通信或利用應(yīng)用程序的會(huì)話管理漏洞。文件包含漏洞:如果應(yīng)用程序沒有對(duì)包含的文件進(jìn)行嚴(yán)格的檢查和過濾,攻擊者可以指定包含惡意文件,導(dǎo)致應(yīng)用程序執(zhí)行惡意代碼或泄露敏感數(shù)據(jù)。代碼注入:當(dāng)應(yīng)用程序沒有對(duì)用戶輸入的數(shù)據(jù)進(jìn)行適當(dāng)?shù)倪^濾和驗(yàn)證時(shí),攻擊者可以注入惡意代碼。例如,如果應(yīng)用程序允許用戶上傳自定義腳本或配置文件,并且沒有進(jìn)行適當(dāng)?shù)尿?yàn)證和過濾,攻擊者可以上傳包含惡意代碼的文件,導(dǎo)致應(yīng)用程序執(zhí)行這些代碼。拒絕服務(wù):拒絕服務(wù)攻擊是指故意導(dǎo)致應(yīng)用程序的可用性降低。典型的示例是:讓W(xué)eb應(yīng)用程序負(fù)載過度,使其無法為普通用戶服務(wù)。5.2Web服務(wù)的安全問題5.2.1Web服務(wù)器的安全問題(1)未及時(shí)更新:Web服務(wù)器服務(wù)器和相關(guān)組件可能會(huì)有安全漏洞的存在。(2)不安全的配置:錯(cuò)誤的配置選項(xiàng)和權(quán)限設(shè)置可能會(huì)導(dǎo)致Web服務(wù)器安全漏洞。(3)DDoS攻擊:分布式拒絕服務(wù)(DDoS)攻擊可能會(huì)導(dǎo)致服務(wù)器性能下降或完全不可用。(4)SQL注入和跨站腳本攻擊(5)未加密的數(shù)據(jù)傳輸:如果未正確配置SSL/TLS證書,敏感數(shù)據(jù)的傳輸可能會(huì)受到威脅。5.2.1Web服務(wù)器的安全問題(6)默認(rèn)憑據(jù)和漏洞路徑:攻擊者可以嘗試使用默認(rèn)的管理員憑據(jù)來入侵服務(wù)器,或者尋找已知的漏洞路徑。(7)不安全的插件和模塊:某些第三方插件和模塊可能存在安全漏洞,因此應(yīng)該審查并定期更新它們。(8)訪問控制不當(dāng):不正確的訪問控制列表(ACL)和權(quán)限設(shè)置可能會(huì)導(dǎo)致不希望的訪問。(9)錯(cuò)誤消息處理不當(dāng):默認(rèn)的錯(cuò)誤消息可能包含敏感信息,會(huì)泄露服務(wù)器配置和其他信息給潛在的攻擊者。(10)監(jiān)控和日志不足:監(jiān)控和日志記錄的不足可能會(huì)導(dǎo)致無法及時(shí)檢測(cè)和應(yīng)對(duì)安全威脅。5.2.2ASP與Access的安全性ASP+Access解決方案的主要安全隱患來自Access數(shù)據(jù)庫(kù)的安全性,其次在于ASP網(wǎng)頁設(shè)計(jì)過程中的安全漏洞。1.Access數(shù)據(jù)庫(kù)的存儲(chǔ)隱患在ASP+Access應(yīng)用系統(tǒng)中,如果獲得或者猜到Access數(shù)據(jù)庫(kù)的存儲(chǔ)路徑和數(shù)據(jù)庫(kù)名,則該數(shù)據(jù)庫(kù)就可以被下載到本地。2.Access數(shù)據(jù)庫(kù)的解密隱患由于Access數(shù)據(jù)庫(kù)的加密機(jī)制非常簡(jiǎn)單,所以即使數(shù)據(jù)庫(kù)設(shè)置了密碼,解密也很容易。5.2.2ASP與Access的安全性3.源代碼的安全隱患由于ASP程序采用的是非編譯性語言,這大大降低了程序源代碼的安全性。任何人只要進(jìn)入站點(diǎn),就可以獲得源代碼,從而造成ASP應(yīng)用程序源代碼的泄露。4.程序設(shè)計(jì)中的安全隱患ASP代碼利用表單(Form)實(shí)現(xiàn)與用戶交互的功能,而相應(yīng)的內(nèi)容會(huì)反映在瀏覽器的地址欄中,如果不采用適當(dāng)?shù)陌踩胧?,只要記下這些內(nèi)容,就可以繞過驗(yàn)證直接進(jìn)入某一頁面。5.2.3Java與JavaScript的安全性1.JavaScript的安全性問題(1)JavaScript可以欺騙用戶,將用戶本地硬盤上的文件上載到Internet上的任意主機(jī)。(2)JavaScript能獲得用戶本地硬盤上的目錄列表,這既代表對(duì)隱私的侵犯又代表安全風(fēng)險(xiǎn)。(3)JavaScript能監(jiān)視用戶某段時(shí)間內(nèi)訪問的所有網(wǎng)頁,捕捉URL并將它們傳到Internet上的某臺(tái)主機(jī)中。(4)JavaScript能夠觸發(fā)NetscapeNavigator送出電子郵件信息而不需經(jīng)過用戶允許。這個(gè)技術(shù)可被用來獲得用戶的電子郵件地址。(5)嵌入網(wǎng)頁的JavaScript代碼是公開的,缺乏安全保密功能。5.2.3Java與JavaScript的安全性(1)跨站請(qǐng)求偽造攻擊(CSRF):攻擊者可能會(huì)利用JavaApplet的漏洞,通過偽造請(qǐng)求來執(zhí)行惡意操作。例如,攻擊者可能會(huì)偽造一個(gè)表單提交請(qǐng)求,導(dǎo)致用戶在不知情的情況下執(zhí)行某些敏感操作。(2)代碼注入攻擊:攻擊者可能會(huì)向JavaApplet注入惡意代碼,從而控制應(yīng)用程序的行為。例如,攻擊者可能會(huì)注入惡意腳本,竊取用戶的敏感信息或執(zhí)行其他惡意操作。(3)資源泄露:JavaApplet可能存在資源泄露漏洞,攻擊者可以利用這些漏洞獲取敏感信息,例如本地文件路徑、系統(tǒng)配置等。(4)權(quán)限提升:JavaApplet可能存在權(quán)限提升漏洞,攻擊者可以利用這些漏洞獲取更高的權(quán)限,從而執(zhí)行敏感操作。5.2.4Cookie的安全性Cookies是網(wǎng)站服務(wù)器發(fā)送到用戶瀏覽器的文本文件,它可以記錄用戶的偏好、登錄信息、瀏覽習(xí)慣等。在瀏覽器第一次連接Web服務(wù)器時(shí),由服務(wù)器端寫入到客戶端的系統(tǒng)中。當(dāng)用戶再次訪問該網(wǎng)站時(shí),網(wǎng)站可以通過讀取Cookies來識(shí)別用戶,從而提供個(gè)性化的服務(wù)或恢復(fù)用戶的瀏覽狀態(tài)。Cookies的技術(shù)使得網(wǎng)站能夠提供更加便捷和個(gè)性化的服務(wù),改善HTTP協(xié)議的無狀態(tài)性,增強(qiáng)用戶體驗(yàn)。

5.2.4Cookie的安全性Cookie可以記住用戶和跟蹤用戶的行為;可能影響用戶的隱私和安全網(wǎng)站和應(yīng)用程序的開發(fā)人員應(yīng)該遵循安全原則確保用戶數(shù)據(jù)的隱私和安全,并減少潛在的安全威脅。

如,不存儲(chǔ)隱私數(shù)據(jù)、敏感數(shù)據(jù)、安全標(biāo)志;Cookie可以設(shè)置過期時(shí)間,防止長(zhǎng)時(shí)間使用;避免第三方Cookie引入跟蹤和隱私問題。

無痕瀏覽器通常會(huì)阻止第三方Cookie和其他追蹤技術(shù)的使用,以防止第三方網(wǎng)站跟蹤用戶的行蹤。這些追蹤技術(shù)可以用于收集用戶的個(gè)人信息、搜索歷史和瀏覽習(xí)慣,從而侵犯用戶的隱私。5.3Web客戶端的安全惡意網(wǎng)站:用戶可能會(huì)訪問惡意網(wǎng)站,這些網(wǎng)站可能包含惡意代碼,例如惡意軟件、惡意腳本或釣魚攻擊,以嘗試竊取敏感信息或感染用戶的設(shè)備。插件和擴(kuò)展:瀏覽器的插件和擴(kuò)展可能存在安全漏洞,攻擊者可以利用這些漏洞來入侵用戶的系統(tǒng)或竊取用戶的數(shù)據(jù)。彈出窗口和廣告:惡意廣告和彈出窗口可能包含惡意代碼,通過點(diǎn)擊這些廣告或彈出窗口,用戶的設(shè)備可能受到威脅。5.3Web客戶端的安全跨站點(diǎn)腳本(XSS):XSS攻擊是一種常見的攻擊方式,攻擊者通過注入惡意腳本到網(wǎng)頁中,可以竊取用戶的Cookie、Session數(shù)據(jù)或其他敏感信息??缯军c(diǎn)請(qǐng)求偽造(CSRF):攻擊者可以誘使用戶在未經(jīng)許可的情況下執(zhí)行操作,例如更改賬戶設(shè)置或進(jìn)行金融交易,因此用戶可能會(huì)受到損失。密碼管理問題:瀏覽器內(nèi)置的密碼管理器可能不夠安全,存儲(chǔ)密碼的方式可能會(huì)受到威脅,如果瀏覽器密碼被泄露,用戶的賬戶可能會(huì)受到攻擊。不安全的擴(kuò)展和附加組件:用戶安裝的瀏覽器擴(kuò)展和附加組件可能不是完全可信的,一些惡意擴(kuò)展可能會(huì)監(jiān)視用戶的行為或操縱瀏覽器。5.3Web客戶端的安全不安全的連接:使用不安全的HTTP連接而不是加密的HTTPS連接可能會(huì)導(dǎo)致敏感數(shù)據(jù)在傳輸過程中被竊取。隱私問題:瀏覽器可能會(huì)收集用戶的瀏覽數(shù)據(jù)和個(gè)人信息,這些信息可能會(huì)被濫用,或者在不經(jīng)用戶允許的情況下共享給第三方。瀏覽器漏洞:瀏覽器自身可能包含漏洞,攻擊者可以利用這些漏洞來執(zhí)行惡意代碼或入侵用戶的系統(tǒng)。5.3.1防范惡意網(wǎng)頁惡意網(wǎng)頁是指嵌入了用JavaApplet、JavaScript或者ActiveX設(shè)計(jì)的非法惡意程序的網(wǎng)頁,通常用于攻擊用戶的計(jì)算機(jī)或竊取其敏感信息。當(dāng)用戶瀏覽包含惡意代碼的網(wǎng)頁時(shí),這些程序會(huì)利用瀏覽器的漏洞,進(jìn)行修改用戶的注冊(cè)表、修改瀏覽器的默認(rèn)設(shè)置、獲取用戶的個(gè)人資料、刪除硬盤文件、格式化硬盤等非法操作。5.3.1防范惡意網(wǎng)頁(1)增加安全意識(shí),約束上網(wǎng)行為。(2)安裝防病毒軟件。(3)注冊(cè)表加鎖。(4)禁用遠(yuǎn)程注冊(cè)表操作服務(wù)。(5)避免重蹈覆轍。(6)禁用ActiveX插件、控件和Java腳本。(7)使用更安全的瀏覽器。5.3.2隱私侵犯1.網(wǎng)上數(shù)據(jù)搜集的方法(1)通過用戶的IP地址進(jìn)行。(2)通過Cookie獲得用戶的個(gè)人信息。(3)因特網(wǎng)服務(wù)提供商在搜集、下載、集中、整理和利用用戶個(gè)人隱私材料方面具有得天獨(dú)厚的有利條件(4)使用WWW的欺騙技術(shù)。(5)網(wǎng)絡(luò)詐騙郵件。5.3.2隱私侵犯2.網(wǎng)上數(shù)據(jù)搜集對(duì)個(gè)人隱私造成的侵害信息泄露風(fēng)險(xiǎn):當(dāng)個(gè)人數(shù)據(jù)被收集時(shí),如果這些數(shù)據(jù)未得到適當(dāng)?shù)谋Wo(hù),可能會(huì)被泄露或被不法分子利用,從而造成財(cái)務(wù)或身份盜竊等危害。社交媒體隱私問題:在社交媒體上發(fā)布個(gè)人照片、位置信息、個(gè)人狀態(tài)等都可能被濫用,導(dǎo)致個(gè)人隱私受到侵犯。例如,住址泄露、私人照片被傳播等。個(gè)人權(quán)利侵犯:個(gè)人隱私是每個(gè)人的基本權(quán)利之一。在互聯(lián)網(wǎng)時(shí)代,也需要確保個(gè)人的隱私權(quán)利得到尊重和保護(hù)。沒有個(gè)人隱私的保護(hù),將導(dǎo)致個(gè)人信息遭受不法分子的侵害。歧視風(fēng)險(xiǎn):大數(shù)據(jù)可能會(huì)產(chǎn)生偏差和歧視。例如,大數(shù)據(jù)分析可能會(huì)偏向某個(gè)群體,導(dǎo)致對(duì)其他群體的忽視和排斥。安全隱患:大數(shù)據(jù)通常存儲(chǔ)在云端,由于網(wǎng)絡(luò)連接方式的特殊性,存在安全隱患。例如,大數(shù)據(jù)可能會(huì)被黑客攻擊,導(dǎo)致數(shù)據(jù)泄露或篡改。5.4SSL技術(shù)5.4.1SSL概述SSL(SecureSocketLayer)協(xié)議提供的安全特性:(1)利用認(rèn)證技術(shù)識(shí)別身份。在客戶機(jī)向服務(wù)器可利用數(shù)字證書實(shí)現(xiàn)雙向身份證驗(yàn),但通常SSL協(xié)議只要求驗(yàn)證服務(wù)器端。(2)利用加密技術(shù)保證通道的保密性。在客戶機(jī)和服務(wù)器進(jìn)行數(shù)據(jù)交換之前,通過握手協(xié)議交換加密密鑰,傳輸?shù)南⒕鶠榧用艿南?。?)利用數(shù)字簽名技術(shù)保證信息傳送的完整性。對(duì)相互傳送的數(shù)據(jù)進(jìn)行Hash計(jì)算并加載數(shù)字簽名,從而保證信息的完整性。5.4.2SSL體系結(jié)構(gòu)SSL位于TCP/IP協(xié)議棧中的傳輸層和應(yīng)用層之間,利用TCP協(xié)議提供可靠的端到端安全服務(wù)。5.4.2SSL體系結(jié)構(gòu)1.SSL協(xié)議的記錄層記錄層的功能是根據(jù)當(dāng)前會(huì)話狀態(tài)給出參數(shù),對(duì)當(dāng)前連接中要傳輸?shù)母邔訑?shù)據(jù)實(shí)施壓縮/解壓縮、加/解密、計(jì)算/校驗(yàn)MAC等操作。5.4.2SSL體系結(jié)構(gòu)2.握手協(xié)議握手協(xié)議(HandshakeProtocol)是SSL上層3個(gè)協(xié)議中最重要的一個(gè),作用是產(chǎn)生會(huì)話的安全屬性。當(dāng)客戶和服務(wù)器準(zhǔn)備通信時(shí),它們就要協(xié)商:身份驗(yàn)證(可選)、協(xié)議版本、密鑰交換算法、壓縮算法、加密算法,并且生成密鑰和完成密鑰交換。5.4.2SSL體系結(jié)構(gòu)3.改變加密規(guī)格協(xié)議改變加密規(guī)格協(xié)議的消息只包含一個(gè)字節(jié),值為1。這條消息的唯一功能是使得延遲狀態(tài)改變?yōu)楫?dāng)前狀態(tài),該消息更新了在這一連接中應(yīng)用的密碼機(jī)制。4.報(bào)警協(xié)議報(bào)警協(xié)議的每個(gè)消息包含兩個(gè)字節(jié)。第一個(gè)字節(jié)表示報(bào)警的嚴(yán)重程度,可取值為1和2,分別表示警告(warning)和致命(fatal);第二個(gè)字節(jié)包含一個(gè)編碼,用于指明具體的警告類型。如,致命的警告消息有:unexpected_message、bad_record_mac、decompression_failure、handshake_failure、illegal_parameter;5.5Web服務(wù)器的安全配置5.5.1IIS的安裝與配置5.5.2IIS的安全配置方法HTTPS使用HTTPS時(shí),下列的元素將被加密:請(qǐng)求文件的URL文件的內(nèi)容瀏覽器表格(用戶填寫的)BS及SB的cookiesHTTP頭的內(nèi)容HTTPS的相關(guān)文件:RFC2818IIS配置HTTPS第一步:獲取證書為Web服務(wù)器配置SSL要在IIS中啟用SSL,首先必須獲得用于加密和解密通過網(wǎng)絡(luò)傳輸?shù)男畔⒌淖C書。IIS具有自己的證書請(qǐng)求工具,您可以使用此工具向證書頒發(fā)機(jī)構(gòu)發(fā)送證書請(qǐng)求。導(dǎo)入證書到控制臺(tái)添加HTTPS綁定,包括(類型,IP,端口,域名,SSL證書)通過https://訪問網(wǎng)站5.6SQL注入攻擊5.6.1SQL注入攻擊原理SQL注入(StructuredQueryLanguageInjection)是指攻擊者利用web應(yīng)用程序?qū)τ脩糨斎霐?shù)據(jù)的合法性不作檢測(cè)或檢測(cè)不嚴(yán)格的弱點(diǎn),從客戶端提交特殊的數(shù)據(jù)庫(kù)查詢代碼,欺騙數(shù)據(jù)庫(kù)服務(wù)器執(zhí)行非授權(quán)的任意查詢,從而使服務(wù)端數(shù)據(jù)庫(kù)泄露敏感信息,甚至利用數(shù)據(jù)庫(kù)注入攻擊獲取高權(quán)限(如管理員賬號(hào))執(zhí)行危險(xiǎn)操作實(shí)現(xiàn)入侵。5.6.1SQL注入攻擊原理SQL語句是一種用于與數(shù)據(jù)庫(kù)交互的結(jié)構(gòu)化查詢語言。如:當(dāng)用戶執(zhí)行登錄操作時(shí),實(shí)際上向后端發(fā)送了一條SQL請(qǐng)求以確認(rèn)身份。SQL注入漏洞的本質(zhì):后端代碼執(zhí)行過程中,將用戶輸入的數(shù)據(jù)也當(dāng)作代碼來執(zhí)行,違背代碼和數(shù)據(jù)分離原則SQL注入漏洞有兩個(gè)關(guān)鍵條件:用戶能控制輸入的內(nèi)容;

后端對(duì)前端傳遞過來的數(shù)據(jù)沒有過濾,或過濾不嚴(yán)謹(jǐn);5.6.1SQL注入攻擊原理步驟:攻擊者在Web表單(POST、GET)、域名或URL頁面請(qǐng)求中插入針對(duì)性構(gòu)造的特殊SQL命令;Web服務(wù)器缺少對(duì)用戶輸入的合法性判斷;服務(wù)器端執(zhí)行含有惡意SQL代碼的請(qǐng)求;執(zhí)行未經(jīng)授權(quán)的數(shù)據(jù)庫(kù)操作,如增加、刪除、查詢、修改操作如用戶輸入:username='OR'1'='1'--和password='OR'1'='1'--,在這個(gè)情況下,構(gòu)造的SQL查詢語句將變成:SELECT*FROMusersWHEREusername=''OR'1'='1'--'ANDpassword=''OR'1'='1'SQL注入攻擊危害(1)數(shù)據(jù)庫(kù)數(shù)據(jù)泄露:攻擊者可以通過注入惡意SQL語句來訪問、檢索或刪除數(shù)據(jù)庫(kù)中的敏感信息。(2)身份驗(yàn)證繞過:攻擊者可以利用SQL注入來繞過身份驗(yàn)證,以管理員或其他特權(quán)用戶的身份執(zhí)行操作。(3)數(shù)據(jù)篡改:攻擊者可以修改數(shù)據(jù)庫(kù)中的數(shù)據(jù),從而對(duì)應(yīng)用程序的正常功能造成破壞。(4)拒絕服務(wù)攻擊:通過執(zhí)行惡意的SQL查詢,攻擊者可以耗盡數(shù)據(jù)庫(kù)資源,導(dǎo)致拒絕服務(wù)。SQL注入漏洞檢測(cè)技術(shù)主要分為白盒和黑盒兩種測(cè)試技術(shù)白盒測(cè)試技術(shù)需要獲取源代碼來發(fā)掘程序代碼中可能存在的SQL注入漏洞,常用的技術(shù)包括約束生成和求解、符號(hào)執(zhí)行、數(shù)據(jù)流分析等方法。黑盒技術(shù)無需獲取源代碼,通過使用自動(dòng)化的SQL注入掃描器發(fā)現(xiàn)漏洞,是使用較為廣泛的方法。自動(dòng)的SQL注入工具:Sqlmap,Pangolin,Havij,SQLIer,SQLID……為了保障網(wǎng)絡(luò)安全,建議定期進(jìn)行安全漏洞檢測(cè)和修復(fù)。但切記使用這些工具時(shí),必須遵守相關(guān)法律法規(guī)和道德標(biāo)準(zhǔn),不得用于非法活動(dòng)。預(yù)防SQL注入攻擊使用參數(shù)化的SQL查詢語句,確保用戶輸入的數(shù)據(jù)不會(huì)被解釋為SQL代碼的一部分。如:SELECT*FROMEmployeesWHEREDepartment=@Department在程序中對(duì)用戶輸入進(jìn)行有效的驗(yàn)證和過濾,只允許預(yù)期的數(shù)據(jù)類型和格式。例如,限制輸入長(zhǎng)度、使用正則表達(dá)式驗(yàn)證等。給予數(shù)據(jù)庫(kù)用戶最小必要的權(quán)限,限制其對(duì)數(shù)據(jù)庫(kù)的訪問范圍。不要向用戶顯示詳細(xì)的錯(cuò)誤信息,特別是關(guān)于數(shù)據(jù)庫(kù)結(jié)構(gòu)和查詢的信息。開發(fā)人員應(yīng)采用安全編碼實(shí)踐,避免拼接字符串來構(gòu)建SQL查詢。檢測(cè)和阻止SQL注入攻擊使用Web應(yīng)用程序防火墻(WAF)來檢測(cè)和阻止可能的SQL注入攻擊;針對(duì)SQL查詢的執(zhí)行引入異常處理機(jī)制,以捕獲和處理執(zhí)行過程中的異常情況,防止詳細(xì)錯(cuò)誤信息泄露給攻擊者;對(duì)應(yīng)用程序進(jìn)行定期的安全審計(jì),包括對(duì)數(shù)據(jù)庫(kù)查詢的檢查,以發(fā)現(xiàn)和修復(fù)潛在的SQL注入漏洞。;使用自動(dòng)化的漏洞掃描工具來定期掃描應(yīng)用程序,以識(shí)別潛在的SQL注入漏洞;及時(shí)應(yīng)用數(shù)據(jù)庫(kù)系統(tǒng)和應(yīng)用程序框架的安全更新和修補(bǔ),以防止已知漏洞被利用。5.6.2SQL注入攻擊方法第一步:SQL注入點(diǎn)探測(cè)。第二步:收集后臺(tái)數(shù)據(jù)庫(kù)信息。第三步:猜解后端數(shù)據(jù)庫(kù)結(jié)構(gòu)。第四步:尋找Web后臺(tái)管理入口或其他敏感信息。5.6.3SQL注入攻擊檢測(cè)技術(shù)(1)基于規(guī)則匹配的檢測(cè)方法基于規(guī)則匹配的檢測(cè)方法是一種用于檢測(cè)SQL注入攻擊的常用技術(shù)。這種方法主要通過匹配已知的SQL注入模式或特征來檢測(cè)潛在的注入點(diǎn)?;谝?guī)則匹配的檢測(cè)方法具有簡(jiǎn)單、快速的特點(diǎn),但也有一些局限性。例如,它可能無法檢測(cè)到未知的注入模式或復(fù)雜的注入技巧。此外,需要提前構(gòu)建知識(shí)規(guī)則庫(kù)。如果規(guī)則定義不當(dāng)或不完整,可能會(huì)產(chǎn)生誤報(bào)或漏報(bào)的情況。5.6.3SQL注入攻擊檢測(cè)技術(shù)(2)基于網(wǎng)絡(luò)爬蟲技術(shù)的檢測(cè)網(wǎng)絡(luò)爬蟲是一種自動(dòng)的訪問網(wǎng)頁元素程序?;谂老x的SQL注入自動(dòng)化檢測(cè)的思想是將網(wǎng)絡(luò)爬蟲技術(shù)和Fuzzing技術(shù)結(jié)合,實(shí)現(xiàn)自動(dòng)化與智能化SQL注入檢測(cè)?;诰W(wǎng)絡(luò)爬蟲技術(shù)的SQL注入漏洞檢測(cè)具有自動(dòng)化、高效的特點(diǎn),能夠快速檢測(cè)出潛在的注入點(diǎn)。然而,這種方法也可能存在誤報(bào)或漏報(bào)的情況,并且對(duì)于復(fù)雜的注入技巧或隱藏的注入點(diǎn)可能無法檢測(cè)到。5.6.3SQL注入攻擊檢測(cè)技術(shù)(3)基于動(dòng)態(tài)分析的檢測(cè)方法基于動(dòng)態(tài)分析的SQL注入漏洞檢測(cè)是一種通過觀察應(yīng)用程序在運(yùn)行時(shí)的行為來檢測(cè)SQL注入漏洞的方法。這種方法通過執(zhí)行一系列的輸入并觀察應(yīng)用程序的響應(yīng)來判斷是否存在SQL注入漏洞。基于動(dòng)態(tài)分析的SQL注入漏洞檢測(cè)能夠檢測(cè)到隱藏的注入點(diǎn),并且能夠根據(jù)應(yīng)用程序的實(shí)際行為進(jìn)行準(zhǔn)確的判斷。然而,這種方法需要執(zhí)行應(yīng)用程序并觀察其響應(yīng),因此可能需要較長(zhǎng)的時(shí)間和資源。此外,對(duì)于一些復(fù)雜的注入技巧或隱藏的注入點(diǎn),可能仍然存在誤報(bào)或漏報(bào)的情況。5.6.3SQL注入攻擊檢測(cè)技術(shù)(4)基于污點(diǎn)分析技術(shù)的漏洞檢測(cè)方法基于污點(diǎn)分析技術(shù)的SQL注入漏洞檢測(cè)方法是一種通過追蹤應(yīng)用程序中數(shù)據(jù)流來檢測(cè)SQL注入漏洞的方法。這種方法利用污點(diǎn)跟蹤技術(shù),標(biāo)記應(yīng)用程序中的輸入數(shù)據(jù),并觀察這些數(shù)據(jù)在應(yīng)用程序中的傳播和變化?;谖埸c(diǎn)分析技術(shù)的SQL注入漏洞檢測(cè)方法能夠準(zhǔn)確地檢測(cè)到潛在的注入點(diǎn),并給出詳細(xì)的上下文信息。然而,這種方法需要深入了解應(yīng)用程序的數(shù)據(jù)流和內(nèi)部結(jié)構(gòu),并且需要仔細(xì)配置和調(diào)整以獲得最佳效果。此外,對(duì)于一些復(fù)雜的注入技巧或隱藏的注入點(diǎn),可能仍然存在誤報(bào)或漏報(bào)的情況。5.6.4常見的SQL注入攻擊方式1.聯(lián)合查詢注入在UNION操作中注入額外的SQL語句,將結(jié)果合并到原始查詢中,從而獲取未經(jīng)授權(quán)的數(shù)據(jù)例如:應(yīng)用程序的查詢可能類似于:SELECTproduct_id,product_name,priceFROMproductsWHEREcategory_id='用戶輸入';攻擊者可能嘗試構(gòu)造一個(gè)惡意的輸入,例如:1'UNIONSELECT1,username,passwordFROMusers;--,SELECTproduct_id,product_name,priceFROMproductsWHEREcategory_id='1'UNIONSELECT1,username,passwordFROMusers;--'5.6.4常見的SQL注入攻擊方式2.盲注(1)布爾盲注

當(dāng)Web頁面僅返回True和False(布爾值),那么就可以利用布爾盲注,根據(jù)頁面返回的True或者是False判斷SQL語句的猜解是否正確,從而獲得后端數(shù)據(jù)庫(kù)的信息。布爾盲注一般適用于頁面沒有回顯字段(不支持聯(lián)合查詢),且web頁面返回True或者false。構(gòu)造SQL語句,利用and,or等關(guān)鍵字使其后的語句的值為True或False,從而使web頁面返回True或False,達(dá)到注入的目的來獲取信息

5.6.4常見的SQL注入攻擊方式2.盲注(2)時(shí)間盲注時(shí)間盲注又稱延遲注入,它提交對(duì)執(zhí)行時(shí)間敏感的函數(shù)sql語句,通過執(zhí)行時(shí)間的長(zhǎng)短來判斷是否執(zhí)行成功,假設(shè)一個(gè)簡(jiǎn)單的用戶身份驗(yàn)證查詢語句:SELECT*FROMusersWHEREusername='輸入的用戶名'ANDpassword='輸入的密碼’;攻擊者可能嘗試在用戶名字段中輸入:admin'ANDIF(1=1,SLEEP(5),0)--這個(gè)查詢時(shí)出現(xiàn)5秒的延遲,攻擊者可以確定條件為真,即用戶名是admin

5.6.4常見的SQL注入攻擊方式3.報(bào)錯(cuò)注入構(gòu)造惡意的SQL,觸發(fā)數(shù)據(jù)庫(kù)報(bào)錯(cuò),而在報(bào)錯(cuò)信息中就存在著我們想要的信息假設(shè)一個(gè)簡(jiǎn)單的用戶身份驗(yàn)證查詢語句:Floor()報(bào)錯(cuò)注入例如:

SELECT*FROMproductsWHEREprice=FLOOR((用戶輸入的價(jià)格));構(gòu)造:SELECT*FROMproductsWHEREprice=FLOOR((1);SELECT*FROMusersWHEREusername='admin'--));updatexml報(bào)錯(cuò)注入利用數(shù)據(jù)庫(kù)的updatexml函數(shù)來導(dǎo)致錯(cuò)誤,以獲取敏感信息。這個(gè)函數(shù)通常用于更新XML字段中的數(shù)據(jù)。updatexml(xml_document,xpath_string,new_value)extractvalue報(bào)錯(cuò)注入extractvalue(xml_document,xpath_string),第一個(gè)參數(shù)可以傳入目標(biāo)xml文檔,第二個(gè)參數(shù)是用Xpath路徑法表示的查找路徑,作用是從目標(biāo)XML中返回包含所查詢值的字符串。例如:語句SELECTExtractValue('<a><b>ccc</b></a>','/a/b');的執(zhí)行結(jié)果為:ccc。報(bào)錯(cuò)注入的用法,與updatexml相似5.6.4常見的SQL注入攻擊方式4.堆疊注入將語句堆疊在一起進(jìn)行查詢。mysql_multi_query()支持多條sql語句同時(shí)執(zhí)行,語句間以分號(hào)(;)分隔,在;結(jié)束一個(gè)SQL語句后繼續(xù)構(gòu)造下一條語句,兩條語句會(huì)一起執(zhí)行,這就是堆疊注入例如:SELECT*FROMusersWHEREusername='用戶輸入1'ANDpassword='用戶輸入2’,構(gòu)造:

SELECT*FROMusersWHEREusername='';INSERTINTOusers(username,password)VALUES('attacker','hacked')--'ANDpassword='';5.6.5防范SQL注入關(guān)鍵措施1.參數(shù)化查詢:使用參數(shù)化查詢語句而不是字符串拼接。這樣可以確保用戶輸入的數(shù)據(jù)不會(huì)被解釋為SQL代碼的一部分,而是作為參數(shù)傳遞到查詢中。2.輸入驗(yàn)證和過濾:對(duì)用戶輸入進(jìn)行有效的驗(yàn)證和過濾,確保只允許預(yù)期的數(shù)據(jù)類型和格式。使用白名單驗(yàn)證來限制用戶輸入的字符集,拒絕不合法的輸入。3.ORM(對(duì)象關(guān)系映射)使用ORM庫(kù),它們通常會(huì)自動(dòng)處理參數(shù)化查詢,減少手動(dòng)拼接SQL語句的機(jī)會(huì)。5.6.5防范SQL注入關(guān)鍵措施4.最小權(quán)限原則:為數(shù)據(jù)庫(kù)用戶分配最小必要的權(quán)限,以降低潛在攻擊者的影響范圍。5.錯(cuò)誤處理在生產(chǎn)環(huán)境中限制詳細(xì)錯(cuò)誤信息的顯示,確保不向用戶泄露敏感的數(shù)據(jù)庫(kù)結(jié)構(gòu)和查詢信息。將錯(cuò)誤信息記錄到日志中,以便審計(jì)和調(diào)試。6.使用存儲(chǔ)過程將SQL邏輯封裝在存儲(chǔ)過程中,這樣可以減少直接執(zhí)行SQL查詢的機(jī)會(huì)。5.6.5防范SQL注入關(guān)鍵措施7.Web應(yīng)用程序防火墻(WAF)使用WAF來檢測(cè)和防御SQL注入攻擊。WAF可以根據(jù)已知的攻擊模式和特征來攔截潛在的注入嘗試。8.會(huì)話管理和憑證存儲(chǔ)使用安全的會(huì)話管理和憑證存儲(chǔ)機(jī)制,確保用戶身份驗(yàn)證和授權(quán)信息的安全性,防止攻擊者通過SQL注入繞過身份驗(yàn)證。9.定期審計(jì)和漏洞掃描定期審計(jì)應(yīng)用程序的代碼和數(shù)據(jù)庫(kù)訪問邏輯,使用漏洞掃描工具來發(fā)現(xiàn)潛在的SQL注入漏洞。10.安全編碼實(shí)踐在開發(fā)過程中采用安全編碼實(shí)踐,避免拼接字符串來構(gòu)建SQL查詢。使用框架和庫(kù),以減少手動(dòng)處理SQL查詢的機(jī)會(huì)。5.7跨站腳本攻擊(XSS)XSS(Cross-SiteScripting)攻擊稱為跨站腳本攻擊。是指攻擊者在Web頁面中提交惡意腳本,當(dāng)用戶瀏覽包含惡意腳本的頁面時(shí),在不知情的情況下執(zhí)行該腳本,導(dǎo)致被攻擊的行為。攻擊成功后,攻擊者可能得到更高的權(quán)限(如執(zhí)行一些操作)、保密的網(wǎng)頁信息、會(huì)話和Cookie等各種內(nèi)容。與SQL注入類似,XSS也是利用提交惡意信息來實(shí)現(xiàn)攻擊的行為。但是XSS一般提交的是Javascript腳本,運(yùn)行在Web前端,也就是用戶的瀏覽器;而SQL注入提交的SQL指令是在后臺(tái)數(shù)據(jù)庫(kù)服務(wù)器執(zhí)行。所以兩者攻擊的對(duì)象是不一樣。5.7.1XSS分類1.反射型XSS反射型XSS中,攻擊者通過構(gòu)造惡意的URL,將腳本注入到用戶的瀏覽器中,然后由瀏覽器執(zhí)行。該攻擊類型得名于惡意腳本“反射”到用戶的瀏覽器,而不是存儲(chǔ)在目標(biāo)網(wǎng)站的數(shù)據(jù)庫(kù)中,又稱非持續(xù)性XSS。5.7.1XSS分類2存儲(chǔ)型XSS存儲(chǔ)型XSS,又稱持續(xù)性跨站腳本攻擊。在此類攻擊中,腳本被存儲(chǔ)在目標(biāo)網(wǎng)站的數(shù)據(jù)庫(kù)中,然后在用戶請(qǐng)求頁面時(shí)從數(shù)據(jù)庫(kù)中檢索并傳遞給用戶的瀏覽器執(zhí)行。5.7.1XSS分類3.DOM型XS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論