久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > Web安全之XSS跨站

Web安全之XSS跨站

來源:千鋒教育
發(fā)布人:qyf
時間: 2022-08-25 18:02:17 1661421737

Web安全之XSS跨站

  XSS(Cross Site Scripting)的全稱是跨站腳本攻擊,之所以叫XSS,是想與Web中的另一個層疊樣式表CSS區(qū)分開來。該攻擊主要是在網(wǎng)頁中嵌入JavaScript腳本代碼,當(dāng)用戶訪問此網(wǎng)頁時,腳本就會在瀏覽器中執(zhí)行,從而達(dá)到攻擊的目的。在XSS攻擊中,一般有3個角色參與:攻擊者、目標(biāo)服務(wù)器、受害者的瀏覽器。由于有些服務(wù)器沒有對用戶的輸入進(jìn)行安全驗證,攻擊者可以通過正常書寫的方式并帶有部分的HTML惡意腳本代碼的方法來進(jìn)行攻擊,當(dāng)受害者的瀏覽器訪問目標(biāo)服務(wù)器時,由于對目標(biāo)服務(wù)器的信任,這段惡意代碼的執(zhí)行不會受到什么阻礙,從而形成了XSS攻擊。

  下面通過一個的實例來演示一下XSS具體情況。我們要使用到JavaScript的腳本如下:

<script>alert(document.cookie);</script>

  這個語句的含義是以警告框的形式將用戶訪問網(wǎng)站的Cookie輸出。如果攻擊者向一個網(wǎng)站輸入數(shù)據(jù)時,在正常數(shù)據(jù)后面帶上這一段代碼,那么那個網(wǎng)站的源碼將變成如下情況。

<html>



test<script>alert(document.cookie);</script>



</html>

  熟悉 JavaScript 的朋友,這時候應(yīng)該已經(jīng)明白如果受害者訪問這個網(wǎng)頁時會發(fā)生什么事情。當(dāng)他訪問的時候,瀏覽器界面就會彈出用戶的Cookie信息。這里只是XSS的一個小演示,只要愿意,黑客可以向里面插入任意的代碼,甚至寫一個js文件代碼,以引用的形式插入進(jìn)入網(wǎng)頁。下面介紹XSS的攻擊類型。

  1. 反射型XSS

  反射型 XSS 又稱非持久型 XSS。之所以稱為反射型 XSS,是因為這種攻擊方式的注入代碼是從目標(biāo)服務(wù)器通過錯誤信息、搜索結(jié)果等方式“反射”回來的。而稱為非持久型XSS,則是因為這種攻擊方式是一次性的。攻擊者通過電子郵件等方式將包含注入腳本的惡意鏈接發(fā)送給受害者,當(dāng)受害者單擊該鏈接時,注入腳本被傳輸?shù)侥繕?biāo)服務(wù)器上,然后服務(wù)器將注入腳本“反射”到受害者的瀏覽器上,從而在該瀏覽器上執(zhí)行了這段腳本。例如,攻擊者將如下鏈接發(fā)送給受害者:

  http://www.example.com/search.asp?input=。

  當(dāng)受害者單擊這個鏈接的時候,注入的腳本被當(dāng)作搜索的關(guān)鍵詞發(fā)送到目標(biāo)服務(wù)器的search.asp頁面中,則在搜索結(jié)果的返回頁面中,這段腳本將被當(dāng)作搜索的關(guān)鍵詞而嵌入。這樣,當(dāng)用戶得到搜索結(jié)果頁面后,這段腳本也得到了執(zhí)行。這就是反射型XSS攻擊的原理,可以看到,攻擊者巧妙地通過反射型XSS的攻擊方式,達(dá)到了在受害者的瀏覽器上執(zhí)行腳本的目的。由于代碼注入的是一個動態(tài)產(chǎn)生的頁面而不是永久的頁面,因此這種攻擊方式只在單擊鏈接的時候才產(chǎn)生作用,這也是它被稱為非持久型XSS的原因。

  2. 存儲型XSS

  存儲型XSS又稱持久型XSS,它和反射型XSS最大的不同就是,攻擊腳本將被永久地存放在目標(biāo)服務(wù)器的數(shù)據(jù)庫和文件中。這種攻擊多見于論壇,攻擊者在發(fā)帖的過程中,將惡意腳本連同正常信息一起注入到帖子的內(nèi)容之中。隨著帖子被論壇服務(wù)器存儲下來,惡意腳本也永久地被存放在論壇服務(wù)器的后端存儲器中。當(dāng)其他用戶瀏覽這個被注入了惡意腳本的帖子的時候,惡意腳本則會在他們的瀏覽器中得到執(zhí)行,從而受到攻擊??梢钥吹剑鎯π蚗SS的攻擊方式能夠?qū)阂獯a永久地嵌入一個頁面當(dāng)中,所有訪問這個頁面的用戶都將成為受害者。如果我們能夠謹(jǐn)慎對待不明鏈接,那么反射型XSS攻擊將沒有多大作為,而存儲型XSS則不同,由于它注入的往往是一些受信任的頁面,因此無論多么小心,都難免會受到攻擊。可以說,存儲型XSS更具有隱蔽性,帶來的危害也更大,除非服務(wù)器能完全阻止注入,否則任何人都很有可能受到攻擊。

  3. DOM XSS

  DOM XSS全稱是DOM Based XSS(基于DOM的XSS),其實這種XSS攻擊并不是以是否存儲在服務(wù)器中來劃分的。理論上,這種攻擊也屬于反射型XSS攻擊,但之所以不將它歸為反射型是因為它具有特殊的地方。這種類型的攻擊不依賴于起初發(fā)送到服務(wù)器的惡意數(shù)據(jù)。這似乎與前面介紹的XSS有些出入,但是可以通過一個例子來解釋這種攻擊。

  當(dāng)Javascript在瀏覽器執(zhí)行時,瀏覽器提供給Javascript代碼幾個DOM對象。文檔對象首先在這些對象之中,并且它代表著大多數(shù)瀏覽器呈現(xiàn)的頁面的屬性。這個文檔對象包含很多子對象,如 location、URL和referrer。這些對象根據(jù)瀏覽器的顯示填充瀏覽器。因此,document.URL和document.location是由頁面的URL按照瀏覽器的解析填充的。注意,這些對象不是提取自HTML的body,它們不會出現(xiàn)在數(shù)據(jù)頁面。文檔對象包含一個body對象,它代表對于HTML的解析。

