滲透測(cè)試XSS跨站攻擊檢測(cè)手法
  • 更新時(shí)間:2024-12-25 10:09:09
  • 建站經(jīng)驗(yàn)
  • 發(fā)布時(shí)間:2年前
  • 454

國慶假期結(jié)束,這一節(jié)準(zhǔn)備XSS跨站攻擊滲透測(cè)試中的利用點(diǎn),上一節(jié)講了SQL注入攻擊的詳細(xì)流程,很多朋友想要咨詢具體在跨站攻擊上是如何實(shí)現(xiàn)和利用的,那么我們Sinesafe滲透測(cè)試工程師為大家詳細(xì)的講講這個(gè)XSS是如何實(shí)現(xiàn)以及原理。


XSS全稱為Cross Site ing,為了和CSS分開簡寫為XSS,中文名為跨站腳本。該漏洞發(fā)生在用戶端,是指在渲染過程中發(fā)生了不在預(yù)期過程中的Java代碼執(zhí)行。XSS通常被用于獲取Cookie、以受攻擊者的身份進(jìn)行操作等行為。


3.2.1.1. 反射型XSS

反射型XSS是比較常見和廣泛的一類,舉例來說,當(dāng)一個(gè)網(wǎng)站的代碼中包含類似下面的語句: ,那么在訪問時(shí)設(shè)置 /?user=


<>alert("hack")

,則可執(zhí)行預(yù)設(shè)好的Java代碼。 反射型XSS通常出現(xiàn)在搜索等功能中,需要被攻擊者點(diǎn)擊對(duì)應(yīng)的鏈接才能觸發(fā),且受到XSS Auditor、No等防御手段的影響較大。


3.2.1.2. 儲(chǔ)存型XSS

儲(chǔ)存型XSS相比反射型來說危害較大,在這種漏洞中,攻擊者能夠把攻擊載荷存入服務(wù)器的數(shù)據(jù)庫中,造成持久化的攻擊。


3.2.1.3. DOM XSS

DOM型XSS不同之處在于DOM型XSS一般和服務(wù)器的解析響應(yīng)沒有直接關(guān)系,而是在Java腳本動(dòng)態(tài)執(zhí)行的過程中產(chǎn)生的。


例如

<>

function xsstest()

{

var str = document.getElementById("input").value; document.getElementById("output").innerHTML = "

";

}

輸入 x' ='java:alert(/xss/) 即可觸發(fā)。

3.2.1.4. Blind XSS

Blind XSS是儲(chǔ)存型XSS的一種,它保存在某些存儲(chǔ)中,當(dāng)一個(gè)“受害者”訪問這個(gè)頁面時(shí)執(zhí)行,并且在文檔對(duì)象模型(DOM)中呈現(xiàn)payload。它被歸類為盲目的原因是因?yàn)樗ǔ0l(fā)生在通常不暴露給用戶的功能上。

3.2.2. 同源策略

3.2.2.1. 簡介

同源策略限制了不同源之間如何進(jìn)行資源交互,是用于隔離潛在惡意文件的重要安全機(jī)制。是否同源由URL決定,URL由協(xié)議、域名、端口和路徑組成,如果兩個(gè)URL的協(xié)議、域名和端口相同,則表示他們同源。


3.2.2.1.1. file域的同源策略

在之前的瀏覽器中,任意兩個(gè)file域的URI被認(rèn)為是同源的。本地磁盤上的任何HTML文件都可以讀取本地磁盤上的任何其他文件。


從Gecko 1.9開始,文件使用了更細(xì)致的同源策略,只有當(dāng)源文件的父目錄是目標(biāo)文件的祖先目錄時(shí),文件才能讀取另一個(gè)文件。


3.2.2.1.2. cookie的同源策略

cookie使用不同的源定義方式,一個(gè)頁面可以為本域和任何父域設(shè)置cookie,只要是父域不是公共后綴(public suffix)即可。

不管使用哪個(gè)協(xié)議(HTTP/HTTPS)或端口號(hào),瀏覽器都允許給定的域以及其任何子域名訪問cookie。設(shè)置 cookie時(shí),可以使用 domain / path / secure 和 http-only 標(biāo)記來限定其訪問性。


所以 https://localhost:8080/ 和 http://localhost:8081/ 的Cookie是共享的。


3.2.2.1.3. Flash/SilverLight跨域

瀏覽器的各種插件也存在跨域需求。通常是通過在服務(wù)器配置crossdomain.xml,設(shè)置本服務(wù)允許哪些域名的跨域訪問。

客戶端會(huì)請(qǐng)求此文件,如果發(fā)現(xiàn)自己的域名在訪問列表里,就發(fā)起真正的請(qǐng)求,否則不發(fā)送請(qǐng)求。


3.2.2.2. 源的更改

同源策略認(rèn)為域和子域?qū)儆诓煌挠?,例如域?.a.com 與 域名a.com / 域名1.a.com 與 域名2.a.com/ xxx.域名1.a.com 與 域名1.a.com 兩兩不同源。對(duì)于這種情況,可以在兩個(gè)方面各自設(shè)置 document.damain='a.com' 來改變其源來實(shí)現(xiàn)以上任意兩個(gè)頁面之間的通信。另外因?yàn)闉g覽器單獨(dú)保存端口號(hào),這種賦值會(huì)導(dǎo)致端口號(hào)被重寫為 null 。


3.2.2.3. 跨源訪問

同源策略控制了不同源之間的交互,這些交互通常分為三類:

通常允許跨域?qū)懖僮鳎–ross-origin writes)

鏈接(links)

重定向

表單提交

通常允許跨域資源嵌入(Cross-origin embedding)

通常不允許跨域讀操作(Cross-origin reads)

可能嵌入跨源的資源的一些示例有:

< src="..."> 標(biāo)簽嵌入跨域腳本。語法錯(cuò)誤信息只能在同源腳本中捕捉到。

標(biāo)簽嵌入CSS。由于CSS的松散的語法規(guī)則,CSS的跨域需要一個(gè)設(shè)置正確的Content-Type 消息頭。

/ / 嵌入多媒體資源。

我們專注高端建站,小程序開發(fā)、軟件系統(tǒng)定制開發(fā)、BUG修復(fù)、物聯(lián)網(wǎng)開發(fā)、各類API接口對(duì)接開發(fā)等。十余年開發(fā)經(jīng)驗(yàn),每一個(gè)項(xiàng)目承諾做到滿意為止,多一次對(duì)比,一定讓您多一份收獲!

本文章出于推來客官網(wǎng),轉(zhuǎn)載請(qǐng)表明原文地址:https://www.tlkjt.com/experience/7589.html
推薦文章

在線客服

掃碼聯(lián)系客服

3985758

回到頂部