地 址:上海市靜安66號 電 話(huà):17332891330 網(wǎng)址:www.fxyjd.com 郵 箱:[email protected]
國慶假期(qi)結束,滲透這一節準備XSS跨站攻擊滲透測試中的利用點(diǎn),上一節講了SQL注入攻擊的詳細流程,很多朋友想要咨詢(xún)具體在跨??站攻擊上是如何實(shí)現和利用的,那么我們Sinesafe滲透測試工程師??為大家詳細的講講這個(gè)XSS是如何實(shí)現(╬?益?)以及(ji)原理。
XSS全稱(chēng)??為Cross Site ing,測試測手為了和CSS分開(kāi)簡(jiǎn)寫(xiě)為XSS,站攻中文名為跨站??腳本。擊檢該漏洞發(fā)生在用戶(hù)端,滲透是測試測手指在渲染過(guò)程中發(fā)生了不在預期過(guò)程中的Java代碼執行。XSS通常被用于獲取Co(′?`*)o(′-ι_-`)kie、站攻以受攻擊者的擊檢身份進(jìn)行操作等行為。
3.2.(′?_?`)1.1. 反射型XSS
反射型XSS是滲透比較常見(jiàn)和廣泛的一類(lèi),舉例來(lái)說(shuō),測試測手當一個(gè)網(wǎng)站的站攻代碼中包含類(lèi)似下面的語(yǔ)句: ,那么在訪(fǎng)問(wèn)時(shí)設置 /?擊檢user=
3.2.1.2. 儲存型XSS
儲存型XSS相比反射型來(lái)說(shuō)危害較大,在這種漏洞中,攻擊者能夠把攻擊載荷存入服務(wù)器的數據庫中,造成持久化的攻擊。
3.2.1.3. DOM XSS
DOM型XSS不同之處在于DOM型XSS一般和服務(wù)器的解析響應沒(méi)有直接關(guān)系,而是在Java腳本動(dòng)態(tài)執行的過(guò)(′?`)程中產(chǎn)生的。
例如
<>
function xsstest()
{
var str = document.getElementById("input").value; document.getElementById("output").innerHTML = "
";
}
輸入 x' ='java:alert(/xss/) 即可觸發(fā)。
3.2.1.4(T_T). Blind XSS
Blind XSS是儲存型XSS的一種ヽ(′ー`)ノ(zhong),它保存在某些(xie)存儲中,當一個(gè)&ldqu??o;受害者”訪(fǎng)問(wèn)這個(gè)頁(yè)面時(shí)執行,并且在文檔對象模型(DOM)中呈現payload。它被歸類(lèi)為盲目的原因是因為它通常發(fā)生在通常(chang)不暴露給用戶(hù)的功能上。
3.2.2.1. 簡(jiǎn)介
同源策略限制了不同源之間如(ru)何進(jìn)行資源交互,是用于隔離潛在惡意文件的重要安全機制。是否同源由URL決定,URL由協(xié)議、域名??、端口(???)和路徑組成,如果兩個(gè)URL的協(xié)議、域名和端口相同,則表示他們同源。
3.2.2.1.1. file??域??的同源策略
在之前的瀏覽器中,任意兩個(gè)file域的URI被認為是同源的。本地??磁盤(pán)上的任何HTML文件都可以讀取本地磁盤(pán)上的任何其他文件。
cookie使用不同的??源定義方式,一個(gè)頁(yè)面可以為本域和任何父域設置cookie,只要是父域不是公共后綴(public suffix)即可。
不管使用哪個(gè)協(xié)議??(H??TTP/HTTPS)或端口號,瀏覽器都允許給定的域以及其任何子域名訪(fǎng)問(wèn)cookie。設置 cookie時(shí),可以使用 domain / path / secure 和 http-only 標記來(lái)限定其訪(fǎng)問(wèn)性。
所以 https://lo??calhost:8080/ 和 http://localhost:8081/ 的Cookie??是共享的。
3.2.2(??ヮ?)?*:???.1.3. Fl??ash/SilverLight跨域
瀏覽器的各種插件也存(cun)在跨域需求。通常是通過(guò)在服務(wù)器配置crossdom??ain.xml,設置本服務(wù)允許哪些域名的跨域訪(fǎng)問(wèn)。
客戶(hù)端會(huì )請求此文件,如果發(fā)現自己的域名在訪(fǎng)問(wèn)列表里,就ヾ(?■_■)ノ發(fā)起真正的請求,否則不發(fā)(fa)送請求。
3.2.2.2. 源的更改
同源策??略認為域和子域屬于不同的域,??例如
域名1.a.com 與 域名a.com / 域名1.a.com 與 域名2.a.com/ xxx.域名1.a.com 與 域名1.a.com 兩兩不同源。
對于這種情況,可以在兩個(gè)方面各自設置 document.damain='a.com' 來(lái)改變其源來(lái)實(shí)現以上任意兩個(gè)頁(yè)面之間的通信。
另(?_?;)外因為瀏覽器單獨保存端??口號,這種賦值會(huì )導致端口號被重寫(xiě)為 null 。
3.2.2.3. 跨源訪(fǎng)問(wèn)
同源策略控制了不同源之間的交互,這些交互通常(◎_◎;)分為三類(lèi):
通常允許跨域寫(xiě)操作(Cross-origin writes)
鏈接(links)
重定向
表單提交
通常允許跨域資源嵌入(Cross-origin embedding)
通常不允許跨域讀操作(Cross-origin reads)
可能嵌入跨源的資源的一些示例有:
< src='...'> 標簽嵌入跨域腳本。語(yǔ)法錯誤信息只能在同源腳本中捕捉到。
標簽嵌入CSS。由于CSヽ(′▽?zhuān)?ノS的松散的語(yǔ)法規則,CSS的跨域需要一個(gè)設置正確的Content-Type 消息頭。
/ / 嵌入多媒體資源。