亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

XSS跨站攻擊及漏洞原理

系統(tǒng) 2353 0

什么是XSS(跨站)攻擊
·XSS(跨站)攻擊的概念
  XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁(yè)面里插入惡意html代碼,當(dāng)用戶瀏覽該頁(yè)之時(shí),嵌入其中Web里面的html代碼會(huì)被執(zhí)行,從而達(dá)到惡意用戶的特殊目的。XSS屬于被動(dòng)式的攻擊,因?yàn)槠浔粍?dòng)且不好利用,所以許多人常呼略其危害性。而本文主要講的是利用XSS得到目標(biāo)服務(wù)器的shell。技術(shù)雖然是老技術(shù),但是其思路希望對(duì)大家有幫助。
·跨站攻擊的方式
  跨站攻擊有多種方式,由HTML語(yǔ)言允許使用腳本進(jìn)行簡(jiǎn)單交互,入侵者便通過(guò)技術(shù)手段在某個(gè)頁(yè)面里插入一個(gè)惡意HTML代碼——例如記錄論壇保存的用戶信息(Cookie),由于Cookie保存了完整的用戶名和密碼資料,用戶就會(huì)遭受安全損失。當(dāng)然,攻擊者有時(shí)也會(huì)在網(wǎng)頁(yè)中加入一些以.JS或.VBS為后尾名的代碼時(shí),在我們?yōu)g覽時(shí),同樣我們也會(huì)被攻擊到。
·如何尋找XSS漏洞

  XSS攻擊分成兩類,一類是來(lái)自內(nèi)部的攻擊,主要指的是利用程序自身的漏洞,構(gòu)造跨站語(yǔ)句,如:dvbbs的showerror.asp存在的跨站漏洞。另一類則是來(lái)來(lái)自外部的攻擊,主要指的自己構(gòu)造XSS跨站漏洞網(wǎng)頁(yè)或者尋找非目標(biāo)機(jī)以外的有跨站漏洞的網(wǎng)頁(yè)。如當(dāng)我們要滲透一個(gè)站點(diǎn),我們自己構(gòu)造一個(gè)有跨站漏洞的網(wǎng)頁(yè),然后構(gòu)造跨站語(yǔ)句,通過(guò)結(jié)合其它技術(shù),如社會(huì)工程學(xué)等,欺騙目標(biāo)服務(wù)器的管理員打開(kāi)。

?

XSS(Cross Site Script)漏洞原理

XSS的全稱是Cross Site Scripting,意思是跨站腳本.這第一個(gè)單詞是Cross,為什么縮寫成X呢?因?yàn)镃SS是層疊樣式表的縮寫(Cascading Style Sheets)的縮寫,同時(shí)Cross發(fā)音和X相似,為了避免混淆用X來(lái)代替,縮寫成XSS。其實(shí)我覺(jué)得叫XSS挺合適的,因?yàn)楝F(xiàn)在流行AJAX嘛,新的跨站腳本攻擊技術(shù)很多都是和XMLHTTP控件無(wú)間配合,嘿嘿,這個(gè)是題外話,我們只講原理,下面我就分兩個(gè)部分分析XSS原理:

??? ? 一、XSS的觸發(fā)條件

??? 了解XSS的觸發(fā)條件就先得從HTML(超文本標(biāo)記語(yǔ)言)開(kāi)始,我們?yōu)g覽的網(wǎng)頁(yè)全部都是基于超文本標(biāo)記語(yǔ)言創(chuàng)建的,如顯示一個(gè)超鏈接:

??? <A HREF=" http://safe.it168.com">IT168 安全 頻道</A>


??? 而XSS的原理也就是往HTML中注入腳本,HTML指定了腳本標(biāo)記<script></script>.在沒(méi)有過(guò)濾字符的情況下,只需要保持完整無(wú)錯(cuò)的腳本標(biāo)記即可觸發(fā)XSS,假如我們?cè)谀硞€(gè)資料表單提交內(nèi)容,表單提交內(nèi)容就是某個(gè)標(biāo)記屬性所賦的值,我們可以構(gòu)造如下值來(lái)閉和標(biāo)記來(lái)構(gòu)造完整無(wú)錯(cuò)的腳本標(biāo)記,

