溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

反射型 XSS

發(fā)布時間:2020-07-21 08:10:32 來源:網(wǎng)絡(luò) 閱讀:1048 作者:Tar0 欄目:安全技術(shù)

反射型XSS


科普型paper,大牛略過。--:
在Web2.0技術(shù)的發(fā)展下越來越多的計算工作被放到客戶端處理,由于程序員的疏忽,導(dǎo)致了許多的安全漏洞。XSS屬于比較常見的一種,在前幾年XSS還并不怎么被人重視,但如今,隨著XSS漏洞的危害日益增大,如校內(nèi)和baidu空間前陣子的XSSWORM等等,其危害之大也引起了大家的重視。
XSS的類型大體分為三種:反射型XSS、持久型XSS以及DOMXSS,相比之下,后兩種的利用要比前者方便許多。甚至許多人認(rèn)為反射型的XSS是雞肋,因為其利用起來很不方便,但在安全技術(shù)飛速發(fā)展的今天,雞肋也有變雞翅的一天。下面我們來看看什么是反射型XSS。


什么是反射型XSS
XSS又叫CSS(CrossSiteScript),跨站腳本***。它指的是惡意***者往Web頁面里插入惡意html代碼,當(dāng)用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執(zhí)行,從而達(dá)到惡意***用戶的特殊目的。
那么什么是反射型XSS呢?

如"http://www.jpl.nasa.gov/about_JPL/maps.cfm?departure=lax%22%3Cimg%20src=k.png%20onerror=alert(%22XSSed%20by%20sH%22)%20/%3E"這樣需要欺騙用戶自己去點擊鏈接才能觸發(fā)XSS的是反射型XSS,如在論壇發(fā)貼處的XSS就是持久型的XSS。
非持久性XSS(Reflectedcross-sitescripting),是我們通常所說的反射型XSS,也是最常用,使用最廣的一種方式。它通過給別人發(fā)送帶有惡意腳本代碼參數(shù)的URL,當(dāng)URL地址被打開時,特有的惡意代碼參數(shù)被HTML解析、執(zhí)行。它的特點是非持久化,必須用戶點擊帶有特定參數(shù)的鏈接才能引起。
持久性XSS(Persistentcross-sitescripting),指的是惡意腳本代碼被存儲進(jìn)被***的數(shù)據(jù)庫,當(dāng)其他用戶正常瀏覽網(wǎng)頁時,站點從數(shù)據(jù)庫中讀取了非法用戶存入非法數(shù)據(jù),惡意腳本代碼被執(zhí)行。這種***類型通常在留言板等地方出現(xiàn)。
很多人非常鄙視非持久性XSS(反射型XSS),認(rèn)為這種XSS只能依靠欺騙的手段去騙人點擊,才能讓***正常實施起來。其實讓反射型XSS變得持久的方法,已經(jīng)出現(xiàn)過好多次了。比如利用applet、利用flash的AS腳本、利用IE的Ghost頁面,CrossIframeTrick等等。


反射型XSS的常見利用方法
既然是“需要欺騙用戶自己去點擊鏈接才能觸發(fā)XSS”,那利用反射型XSS豈不是只有去忽悠用戶這一種方法?放在幾年前也許是這樣的,現(xiàn)如今,就要上演雞肋變雞翅的好戲了!


[1]欺騙
不得不說這是最簡單有效的利用方法了,但對忽悠的能力有嚴(yán)格的要求,不然用戶不會那么容易上鉤的。其次,現(xiàn)在的用戶都有了一定的安全意識,也不是那么好騙了。以上面提到的鏈接為例,由于是NASA網(wǎng)站的跨站,大家完全可以在一些天文愛好者聚集的群里發(fā)類似這樣的消息,如:“美國航空航天局公布最新UFO照片”然后加上我們的鏈接。由于是NASA的鏈接(現(xiàn)在連小學(xué)生都知道NASA是干什么的),我想應(yīng)該會有一部分人相信而去點擊從而達(dá)到了我們的目的,這個反射型的XSS被觸發(fā)。但如果不是這么碰巧呢?請往下看。


[2]ClickJacking
在幾年前的OWASP會議上,ClickJacking這種***方式被提了出來。簡單來說ClickJacking大致是這么回事:
1.表現(xiàn)為點擊某個鏈接或button時,實際上是點擊到別的地方去了(劫持鏈接)
2.不一定需要javascript,所以noscript也擋不住,但是如果有javascript會讓事情更簡單
3.***是基于DHTML的
4.需要***者一定程度上控制頁面
所以,我們只要將用戶的點擊劫持到我們的鏈接上去就行了,而且ClickJacking是可以跨域的哦~
具體應(yīng)用示例大家去google下就有了。

