版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Web XSS漏洞安全技術概述技術創(chuàng)新 變革未來XSS漏洞什么是XSSXSS(cross site script)或者說跨站腳本是一種Web應用程序的漏洞,惡意攻擊者往Web頁面里插入惡意Script代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的Script代碼會被執(zhí)行,從而達到惡意攻擊用戶的目的??缯灸_本漏洞風險盜取用戶cookie,然后偽造用戶身份登錄,泄漏用戶個人身份及用戶訂單信息。操控用戶瀏覽器,借助其他漏洞可能導致對https加密信息的破解,導致登錄傳輸存在安全風險。結合瀏覽器及其插件漏洞,下載病毒木馬到瀏覽者的計算機上執(zhí)行。修改頁面內(nèi)容,產(chǎn)生釣魚攻擊效果,例如偽造登錄框獲取用戶明文
2、帳號密碼。存儲式XSS漏洞存儲式XSS漏洞通過本知識域,我們會:存儲式XSS的概念了解什么是存儲式XSS了解存儲式XSS漏洞對安全的影響存儲式XSS的檢測了解存儲式XSS漏洞的特征和檢測方式掌握存儲式XSS的危害存儲式XSS的安全防護掌握修復存儲式XSS漏洞的方法了解常用WEB漏洞掃描工具對存儲式XSS漏洞掃描方法什么是存儲式XSS存儲式XSS,持久化,代碼是存儲在服務器中的。存儲式XSS是當不可信的用戶輸入被處理并在沒有任何驗證的情況下保存在文件或數(shù)據(jù)庫,同時該不可信的數(shù)據(jù)從存儲中被獲取然后在沒有編碼或轉義的情況下反射回響應文中,導致了永久性的每次存儲數(shù)據(jù)反射回響應文代碼就會在瀏覽器中執(zhí)行的
3、一種XSS漏洞。存儲式XSS的影響有:通過javascript獲取用戶的cookie,根據(jù)這個cookie竊取用戶信息重定向網(wǎng)站到一個釣魚網(wǎng)站重新更改頁面內(nèi)容,假裝讓客戶輸入用戶名,密碼,然后提交到黑客的服務器生成蠕蟲,迅速擴散到整個網(wǎng)站用戶(微博等)參考:/articles/web/19408.html如何檢測存儲式XSS攻擊者向被攻擊頁面寫入惡意代碼的方法很多,最常見的就是在論壇或留言本中發(fā)帖時將html代碼寫入到被攻擊頁面中,此外在用戶資料修改、簽名、聯(lián)系方式等地方也是攻擊者寫入html代碼常用的地方,如果被攻擊頁面對用戶輸入過濾不嚴的話,就可以被攻擊者寫入類似如下的一段代碼。alert
4、(1)由于攻擊者輸入惡意數(shù)據(jù)保存在數(shù)據(jù)庫,再由服務器腳本程序從數(shù)據(jù)庫中讀取數(shù)據(jù)。所以大部分的存儲型XSS漏洞都是在表單提交上會發(fā)生的。針對這種特性,我們需要做的就是在程序任何有可能提交表單上進行驗證。如何檢測存儲式XSS(續(xù))傳統(tǒng)測試方式:alert(1)任意可以輸入的地方,使用上面代碼嘗試是否可以有如下的彈窗:這個是最簡單的XSS檢測方式如何檢測存儲式XSS(續(xù))img標簽屬性跨站第一種方法受挫后,黑客可能嘗試利用img標簽。結果是與之前相同如何檢測存儲式XSS(續(xù))DIV標簽屬性跨站img標簽外,DIV標簽也可以利用。同樣也是圖片載入結果是與之前相同如何檢測存儲式XSS(續(xù))HTML標簽屬
5、性的一些特點javascript字符被過濾了,我們也可以用其它方法:通過構造錯誤屬性,讓瀏覽器執(zhí)行特定的javascript代碼。即使這種方式被防住,我們也可以使用自行構造事件除了font, 還有table,a,ul等標簽也可以利用如何檢測存儲式XSS(續(xù))利用insertAjacentHTMLjavascript字符被過濾了,我們也可以用其它方法:通過構造錯誤屬性,讓瀏覽器執(zhí)行特定的javascript代碼。即使這種方式被防住,我們也可以使用自行構造事件除了font, 還有table,a,ul等標簽也可以利用如何防范存儲式XSS整個構成如下:用戶輸入數(shù)據(jù)傳遞服務器解析接收內(nèi)容數(shù)據(jù)傳遞用戶訪問
6、用戶訪問請求數(shù)據(jù)返回數(shù)據(jù)返回數(shù)據(jù)解析數(shù)據(jù)庫返回內(nèi)容瀏覽器解析數(shù)據(jù)黑客如何防范存儲式XSS(續(xù))瀏覽器解析順序:HTML語言CSS語言JavaScript語言瀏覽器解碼順序:HTML編碼URL編碼JavaScript編碼如何防范存儲式XSS(續(xù))第一是對用戶輸入的特殊字符進行轉譯對HTML中不可信字符串進行HTML轉義。&/對于HTML屬性中不可信字符串進行HTML轉義,并且總是為你的屬性加上引號,無論是( 或“ ),不要使用反引號( )。除了字母數(shù)字字符,用格式(或者命名實體,如果可用)轉義所有ASCII值小于256的字符以防止開關的值伸出屬性。恰當?shù)臑閷傩约由弦柨梢灾槐粚囊栟D義。不帶
7、引號的屬性可以被分解為許多個字符,包括和。如何防范存儲式XSS(續(xù))對于事件觸發(fā)屬性中的不可信字符串,先進行JavaScript轉義,然后執(zhí)行HTML轉義,因為瀏覽器在執(zhí)行JavaScript字符串解碼前執(zhí)行HTML屬性解碼。對于JavaScript中的非可信數(shù)據(jù),進行JavaScript字符串轉義并且總是將屬性加上引號,無論是( 或“ ),但不要使用反引號( )除了字母數(shù)字字符,以格式轉義小于256的所有字符,以防開關的值伸到腳本中或另一個屬性。不要使用類似的轉義符號,因為引號符號可能被HTML屬性解析器在第一次運行被匹配。這些轉義字符也容易受到”轉義已轉義”的攻擊,攻擊者發(fā)送和漏洞代碼轉為
8、使得可以成為引號。如果事件觸發(fā)屬性被正確引號,需要通過相應的引號來閉合。不帶引號的屬性可以被分割為許多字符,包括另外,一個閉合標簽可以閉合腳本塊,即使它是一個帶引號的字符串。需要注意的是,HTML解析器在JavaScript解析器如何防范存儲式XSS(續(xù))對HTML屬性中的URL路徑進行轉義而不是完整的URL??偸菫閷傩约由弦?,無論是( 或“ ),但不要使用反引號( )。絕不允許或包含格式像或或者他們的組合(如)。除了字母數(shù)字字符, 用格式轉義所有ASCII值小于256的字符。如果或屬性被正確的引號起來,突破需要對應的引號。未被引號屬性可以使用許多字符進行突破,包括和。請注意,這種情況下,實
9、體編碼是無用的。如何防范存儲式XSS(續(xù))對HTML樣式屬性內(nèi)的不可信字符串先做CSS字符串轉義,然后進行HTML轉義,因為解析器的解析順序是先HTML解析器然后再CSS解析器??偸墙o你的屬性加上引號,如本例子中的風格屬性加上( “ ) ,CSS字符串加上( ) ,不要使用反引號( )。為在CSS中的不可信字符串做CSS字符串轉義。也要確保不可信字符串在引號( 或“ ) 之間,不要使用反引號( )。也不要允許expression以及它的復雜組合,如(expre/*/ssion)。除了字母數(shù)字字符, 用格式轉義所有ASCII值小于256的字符。不要使用任何類似的轉義符號,因為引號符號可能被HTM
10、L屬性解析器在第一次運行被匹配。這些轉義字符也容易受到”轉義已轉義”的攻擊,攻擊者發(fā)送和漏洞代碼轉為使得可以成為引號。如果屬性被正確引號,需要通過相應的引號來閉合。不帶引號的屬性可以被分割為許多字符,包括。同時, 標簽會關閉風格塊,即使是在一個被引號的字符串內(nèi)。請注意,HTML解析器在CSS解析器前運行。如何防范存儲式XSS(續(xù))對于JavaScript字符串中不可信的HTML,先執(zhí)行HTML轉義,然后執(zhí)行JavaScript字符串轉義,保持這個順序。創(chuàng)建個Web應用程序應該允許的來自用戶的標簽和屬性的白名單。黑名單可以很容易的被繞過。使用UTF-8為默認的字符編碼以及設置content為te
11、xt/html不要將用戶可以控制的文本放在標簽前。通過使用不同的字符集注射可以導致XSS。使用告訴你的瀏覽器遵循標準進行HTML,CSS的渲染以及如何執(zhí)行常用WEB漏洞掃描工具對存儲式XSS漏洞掃描方法snucksnuck是一款自動化的漏洞掃描工具,它可以幫助你掃描Web應用中存在的XSS漏洞。snuck基于Selenium開發(fā),并且支持Firefox、Chrome和IE瀏覽器。snuck與傳統(tǒng)的Web安全掃描工具有顯著的區(qū)別,它會嘗試利用特殊的注入向量來破壞網(wǎng)站的XSS過濾器,并通過這種方法提高漏洞的檢出成功率。基本上說,snuck所采用的檢測方法與iSTAR漏洞掃描工具的檢測方法較為相似,
12、但snuck針對的是特定的XSS過濾器。通常都是利用收集的各類XSSpayloads來進行嘗試實驗(1)進行簡單的XSS,在其他人訪問時會彈出你的名字。步驟1. 編寫彈出你名字的script代碼步驟2. 嘗試插入到輸入框步驟3. 用其它方式繞過前臺驗證最后確認實驗(2)嘗試讓其他人自動提交步驟1. 編寫自動提交代碼的script步驟2. 嘗試插入到輸入框步驟3. 用其它方式繞過前臺驗證最后確認反射式XSS漏洞反射式XSS漏洞通過本知識域,我們會:反射式XSS的概念了解什么是反射式XSS了解反射式XSS漏洞與存儲式XSS漏洞的區(qū)別反射式XSS的利用與修復了解反射式XSS漏洞的觸發(fā)形式了解反射式X
13、SS漏洞的利用方式掌握反射式XSS漏洞檢測和修復方法反射式XSS反射式XSS一般是提交信息的一部分內(nèi)容通過服務器解析后反饋到瀏覽器,而不存儲到服務器。與存儲式XSS不同的是,不能存儲在服務器中攻擊方法一般都是構造了有惡意代碼的鏈接(一般都是可信度高的網(wǎng)站)發(fā)送給受害者,受害者點擊后會執(zhí)行注入的XSS代碼。反射式XSS利用流程提供鏈接服務器解析接收內(nèi)容點擊鏈接點擊鏈接返回數(shù)據(jù)如何觸發(fā)反射式XSS構造有問題的鏈接http:/dvwa/vulnerabilities/xss_r/?name=a%3Cscript%3Ealert%281%29%3C%2Fscript%3E發(fā)送給受害者受害者打開頁面服務
14、器解析了地址,然后返回給用戶用戶收到有scirpt注入的頁面受害者瀏覽器根據(jù)script內(nèi)容運行反射式XSS的檢測與修復基本原理:就是通過給別人發(fā)送帶有惡意腳本代碼參數(shù)的URL,當URL地址被打開時,特定的代碼參數(shù)會被HTML解析,執(zhí)行,如此就可以獲取用戶的COOIKE,進而盜號登陸。檢測與修復方式與存儲行XSS類似。區(qū)別僅僅是不能存儲到服務端。反射式XSS利用流程提供鏈接服務器解析接收內(nèi)容點擊鏈接點擊鏈接返回數(shù)據(jù)如何防范XSS瀏覽器解析順序:HTML語言CSS語言JavaScript語言瀏覽器解碼順序:HTML編碼URL編碼JavaScript編碼如何防范XSS(續(xù))第一是對用戶輸入的特殊字
15、符進行轉譯對HTML中不可信字符串進行HTML轉義。&/對于HTML屬性中不可信字符串進行HTML轉義,并且總是為你的屬性加上引號,無論是( 或“ ),不要使用反引號( )。除了字母數(shù)字字符,用格式(或者命名實體,如果可用)轉義所有ASCII值小于256的字符以防止開關的值伸出屬性。恰當?shù)臑閷傩约由弦柨梢灾槐粚囊栟D義。不帶引號的屬性可以被分解為許多個字符,包括和。如何防范XSS(續(xù))對于事件觸發(fā)屬性中的不可信字符串,先進行JavaScript轉義,然后執(zhí)行HTML轉義,因為瀏覽器在執(zhí)行JavaScript字符串解碼前執(zhí)行HTML屬性解碼。對于JavaScript中的非可信數(shù)據(jù),進行Ja
16、vaScript字符串轉義并且總是將屬性加上引號,無論是( 或“ ),但不要使用反引號( )除了字母數(shù)字字符,以格式轉義小于256的所有字符,以防開關的值伸到腳本中或另一個屬性。不要使用類似的轉義符號,因為引號符號可能被HTML屬性解析器在第一次運行被匹配。這些轉義字符也容易受到”轉義已轉義”的攻擊,攻擊者發(fā)送和漏洞代碼轉為使得可以成為引號。如果事件觸發(fā)屬性被正確引號,需要通過相應的引號來閉合。不帶引號的屬性可以被分割為許多字符,包括另外,一個閉合標簽可以閉合腳本塊,即使它是一個帶引號的字符串。需要注意的是,HTML解析器在JavaScript解析器如何防范XSS(續(xù))對HTML屬性中的URL
17、路徑進行轉義而不是完整的URL。總是為屬性加上引號,無論是( 或“ ),但不要使用反引號( )。絕不允許或包含格式像或或者他們的組合(如)。除了字母數(shù)字字符, 用格式轉義所有ASCII值小于256的字符。如果或屬性被正確的引號起來,突破需要對應的引號。未被引號屬性可以使用許多字符進行突破,包括和。請注意,這種情況下,實體編碼是無用的。如何防范XSS(續(xù))對HTML樣式屬性內(nèi)的不可信字符串先做CSS字符串轉義,然后進行HTML轉義,因為解析器的解析順序是先HTML解析器然后再CSS解析器。總是給你的屬性加上引號,如本例子中的風格屬性加上( “ ) ,CSS字符串加上( ) ,不要使用反引號( )
18、。為在CSS中的不可信字符串做CSS字符串轉義。也要確保不可信字符串在引號( 或“ ) 之間,不要使用反引號( )。也不要允許expression以及它的復雜組合,如(expre/*/ssion)。除了字母數(shù)字字符, 用格式轉義所有ASCII值小于256的字符。不要使用任何類似的轉義符號,因為引號符號可能被HTML屬性解析器在第一次運行被匹配。這些轉義字符也容易受到”轉義已轉義”的攻擊,攻擊者發(fā)送和漏洞代碼轉為使得可以成為引號。如果屬性被正確引號,需要通過相應的引號來閉合。不帶引號的屬性可以被分割為許多字符,包括。同時, 標簽會關閉風格塊,即使是在一個被引號的字符串內(nèi)。請注意,HTML解析器在
19、CSS解析器前運行。如何防范XSS(續(xù))對于JavaScript字符串中不可信的HTML,先執(zhí)行HTML轉義,然后執(zhí)行JavaScript字符串轉義,保持這個順序。創(chuàng)建個Web應用程序應該允許的來自用戶的標簽和屬性的白名單。黑名單可以很容易的被繞過。使用UTF-8為默認的字符編碼以及設置content為text/html不要將用戶可以控制的文本放在標簽前。通過使用不同的字符集注射可以導致XSS。使用告訴你的瀏覽器遵循標準進行HTML,CSS的渲染以及如何執(zhí)行反射式XSS漏洞實驗(1)編寫一個簡單的鏈接,彈出14/dvwa/vulnerabilities/xss_r/?name=a%3Cscri
20、pt%3Ealert%281%29%3C%2Fscript%3E#反射式XSS漏洞實驗(2)編寫一個鏈接,可以提交其它頁面的POST數(shù)據(jù)。在Vulnerability: Stored Cross Site Scripting (XSS)頁面多一條記錄:name為你自己的名字Message為你學的課程名DOM式XSS漏洞DOM式XSS漏洞通過本知識域,我們會:DOM式XSS的特點了解什么是DOM式XSS漏洞掌握DOM式XSS漏洞的觸發(fā)形式DOM式XSS的防御掌握DOM式XSS漏洞的檢測方法掌握DOM式XSS漏洞的修復方法DOM式XSS的特點此類漏洞也是不存儲在服務器里的。此類漏洞不需要服務器進行
21、任何解析漏洞是利用js代碼中提取了url地址中的部分內(nèi)容JS中下面代碼可以提取URL地址document.location.href只要網(wǎng)站的代碼中有這類代碼或類似的取URL內(nèi)容的代碼,就可能會有DOM式的XSS漏洞觸發(fā)形式跟反射式XSS類似,也是需要訪問頁面DOM式XSS漏洞的檢測與修復方式與之前兩類XSS漏洞不同的是:漏洞發(fā)生原因跟服務器解析無關,存粹是JS代碼讀取了URL內(nèi)容因此檢測JS代碼:document.locationdocument.URLdocument.referrer或其它類似的修復方式主要是JS代碼過濾寫入頁面前先轉義慎用危險的“eval”編寫安全的函數(shù)方法,從看似“可
22、靠”的數(shù)據(jù)源獲取參數(shù)值參考/使用filter.js庫DOM式XSS漏洞實驗(1)編寫一個簡單的鏈接,彈出14/dvwa/vulnerabilities/xss_d/?default=Englishalert(1)DOM式XSS漏洞實驗(2)編寫一個鏈接,可以提交其它頁面的POST數(shù)據(jù)。在Vulnerability: Stored Cross Site Scripting (XSS)頁面多一條記錄:name為你自己的名字Message為你學的課程名XSS實驗集合實驗1:入門要求:注入-彈出“Hello World!“頁面:/xssmh/challenges/challenge0.php過濾:無請求:GET答案:alert(Hello World!);實驗2: 繞過簡單過濾要求:注入-彈出“Hello World!“頁面http:/xssmh/challenges/challenge1.php過濾:單引號,雙引號請求:G
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年河南工業(yè)職業(yè)技術學院高職單招職業(yè)適應性測試近5年??及鎱⒖碱}庫含答案解析
- 2025年江西水利職業(yè)學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 專題03 句子(第3期)
- 專題04 世界古代史(易混易錯點)
- 簽訂二手房買賣合同注意事項
- 民法租賃合同
- 安裝燈具合同范本
- 裝修工人員工勞動合同
- 渣土運輸工程合同
- 直播銷售策劃合同
- 2025年人教五四新版八年級物理上冊階段測試試卷含答案
- 2025新人教版英語七年級下單詞表(小學部分)
- 2025年春季1530安全教育記錄主題
- 礦山2025年安全工作計劃
- 2025年包裝印刷項目可行性研究報告
- 給客戶的福利合同(2篇)
- T-WAPIA 052.3-2023 無線局域網(wǎng)設備技術規(guī)范 第3部分:接入點和控制器
- 運動技能學習與控制完整
- Unit4MyfamilyStorytime(課件)人教新起點英語三年級下冊
- 財務管理專業(yè)《生產(chǎn)實習》教學大綱
- 一年級口算天天練(可直接打印)
評論
0/150
提交評論