<HTML>

<TITLE>Welcome!</TITLE>

Hi

<SCRIPT>

var pos=document.URL.indexof("name=")+5;

document.write(document.URL.substring(pos,document.URL.length));

</SCRIPT>

<BR>

Welcome to our system

</HTML>

  以上是HTML里面解析URL和執(zhí)行一些客戶端邏輯的代碼。然后,在發(fā)送請求的后面加上如下的指令:

  http://www.example.com/welcome.html?name=abc。

  當(dāng)受害者訪問到該網(wǎng)站時,瀏覽器會解析這個 HTML 為 DOM,DOM 包含一個對象叫document,document里面有一個URL屬性,這個屬性里填充著當(dāng)前頁面的URL。當(dāng)解析器到達(dá)javascript代碼,它會執(zhí)行它并且修改HTML頁面。倘若代碼中引用了document.URL,那么,這部分字符串將會在解析時嵌入到 HTML 中,然后立即解析,同時,Javascript 代碼會找到(alert(document.cookie))并且在同一個頁面執(zhí)行它,這就產(chǎn)生了XSS的條件。

  4. 檢測

  可以看出,XSS攻擊是與SQL注入類似的代碼注入類漏洞。并且在JavaScript靈活運用的今天,對于XSS的檢測與預(yù)防必不可少。下面簡單介紹一下XSS的預(yù)防措施。

  (1)輸入檢測對用戶輸入的數(shù)據(jù)進(jìn)行檢測。對于這些代碼注入類的漏洞原則上是不相信用戶輸入的數(shù)據(jù)的。所以,我們要對用戶輸入的數(shù)據(jù)進(jìn)行一定程度的過濾,將輸入數(shù)據(jù)中的特殊字符與關(guān)鍵詞都過濾掉,并且對輸入的長度進(jìn)行一定的限制。只要開發(fā)的人員嚴(yán)格檢查每個輸入點,對每個輸入點的數(shù)據(jù)進(jìn)行檢測和XSS過濾,是可以阻止XSS攻擊的。(2)輸出編碼造成XSS的還有一個原因是應(yīng)用程序直接將用戶輸入的數(shù)據(jù)嵌入HTML頁面中。如果我們對用戶輸入的數(shù)據(jù)進(jìn)行編碼,之后在嵌入頁面中,那么HTML頁面會將輸入的數(shù)據(jù)當(dāng)作是普通的數(shù)據(jù)進(jìn)行處理。(3)Cookie安全利用XSS攻擊可以輕易獲取到用戶的Cookie信息,那么需要對用戶的Cookie進(jìn)行一定的處理。首先應(yīng)盡可能減少Cookie中敏感信息的存儲,并且盡量對Cookie使用散列算法多次散列存放。

  更多關(guān)于“網(wǎng)絡(luò)安全培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
軟件開發(fā)管理流程中會出現(xiàn)哪些問題?

一、需求不清需求不明確是導(dǎo)致項目失敗的主要原因之一。如果需求沒有清晰定義,開發(fā)人員可能會開發(fā)出不符合用戶期望的產(chǎn)品。二、通信不足溝通問...詳情>>

2023-10-14 13:43:21
軟件定制開發(fā)中的敏捷開發(fā)是什么?

軟件定制開發(fā)中的敏捷開發(fā)是什么軟件定制開發(fā)中的敏捷開發(fā),從宏觀上看,是一個高度關(guān)注人員交互,持續(xù)開發(fā)與交付,接受需求變更并適應(yīng)環(huán)境變化...詳情>>

2023-10-14 13:24:57
什么是PlatformIo?

PlatformIO是什么PlatformIO是一個全面的物聯(lián)網(wǎng)開發(fā)平臺,它為眾多硬件平臺和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡化了開發(fā)過程,并能兼容各種...詳情>>

2023-10-14 12:55:06
云快照與自動備份有什么區(qū)別?

1、定義和目標(biāo)不同云快照的主要目標(biāo)是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時間點后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動備份的主要目標(biāo)...詳情>>

2023-10-14 12:48:59
服務(wù)器為什么要用Linux?

服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨特的優(yōu)勢和特點。包括其...詳情>>

2023-10-14 12:34:11