??? "><script>alert('XSS');</script><"

??? 結(jié)果形成了<A HREF=""><script>alert('XSS');</script> <"">茄子寶的博客在這里</A>這樣一個(gè)標(biāo)記,:)這里和SQL注入很象!

??? 測(cè)試閉和表單賦值所在的標(biāo)記,形成完整無(wú)錯(cuò)的腳本標(biāo)記可觸發(fā)XSS,但是沒(méi)有腳本標(biāo)記怎么觸發(fā)XSS呢?呵呵,我們只好利用其他標(biāo)記了,假如要在網(wǎng)頁(yè)里顯示一張圖片,那么就要使用一個(gè)<img>標(biāo)記,示例如下:

??? <img src=" ? http://safe.it168.com ? /xss.gif">

??? img標(biāo)記并不是真正地把圖片給加入到Html文檔把兩者合二為一,而是通過(guò)src屬性賦值。那么瀏覽器的任務(wù)就是解釋這個(gè)img標(biāo)記,訪問(wèn)src屬性所賦的值中的URL地址并輸出圖片。問(wèn)題來(lái)了!瀏覽器會(huì)不會(huì)檢測(cè)src屬性所賦的值呢?答案是否!那么我們就可以在這里大做文章了,接觸過(guò)javascript的同志應(yīng)該知道,javascript有一個(gè)URL偽協(xié)議,可以使用“javascript:”這種協(xié)議說(shuō)明符加上任意的javascript代碼,當(dāng)瀏覽器裝載這樣的URL時(shí),便會(huì)執(zhí)行其中的代碼.于是我們就得出了一個(gè)經(jīng)典的XSS示例:

??? <img src="javascript:alert('XSS');"> 如圖一

XSS跨站攻擊及漏洞原理

?

??? 當(dāng)然并不是所有標(biāo)記的屬性都能用,細(xì)心的你應(yīng)該發(fā)現(xiàn)標(biāo)記的屬性在訪問(wèn)文件才觸發(fā)的XSS,這里我就不再深入,因?yàn)殡x開(kāi)標(biāo)記的屬性還有事件能幫助我們觸發(fā)XSS.那什么是事件呢?只有達(dá)到某個(gè)條件才會(huì)引發(fā)事件,正巧img標(biāo)記有一個(gè)可以利用的onerror()事件,當(dāng)img標(biāo)記內(nèi)含有一個(gè)onerror()事件而正好圖片沒(méi)有正常輸出便會(huì)觸發(fā)這個(gè)事件,而事件中可以加入任意的腳本代碼,其中的代碼也會(huì)執(zhí)行.現(xiàn)在我們又得到了另外一個(gè)經(jīng)典的XSS示例:

<img src=" ? http://xss.jpg " onerror=alert('XSS')>如圖二

XSS跨站攻擊及漏洞原理

?

??? 綜合這一部分,我們知道XSS的觸發(fā)條件包括:完整無(wú)錯(cuò)的腳本標(biāo)記,訪問(wèn)文件的標(biāo)記屬性和觸發(fā)事件。

二、XSS轉(zhuǎn)碼引發(fā)的過(guò)濾問(wèn)題

??? 有攻就有防,網(wǎng)站程序員肯定不會(huì)放任大家利用XSS,所以他們常會(huì)過(guò)濾類似javascript的關(guān)鍵字符,讓大家構(gòu)造不了自己的XSS,我這里就撿兩個(gè)被忽略慣了的字符來(lái)說(shuō),它們是"&"和"\".首先來(lái)說(shuō)說(shuō)"&"字符,玩過(guò)SQL注入的都知道,注入的語(yǔ)句可以轉(zhuǎn)成16進(jìn)制再賦給一個(gè)變量運(yùn)行,XSS的轉(zhuǎn)碼和這個(gè)還真有異曲同工之妙,原因是我們的IE瀏覽器默認(rèn)采用的是UNICODE編碼,HTML編碼可以用&#ASCII方式來(lái)寫,這種XSS轉(zhuǎn)碼支持10進(jìn)制和16進(jìn)制,SQL注入轉(zhuǎn)碼是將16進(jìn)制字符串賦給一個(gè)變量,而XSS轉(zhuǎn)碼則是針對(duì)屬性所賦的值,下面我就拿<img src="javascript:alert('XSS');">示例:

??? <img src="&#106&#97&#118&#97&#115&#99&#114&#105&#112&#116&#58&#97&#108&#101&#114&#116&#40&#39&#88&#83&#83&#39&#41&#59"> //10進(jìn)制轉(zhuǎn)碼 如圖三

XSS跨站攻擊及漏洞原理

?

??? <img src="&#x6a&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3a&#x61&#x6c&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29&#x3b"> //16進(jìn)制轉(zhuǎn)碼。

??? 這個(gè)&#分隔符還可以繼續(xù)加0變成“&#0106” ,“&#00106” ,“&#000106” ,“&#0000106”等形式。

??? 而這個(gè)"\"字符卻暴露了一個(gè)嚴(yán)重的XSS 0DAY漏洞,這個(gè)漏洞和CSS(Cascading Style Sheets)層疊樣式表有很大的關(guān)聯(lián),下面我就來(lái)看看這個(gè)漏洞,先舉個(gè)javascript的eval 函數(shù)的例子,官方是這樣定義這個(gè)函數(shù):

??? eval(codeString),必選項(xiàng) codestring 參數(shù)是包含有效 JScript 代碼的字符串值。這個(gè)字符串將由 JScript 分析器進(jìn)行分析和執(zhí)行。

??? 我們的JavaScript中的"\"字符是轉(zhuǎn)義字符,所以可以使用"\"連接16進(jìn)制字符串運(yùn)行代碼

??? <SCRIPT LANGUAGE="JavaScript">
eval("\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x61\x6c\x65\x72\x74\x28\x22\x58\x53\x53\x22\x29")
</SCRIPT>

恐怖的是樣式表也支持分析和解釋"\"連接的16進(jìn)制字符串形式,瀏覽器能正常解釋。下面我們來(lái)做個(gè)實(shí)驗(yàn):

??? 寫一個(gè)指定某圖片為網(wǎng)頁(yè)背景的CSS標(biāo)記:

