日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

反射型XSS漏洞详解

發(fā)布時(shí)間:2023/12/15 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 反射型XSS漏洞详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

為什么80%的碼農(nóng)都做不了架構(gòu)師?>>>

反射型XSS漏洞 如果一個(gè)應(yīng)用程序使用動(dòng)態(tài)頁(yè)面向用戶顯示錯(cuò)誤消息,就會(huì)造成一種常見(jiàn)的XSS漏洞。通常,該頁(yè)面會(huì)使用一個(gè)包含消息文本的參數(shù),并在響應(yīng)中將這個(gè)文 本返回給用戶。對(duì)于開(kāi)發(fā)者而言,使用這種機(jī)制非常方便,因?yàn)樗试S他們從應(yīng)用程序中調(diào)用一個(gè)定制的錯(cuò)誤頁(yè)面,而不需要對(duì)錯(cuò)誤頁(yè)面中的消息分別進(jìn)行硬編碼。 例如,下面的URL返回如圖12-1所示的錯(cuò)誤消息:
https://wahh-app.com/error.php?message=Sorry%2c+an+error+occurred 分析被返回頁(yè)面的HTML源代碼后,我們發(fā)現(xiàn),應(yīng)用程序只是簡(jiǎn)單復(fù)制URL中message參數(shù)的值,并將這個(gè)值插入到位于適當(dāng)位置的錯(cuò)誤頁(yè)面模板中:

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::0
一條動(dòng)態(tài)生成的錯(cuò)誤消息
  1. <p>Sorry, an error occurred.</p>

提取用戶提交的輸入并將其插入到服務(wù)器響應(yīng)的HTML代碼中,這是XSS漏洞的一個(gè)明顯特征;如果應(yīng)用程序沒(méi)有實(shí)施任何過(guò)濾或凈化措施,那么它很容易受到攻擊。讓我們來(lái)看看如何實(shí)施攻擊。 下面的URL經(jīng)過(guò)專門設(shè)計(jì),它用一段生成彈出對(duì)話框的JavaScript代碼代替錯(cuò)誤消息:

  1. https://wahh-app.com/error.php?message=<script>alert(”xss”);</script>

請(qǐng)求這個(gè)URL將會(huì)生成一個(gè)HTML頁(yè)面,其中包含以下替代原始消息的腳本:

  1. <p><script>alert(”xss”);</script></p>

可以肯定,如果該頁(yè)面在用戶的瀏覽器中顯示,彈出消息就會(huì)出現(xiàn),如圖12-2所示。

一次概念驗(yàn)證XSS攻擊

進(jìn)行這個(gè)簡(jiǎn)單的測(cè)試有助于澄清兩個(gè)重要問(wèn)題:首先,message參數(shù)的內(nèi)容可用任何返回給瀏覽器的數(shù)據(jù)替代;其次,無(wú)論服務(wù)器端應(yīng)用程序如何處理這些數(shù)據(jù)(如果有),都無(wú)法阻止提交JavaScript代碼,一旦錯(cuò)誤頁(yè)面在瀏覽器中顯示,這些代碼就會(huì)執(zhí)行。 在現(xiàn)實(shí)世界的Web應(yīng)用程序中存在的XSS漏洞,有近75%的漏洞屬于這種簡(jiǎn)單的XSS bug。由于利用這種漏洞需要設(shè)計(jì)一個(gè)包含嵌入式JavaScript代碼的請(qǐng)求,隨后這些代碼又被反射到任何提出請(qǐng)求的用戶,因而它被稱作反射型 XSS。攻擊有效載荷分別通過(guò)一個(gè)單獨(dú)的請(qǐng)求與響應(yīng)進(jìn)行傳送和執(zhí)行。為此,有時(shí)它也被稱為一階XSS。
利用漏洞 下文將會(huì)介紹,利用XSS漏洞攻擊應(yīng)用程序其他用戶的方式有很多種。最簡(jiǎn)單的一種攻擊,也是我們常用于說(shuō)明XSS漏洞潛在影響的一種攻擊,可導(dǎo)致攻擊者截獲一名通過(guò)驗(yàn)證的用戶的會(huì)話。劫持用戶的會(huì)話后,攻擊者就可以訪問(wèn)該用戶經(jīng)授權(quán)訪問(wèn)的所有數(shù)據(jù)和功能。 實(shí)施這種攻擊的步驟如圖12-3所示。

反射型XSS攻擊的實(shí)施步驟

(1) 用戶正常登錄應(yīng)用程序,得到一個(gè)包含會(huì)話令牌的 cookie:

(2) 攻擊者通過(guò)某種方法(詳情見(jiàn)下文)向用戶提交以下 URL:

和前面生成一個(gè)對(duì)話框消息的示例一樣,這個(gè)URL包含嵌入式 JavaScript 代碼。但是,這個(gè)示例中的攻擊有效載荷更加惡毒。 (3) 用戶從應(yīng)用程序中請(qǐng)求攻擊者傳送給他們的URL。 (4) 服務(wù)器響應(yīng)用戶的請(qǐng)求。由于應(yīng)用程序中存在XSS漏洞,響應(yīng)中包含攻擊者創(chuàng)建的 JavaScript代碼。 (5) 用戶瀏覽器收到攻擊者的JavaScript代碼,像執(zhí)行從應(yīng)用程序收到的其他代碼一樣,瀏覽器執(zhí)行這段代碼。 (6) 攻擊者創(chuàng)建的惡意JavaScript代碼為:

這段代碼可讓用戶瀏覽器向wahh-attacker.com(攻擊者擁有的一個(gè)域)提出一個(gè)請(qǐng)求。請(qǐng)求中包含用戶訪問(wèn)應(yīng)用程序的當(dāng)前會(huì)話令牌:

攻擊者監(jiān)控訪問(wèn)wahh-attacker.com的請(qǐng)求并收到用戶的請(qǐng)求。攻擊者使用截獲的令牌劫持用戶的會(huì)話,從而訪問(wèn)該用戶的個(gè)人信息,并”代表”該用戶執(zhí)行任意操作。 注解 第6章已經(jīng)介紹過(guò),一些應(yīng)用程序保存一個(gè)持久性cookie,以在用戶每次訪問(wèn)時(shí)重新對(duì)其進(jìn)行有效驗(yàn)證,例如,執(zhí)行”記住我”功能。這時(shí),就 沒(méi)有必要執(zhí)行上述過(guò)程中的第一個(gè)步驟。即使目標(biāo)用戶并未處于活動(dòng)狀態(tài)或登錄應(yīng)用程序,攻擊者仍然能夠成功實(shí)現(xiàn)目標(biāo)。為此,以這種方式使用cookie的應(yīng) 用程序更易受到XSS漏洞的影響。 完成上述步驟后,讀者可能會(huì)心存疑惑:如果攻擊者能夠誘使用戶訪問(wèn)他選擇的URL,那么他為什么還要費(fèi)這么大力氣通過(guò)應(yīng)用程序中的XSS漏洞傳送自 己的惡意JavaScript代碼呢?為什么他不在wahh-attacker.com上保存一段惡意腳本,并向用戶傳送一個(gè)直接指向這段腳本的鏈接呢? 這段腳本不是可以和上例中的腳本一樣執(zhí)行嗎? 實(shí)際上,攻擊者之所以利用XSS漏洞,有兩個(gè)重要的原因。第一個(gè)也是最重要的原因在于,攻擊者的目的并不僅僅是執(zhí)行任意一段腳本,而是截獲用戶的會(huì) 話令牌。瀏覽器不允許任何舊有腳本訪問(wèn)一個(gè)站點(diǎn)的cookie,否則,會(huì)話就很容易被劫持。而且,只有發(fā)布cookie的站點(diǎn)能夠訪問(wèn)這些cookie: 僅在返回發(fā)布站點(diǎn)的HTTP請(qǐng)求中提交cookie;只有通過(guò)該站點(diǎn)返回的頁(yè)面所包含或加載的JavaScript才能訪問(wèn)cookie。因此,如果 wahh-attacker.com上的一段腳本查詢 document. cookie,它將無(wú)法獲得wahh-app.com發(fā)布的cookie,劫持攻擊也不會(huì)成功。 就用戶的瀏覽器而言,利用XSS漏洞的攻擊之所以取得成功,是因?yàn)楣粽叩膼阂釰avaScript是由wahh-app.com送交給它的。當(dāng)用戶請(qǐng)求攻擊者的URL時(shí),瀏覽器向
https://wahh-app.com/ error.php提交一個(gè)請(qǐng)求,然后應(yīng)用程序返回一個(gè)包含一段JavaScript的頁(yè)面。和從wahh-app.com收到的任何 JavaScript一樣,瀏覽器執(zhí)行這段腳本,因?yàn)橛脩粜湃蝫ahh-app.com。這也就是為何攻擊的腳本能夠訪問(wèn)wahh-app.com發(fā)布的 cookie的原因,雖然它實(shí)際來(lái)自其他地方。這也是為何該漏洞被稱作跨站點(diǎn)腳本的原因。 注解 對(duì)腳本能夠訪問(wèn)的數(shù)據(jù)實(shí)施這種限制,是所有現(xiàn)代瀏覽器所執(zhí)行的更加通用的同源策略的一部分。實(shí)施這個(gè)策略是為了在瀏覽器訪問(wèn)的不同Web站點(diǎn)之間設(shè)立障礙,防止它們相互干擾。關(guān)于這個(gè)策略,必須了解以下一些主要特點(diǎn)。 一個(gè)域的頁(yè)面可向另一個(gè)域提出任意請(qǐng)求(例如,通過(guò)提交一個(gè)表單或加載一幅圖像),但它不能處理那個(gè)請(qǐng)求返回的數(shù)據(jù)。 一個(gè)域的頁(yè)面可從另一個(gè)域加載一段腳本,并在自己的域內(nèi)執(zhí)行這段腳本。這是因?yàn)槟_本被假定包含代碼而非數(shù)據(jù),因此跨域訪問(wèn)并不會(huì)泄露任何敏感信息。如上所述,在某些情況下,這種假設(shè)被違反了,從而導(dǎo)致跨域攻擊。 一個(gè)域的頁(yè)面不能讀取或修改屬于另一個(gè)域的cookie或其他DOM數(shù)據(jù)(如上例所述)。 攻擊者利用XSS漏洞的第二個(gè)原因在于,如果攻擊者設(shè)計(jì)的URL以wahh-app.com而不是wahh-attacker.com開(kāi)頭,上面的第二個(gè)步驟就更有可能成功。假設(shè)攻擊者送出數(shù)百萬(wàn)封下面這樣的電子郵件,試圖欺騙受害者:

即使對(duì)釣魚攻擊有所防范的用戶而言,這種電子郵件也相當(dāng)可靠。 郵件要求他們用自己常用的書簽訪問(wèn)賬戶。 郵件要求他們單擊的鏈接指向應(yīng)用程序使用的正確域名。 與上面第二步的URL不同,郵件中的URL經(jīng)過(guò)模糊處理;它對(duì)URL中的一些字符進(jìn)行了 URL編碼,以使惡意目的不是非常明顯。 該郵件可通過(guò)HTTPS安全檢查,因?yàn)楣粽咛峁┑腢RL確實(shí)是由wahh-app.com服務(wù)器傳送的。 如果攻擊者不利用XSS漏洞,而是提供一個(gè)指向自己惡意Web服務(wù)器的鏈接,執(zhí)行純粹的釣魚攻擊,許多不易受騙的用戶就會(huì)懷疑這是一個(gè)陷阱,攻擊的成功率也因此降低。 錯(cuò)誤觀點(diǎn) ”釣魚陷阱是因特網(wǎng)上無(wú)法回避的事實(shí),我對(duì)它們無(wú)能為力。嘗試修復(fù)我的應(yīng)用程序中的XSS漏洞完全是浪費(fèi)時(shí)間。 釣魚攻擊與XSS漏洞完全不同。純粹的釣魚陷阱是指克隆一個(gè)目標(biāo)應(yīng)用程序,并通過(guò)某種方法誘使用戶與其交互。另一方面,XSS攻擊可完全經(jīng)由易受攻 擊的目標(biāo)應(yīng)用程序傳送。許多人混淆XSS與釣魚攻擊,是因?yàn)橛袝r(shí)它們使用的傳送方法非常相似。但是,以下幾個(gè)要點(diǎn)表明,與釣魚攻擊相比,XSS攻擊會(huì)給組 織帶來(lái)更大的風(fēng)險(xiǎn)。 由于XSS攻擊在用戶當(dāng)前使用的應(yīng)用程序中執(zhí)行,用戶將會(huì)看到與其有關(guān)的個(gè)性化信息,如賬戶信息或”歡迎回來(lái)”消息??寺〉腤eb站點(diǎn)不會(huì)顯示個(gè)性化信息。 通常,在釣魚攻擊中使用的克隆Web站點(diǎn)一經(jīng)發(fā)現(xiàn),就會(huì)立即被關(guān)閉。 許多瀏覽器與反惡意軟件產(chǎn)品內(nèi)置有一個(gè)釣魚攻擊過(guò)濾器,可阻止用戶訪問(wèn)惡意的克隆站點(diǎn)。 如果客戶訪問(wèn)一個(gè)克隆的Web站點(diǎn),許多銀行并不承擔(dān)責(zé)任。但是,如果攻擊者通過(guò)銀行應(yīng)用程序中的XSS漏洞攻擊銀行客戶,他們就不能簡(jiǎn)單地推卸責(zé)任。 如下文所述,有許多方法可以傳送不使用釣魚攻擊技巧的XSS攻擊。

轉(zhuǎn)載于:https://my.oschina.net/766/blog/211525

總結(jié)

以上是生活随笔為你收集整理的反射型XSS漏洞详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。