[3]結(jié)合CSRF技術(shù)
CSRF是偽造客戶端請求的一種***,CSRF的英文全稱是CrossSiteRequestForgery,字面上的意思是跨站點偽造請求。這種***方式是國外的安全人員于2000年提出,國內(nèi)直到06年初才被關(guān)注。
結(jié)合CSRF技術(shù)來利用反射型XSS是種不錯的方法,利用CSRF可以使得這些不好利用的XSS漏洞變得威力無窮。具體示例請參考余弦的《基于CSRF的XSS***》(http://huaidan.org/archives/2561.html),這里就不細(xì)說了。

[4]CrossIframeTrick
先講講這種***能夠達(dá)成什么效果:
1.跨域執(zhí)行腳本(IE、Firefox)
2.把非持久性XSS變成持久性XSS-->!!!
3.跨頁面執(zhí)行腳本
這種***方法比較繞,具體請參考《CrossIframeTrick》(http://hi.baidu.com/aullik5/blog/item/07d68eb015d72652092302b1.html)

[5]反轉(zhuǎn)雅典娜---配合Anehta的回旋鏢模塊
什么是Anehta?Anehta是一個跨站腳本***(XSS)的利用平臺。功能模塊化,開發(fā)者可以單獨為anehta開發(fā)各種各樣的模塊,以滿足獨特的需求。Anehta中有許多的具有創(chuàng)意的設(shè)計,回旋鏢模塊(Boomerang),就是其中一個。回旋鏢模塊的作用,是為了跨域獲取本地cookie,只是在站點上有一個XSS,種類不限,不管是反射型XSS,還是持久型XSS,都可以為我們工作。
這時,反射型XSS的余熱就被充分的發(fā)揮了。
具體示例請參考axis牛的《Anehta--Boomerang(回旋鏢),如何將反射型XSS變成持久型XSS:論跨域獲取cookie》(http://hi.baidu.com/aullik5/blog/item/02bccaeb018dc4d5d539c930.html),這里就不再做詳細(xì)的介紹。


DVWA(DamnVulnerableWebApplication)DVWA是用PHP+Mysql編寫的一套用于常規(guī)WEB漏洞教學(xué)和檢測的WEB脆弱性測試程序。包含了SQL注入、XSS、盲注等常見的一些安全漏洞。

下面簡單的以dvwa里面反射型XSS漏洞的三種等級代碼來說一下代碼審計。

首先比較low、medium、high三種級別的php代碼:

反射型 XSS

反射型 XSS

反射型 XSS

通過對三份代碼的比較,我們發(fā)現(xiàn)media的代碼比low的代碼增加了一個<script>的過濾,在提交后,我們發(fā)現(xiàn)<script>被過濾轉(zhuǎn)意了,而high的代碼則是使用了dhtmlspecialchars()函數(shù),htmlspecialchars()函數(shù)把一些預(yù)定義的字符轉(zhuǎn)換為HTML實體。

預(yù)定義的字符是:

  • &(和號)成為&amp;

  • "(雙引號)成為&quot;

  • '(單引號)成為&#039;

  • <(小于)成為&lt;

  • >(大于)成為&gt;




現(xiàn)在我們來對反射型的XSS三種級別的漏洞進(jìn)行測試

在low里,未做任何的驗證
直接提交<script>alert(/xss/)</script>測試

反射型 XSS

URL:http://192.168.111.146/dvwa/vulnerabilities/xss_r/?name=%3Cscript%3Ealert%28%27xss%27%29%3C%2Fscript%3E

反射型 XSS

在media里,只過濾了<script>,那么我們可以對它繞過去

我們可以提交<SCRIPT>alert('xss')</SCRIPT>

或者<scri<script>pt>alert('xss')</script>

反射型 XSS

URL:http://192.168.111.146/dvwa/vulnerabilities/xss_r/?name=%3CSCRIPT%3Ealert%28%2Fxss%2F%29%3C%2FSCRIPT%3E

反射型 XSS

對于high的XSS,用了htmlspecialchars,不知道你能不能用什么方法繞過,如果無法繞過可以參考Discuz的dhtmlspecialchars()函數(shù):)


淺析Anehta回旋鏢模塊工作原理
既然提到了Anehta的Boomerang模塊,那就簡單說說吧。
Boomerang的工作原理:我們知道,瀏覽器被XSS***后,***者可以用js或其他腳本控制瀏覽器的行為。這時候如果我們強(qiáng)制瀏覽器去訪問站點B上一個存在XSS漏洞的頁面,就可以繼續(xù)用B站上的XSS_B控制用戶的瀏覽器行為;那么把整個過程結(jié)合起來,簡單表示如下:
victimBrowser--->siteA,XSS_A----redirectto---->SiteB,XSS_B-----redirectsomewhere--->.....
在IE中,iframe、img等標(biāo)簽都是攔截本地cookie的。需要使用不攔截cookie的比如window.open等方法,但是window.open會被IE攔截彈出窗口,所以axis牛在Boomerang中使用了表單提交,構(gòu)造一個form,向siteB提交,然后再從SiteB導(dǎo)入一個XSSB,獲取了cookie后,再通過表單提交,跳轉(zhuǎn)回原來的SiteA.如果在SiteB上,使用XSS_B再將頁面重新定向回SiteA,那么對于用戶來說,就是簡單的閃了一下,非常具有欺騙性,整個過程就像用回旋鏢扔出去打了一下B一樣。
但其實這并沒有把反射型XSS真正的變成持久型的XSS,只是反射型XSS的一種***方式而已,也沒有跨域,而是URL重定向轉(zhuǎn)了一圈,跳了一圈又回來了。但這確實是讓反射型XSS得到了充分的利用,達(dá)到了我們的目的。axis牛的這種思路非常值得我們學(xué)習(xí)!



本文只總結(jié)了常見的反射型XSS利用的方法,但都是簡單的提了下,讓大家見到反射型XSS時能想到這些(貌似要都詳細(xì)寫出來就太多了--:),如有不足之處還請各位見諒。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI