成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

XSS攻擊實(shí)踐

社區(qū)管理員 / 746人閱讀

一、前言

由于瀏覽器同源策略,限制了頁面無法引用第三方資源,無法請求不同源下面的資源,影響了web的發(fā)展,所以瀏覽器出讓了一些安全策略來滿足web的發(fā)展。

  • 通過CSP安全策略來保證瀏覽器可以安全的加載第三方資源;

  • 通過CORS允許瀏覽器跨域請求;

  • 通過PostMessage來操作DOM

但這些策略也給了黑客攻擊我們的站點(diǎn)的機(jī)會。

web站點(diǎn)常見的攻擊方式包括:XSS攻擊,CSRF攻擊、Sql注入攻擊等。

二、XSS攻擊

1、什么是XSS攻擊

XSS攻擊(跨站腳本攻擊),黑客通過網(wǎng)站的漏洞,將惡意腳本插入Html頁面,當(dāng)用戶打開站點(diǎn)時,由于惡意腳本和站點(diǎn)代碼擁有同樣的執(zhí)行權(quán)限,惡意腳本就有可能篡改站點(diǎn)內(nèi)容,竊取用戶信息發(fā)送到第三方服務(wù)器。

惡意代碼一般會做下面這些攻擊:

  • 獲取用戶Cookies

  • 修改用戶DOM,偽造登錄頁面

  • 生成浮窗廣告

  • 監(jiān)聽用戶輸入

2、XSS攻擊的分類

XSS攻擊常被分為三類:存儲型攻擊、反射型攻擊、基于DOM的XSS攻擊。

前兩種一般要經(jīng)過服務(wù)器,所以后端研發(fā)更需要注意,而最后一種沒有經(jīng)過服務(wù)器,是需要前端注意避免的。

1)存儲型攻擊

一個真實(shí)的案例就是:2015年烏云網(wǎng)爆出來的,喜瑪拉雅站點(diǎn),編輯上傳專輯名稱,未對錄入表單進(jìn)行過濾,黑客可以上傳惡意腳本到服務(wù)器。當(dāng)其他用戶點(diǎn)擊這張專輯的時候,就執(zhí)行了惡意腳本,惡意腳本獲取用戶的Cookies信息,上傳到黑客的服務(wù)器,然后就可以登錄用戶的站點(diǎn)。

第一步:輸入惡意腳本到站點(diǎn),沒有過濾,所以可以上傳到服務(wù)器

image.png 第二步:當(dāng)用戶打開了當(dāng)前頁面,執(zhí)行了惡意腳本,后端代碼沒有禁止第三方站點(diǎn)發(fā)出的請求,所以黑客就獲取了用戶的Cookies,接著就可以訪問用戶的站點(diǎn)或者調(diào)用站點(diǎn)的API

image.png

2)反射型攻擊

反射型XSS攻擊的常見模式是,黑客發(fā)現(xiàn)了網(wǎng)站存在將url的參數(shù)直接在頁面上顯示,并且沒有過濾的情況,于是黑客就構(gòu)造帶有惡意腳本的鏈接,誘導(dǎo)用戶點(diǎn)擊,當(dāng)用戶點(diǎn)擊了鏈接,就將惡意代碼注入到了頁面并執(zhí)行,從而獲取用戶信息等。

反射型攻擊案例:

頁面中又直接渲染html的變量,直接渲染html的,如下代碼,直接讀取url參數(shù)query, 在頁面展示,如果后端服務(wù)沒有經(jīng)過過濾,就有可能將query的代碼引入頁面中執(zhí)行,造成攻擊

image.png

image.png

3)基于DOM的XSS攻擊

該攻擊可以是一些流氓軟件或攻擊路由器,在http請求返回的過程中,在返回的數(shù)據(jù)中插入了惡意代碼,前端站點(diǎn)如果沒有過濾,就可能出現(xiàn)執(zhí)行惡意代碼的情況。

3、其他相關(guān)案例

1、頁面讀取html顯示,后端通過抓取郵件內(nèi)容,生成html,給到前端展示。由于郵件中可能存在一些非法標(biāo)簽,瀏覽器在解析中無法識別,就導(dǎo)致瀏覽器crash,常常使用插件或者js過濾,轉(zhuǎn)譯等。

2、給朋友發(fā)送一個頁面的腳本,其中alert了6次,并且獲取了瀏覽器Cookies

<!DOCTYPE html> <html lang="en">     <head>         <meta charset="UTF-8">         <title>攻擊測試</title>     </head>     <body>         <script>             window.onload = () => {                 document.cookie = "username=test"                 for(let i=0; i<=5; i++){                     alert(`你被攻擊了,我獲取了你的Cookies${document.cookie}`)                  }             }         </script>         你被攻擊了     </body> </html> 復(fù)制代碼

打開頁面后:

image.png 如果將其中的攻擊腳本插入用戶的頁面中,然后向第三方服務(wù)器發(fā)送cookies,這就構(gòu)成了XSS攻擊

三、模擬存儲型攻擊

我們來模擬下存儲型攻擊

1、前期準(zhǔn)備

一個惡意的腳本這里用Express搭建,端口9000

一個惡意服務(wù)

2、正常站點(diǎn)

另外啟動一個http服務(wù)器,為我們的正常站點(diǎn),端口8080。

假設(shè),這個的網(wǎng)站存在漏洞,沒有過濾參數(shù),惡意腳本上傳到了服務(wù)器

表單錄入

3、正常站點(diǎn)的另一個頁面

當(dāng)用戶打開另一個頁面,可以加載了前一步錄入的內(nèi)容,我們發(fā)現(xiàn)惡意腳本已經(jīng)執(zhí)行

打開站點(diǎn)

4、惡意腳本執(zhí)行

惡意腳本執(zhí)行

5、惡意服務(wù)后端獲取當(dāng)前站點(diǎn)Cookies

獲取Cookie

四、防止XSS攻擊的辦法

阻止XSS攻擊,要先知道XSS攻擊的原理:一般分為兩個步驟。

第一步:黑客找到站點(diǎn)的漏洞,想站點(diǎn)插入惡意腳本。

第二步:讀取站點(diǎn)的信息,發(fā)送到第三方服務(wù)器。

XSS攻擊主要有以下方法注入:

  • html中的script腳本

  • 凡事可以請求第三方數(shù)據(jù)的地方:標(biāo)簽的屬性Img的src屬性、a標(biāo)簽的href屬性、background:url()

  • js腳本的拼接特殊字符

對于后端來說,主要有以下幾處常常不可信:

  • 用戶輸入內(nèi)容

  • url參數(shù)

  • post參數(shù)

  • 第三方的鏈接

  • referere

  • Cookies

1、過濾關(guān)鍵字

對于存儲型XSS攻擊和反射型XSS攻擊,二者由于都需要過服務(wù)器,那么只要后端開發(fā)在入庫的時候最敏感代碼進(jìn)行過濾進(jìn)行過濾,就可以避免大部分的XSS攻擊。

2、前端框架和組件的使用

目前對于前端的大部分組件(富文本組件)和常見的Vue、React框架都對展示的數(shù)據(jù),只會展示以字符串進(jìn)行展示。

對于有可能嵌入惡意代碼的部分也貼心的增加了提示:

如在Vue中:

<div v-html="html"></div> 復(fù)制代碼

在React中:

<div dangerouslySetInnerHTML = {{__html:<div><script src="http://xxs.js"></script></div>}} ></div> 復(fù)制代碼

這些可能導(dǎo)致XSS攻擊的地方,框架都給了顯著的提示,所以在頁面顯示這些不可控的內(nèi)容前要進(jìn)行過濾。

3、嚴(yán)格執(zhí)行CSP策略

設(shè)置CSP,現(xiàn)在站點(diǎn)加載或發(fā)送請求到第三方服務(wù)器

4、給Cookie設(shè)置HttpOnly

給cookies設(shè)置了該屬性,當(dāng)前頁面重要的Cookie就無法通過js讀取,這樣黑客也就無法獲取用戶的信息


作者:前端中后臺
鏈接:https://juejin.cn/post/7041435485310287886
來源:稀土掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/127962.html

相關(guān)文章

  • xss注入實(shí)踐和防范

    摘要:劫持用戶是最常見的跨站攻擊形式,通過在網(wǎng)頁中寫入并執(zhí)行腳本執(zhí)行文件多數(shù)情況下是腳本代碼,劫持用戶瀏覽器,將用戶當(dāng)前使用的信息發(fā)送至攻擊者控制的網(wǎng)站或服務(wù)器中。預(yù)防將錄入的惡意標(biāo)簽進(jìn)行轉(zhuǎn)碼再存儲,主要在后端錄入的時候做。 xss定義 Cross Site Scripting的縮寫本來是CSS,但是這樣就跟Cascading Style Sheets的縮寫混淆了,所以使用XSS,使用字母X...

    Rango 評論0 收藏0
  • xss注入實(shí)踐和防范

    摘要:劫持用戶是最常見的跨站攻擊形式,通過在網(wǎng)頁中寫入并執(zhí)行腳本執(zhí)行文件多數(shù)情況下是腳本代碼,劫持用戶瀏覽器,將用戶當(dāng)前使用的信息發(fā)送至攻擊者控制的網(wǎng)站或服務(wù)器中。預(yù)防將錄入的惡意標(biāo)簽進(jìn)行轉(zhuǎn)碼再存儲,主要在后端錄入的時候做。 xss定義 Cross Site Scripting的縮寫本來是CSS,但是這樣就跟Cascading Style Sheets的縮寫混淆了,所以使用XSS,使用字母X...

    JinB 評論0 收藏0
  • Web安全之XSS Platform搭建及使用實(shí)踐

    摘要:一背景是一個非常經(jīng)典的滲透測試管理系統(tǒng),原作者在年所開發(fā),由于后來長時間沒有人維護(hù),導(dǎo)致目前在環(huán)境下無法運(yùn)行。 一、背景 XSS Platform 是一個非常經(jīng)典的XSS滲透測試管理系統(tǒng),原作者在2011年所開發(fā),由于后來長時間沒有人維護(hù),導(dǎo)致目前在PHP7環(huán)境下無法運(yùn)行。 筆者最近花了一點(diǎn)時間將源碼移植到了PHP7環(huán)境中,同時增加安裝功能;另外還修復(fù)之前的代碼的一些不嚴(yán)謹(jǐn)語法的問題,...

    shevy 評論0 收藏0
  • Web安全之XSS Platform搭建及使用實(shí)踐

    摘要:一背景是一個非常經(jīng)典的滲透測試管理系統(tǒng),原作者在年所開發(fā),由于后來長時間沒有人維護(hù),導(dǎo)致目前在環(huán)境下無法運(yùn)行。 一、背景 XSS Platform 是一個非常經(jīng)典的XSS滲透測試管理系統(tǒng),原作者在2011年所開發(fā),由于后來長時間沒有人維護(hù),導(dǎo)致目前在PHP7環(huán)境下無法運(yùn)行。 筆者最近花了一點(diǎn)時間將源碼移植到了PHP7環(huán)境中,同時增加安裝功能;另外還修復(fù)之前的代碼的一些不嚴(yán)謹(jǐn)語法的問題,...

    XboxYan 評論0 收藏0
  • 快速找出網(wǎng)站中可能存在的XSS漏洞實(shí)踐(一)

    摘要:一背景筆者最近在慕課錄制了一套跨站漏洞加強(qiáng)安全視頻教程,課程當(dāng)中有講到的挖掘方式,所以在錄制課程之前需要做大量實(shí)踐案例,最近視頻已經(jīng)錄制完成,準(zhǔn)備將這些漏洞的挖掘過程記錄下來,方便自己也方便他人。 一、背景 筆者最近在慕課錄制了一套XSS跨站漏洞 加強(qiáng)Web安全視頻教程,課程當(dāng)中有講到XSS的挖掘方式,所以在錄制課程之前需要做大量實(shí)踐案例,最近視頻已經(jīng)錄制完成,準(zhǔn)備將這些XSS漏洞的挖...

    Jason_Geng 評論0 收藏0
  • 快速找出網(wǎng)站中可能存在的XSS漏洞實(shí)踐(一)

    摘要:一背景筆者最近在慕課錄制了一套跨站漏洞加強(qiáng)安全視頻教程,課程當(dāng)中有講到的挖掘方式,所以在錄制課程之前需要做大量實(shí)踐案例,最近視頻已經(jīng)錄制完成,準(zhǔn)備將這些漏洞的挖掘過程記錄下來,方便自己也方便他人。 一、背景 筆者最近在慕課錄制了一套XSS跨站漏洞 加強(qiáng)Web安全視頻教程,課程當(dāng)中有講到XSS的挖掘方式,所以在錄制課程之前需要做大量實(shí)踐案例,最近視頻已經(jīng)錄制完成,準(zhǔn)備將這些XSS漏洞的挖...

    YPHP 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<