??? <html>
??? <body>
??? <style>
??? BODY { background: url( http://127.0.0.1/xss.gif ) }
??? </style>
??? <body>
??? <html>

??? 保存為HTM,瀏覽器打開(kāi)顯示正常。

??? 轉(zhuǎn)換background屬性值為"\"連接的16進(jìn)制字符串形式,瀏覽器打開(kāi)同樣顯示正常。

??? <html>
??? <body>
??? <style>
??? BODY { background: \75\72\6c\28\68\74\74\70\3a\2f\2f\31\32\37\2e\30\2e\30\2e\31\2f\78\73\73\2e\67\69\66\29 }
??? </style>
??? <body>
??? <html>

??? 在文章第一部分我已經(jīng)說(shuō)過(guò)XSS的觸發(fā)條件包括訪問(wèn)文件的標(biāo)記屬性,因此我們不難構(gòu)造出

??? <img STYLE="background-image: url(javascript:alert('XSS'))">

??? 這樣的XSS語(yǔ)句。有了實(shí)驗(yàn)的結(jié)果,我們又能對(duì)CSS樣式表的標(biāo)記進(jìn)行XSS轉(zhuǎn)碼,瀏覽器將幫我們解釋標(biāo)記內(nèi)容,XSS語(yǔ)句示例:

??? <img STYLE="background-image: \75\72\6c\28\6a\61\76\61\73\63\72\69\70\74\3a\61\6c\65\72\74\28\27\58\53\53\27\29\29"> 看圖四

XSS跨站攻擊及漏洞原理

?

??? 編者語(yǔ): XSS攻擊以及的可怕性及靈活性深受黑客的喜愛(ài)。爭(zhēng)對(duì)XSS攻擊,編者給普通瀏覽網(wǎng)頁(yè)用戶及WEB應(yīng)用開(kāi)發(fā)者給出以下的 安全 建議:

??? web用戶

??? ? 1.在電子郵件或者即時(shí)通訊 軟件 中點(diǎn)擊鏈接時(shí)需要格外小心:留心可疑的過(guò)長(zhǎng)鏈接,尤其是它們看上去包含了HTML代碼。如果對(duì)其產(chǎn)生懷疑,可以在瀏覽器地址欄中手工輸入域名,而后通過(guò)該頁(yè)面中的鏈接瀏覽你所要的信息。

??? ? 2.對(duì)于XSS漏洞,沒(méi)有哪種web瀏覽器具有明顯的安全優(yōu)勢(shì)。也就是Firefox也同樣不安全。為了獲得更多的安全性,可以安裝一些瀏覽器插件:比如Firefox的NoScript或者Netcraft工具條。

??? ? 3.世界上沒(méi)有“100%的有效”。盡量避免訪問(wèn)有問(wèn)題的站點(diǎn):比如提供hack信息和工具、破解軟件、成人照片的網(wǎng)站。這些類型的網(wǎng)站會(huì)利用瀏覽器漏洞并危害 操作系統(tǒng) 。

??? web應(yīng)用開(kāi)發(fā)者

??? ? 1.對(duì)于開(kāi)發(fā)者,首先應(yīng)該把精力放到對(duì)所有用戶提交內(nèi)容進(jìn)行可靠的輸入驗(yàn)證上。這些提交內(nèi)容包括URL、查詢關(guān)鍵字、http頭、post數(shù)據(jù)等。只接受在你所規(guī)定長(zhǎng)度范圍內(nèi)、采用適當(dāng)格式、你所希望的字符。阻塞、過(guò)濾或者忽略其它的任何東西。

??? ? 2.保護(hù)所有敏感的功能,以防被bots自動(dòng)化或者被第三方網(wǎng)站所執(zhí)行。實(shí)現(xiàn)session標(biāo)記(session tokens)、CAPTCHA系統(tǒng)或者HTTP引用頭檢查。

??? ? 3.如果你的web應(yīng)用必須支持用戶提供的HTML,那么應(yīng)用的安全性將受到災(zāi)難性的下滑。但是你還是可以做一些事來(lái)保護(hù)web站點(diǎn):確認(rèn)你接收的HTML內(nèi)容被妥善地格式化,僅包含最小化的、安全的tag(絕對(duì)沒(méi)有JavaScript),去掉任何對(duì)遠(yuǎn)程內(nèi)容的引用(尤其是樣式表和JavaScript)。為了更多的安全,請(qǐng)使用httpOnly的cookie。

XSS跨站攻擊及漏洞原理


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 99九九久久 | 日本免费成人网 | 香蕉久久高清国产精品免费 | www.色午夜| 久久夜靖品 | 114一级毛片免费 | 亚洲午夜片子大全精品 | 99免费观看 | 99er久久| 久久草精品 | 夜夜操夜夜操 | 亚洲婷婷综合色高清在线 | 天天干天天干天天色 | 国产a区 | jizz美女18| 久久久精品视频免费观看 | 久草热久草视频 | 色婷婷天天综合在线 | 国产91在线九色 | 国产日本久久久久久久久婷婷 | 成人一级黄色毛片 | 亚洲国产99 | 婷婷亚洲综合一区二区 | 久久99国产精品久久99无号码 | xxxx久久| 久久久免费 | 天天色天天操天天射 | 久久久精品视频在线观看 | 久久久久综合精品福利啪啪 | 99热久久久这里只有精品免费 | 亚洲网址在线观看 | 国产精品午夜激爽毛片 | 婷综合| 波多野结衣一区二区三区在线观看 | 欧美成人精品久久精品 | 国产大片在线播放 | 欧美91| 亚洲国产综合网 | 中文字幕一区日韩在线视频 | 91精品啪在线观看国产色 | 国产精品一区不卡 |