【轉】【TODO】淺談反射型跨站腳本攻擊的利用
在Web 2.0技術的發展下越來越多的計算工作被放到客戶端處理,由于程序員的疏忽,導致了許多的安全漏洞。如今,隨著XSS漏洞的危害日益增大,如校內和baidu空間前陣子的XSS WORM等等,其危害之大也引起了大家的重視。
XSS的類型大體分為兩種:反射型XSS和持久型XSS,相比之下,后者的利用要比前者方便許多。甚至許多人認為反射型的XSS是雞肋,因為其利用起來很不方便,但在安全技術飛速發展的今天,雞肋也有變雞翅的一天。下面我們來看看什么是反射型XSS.
什么是反射型XSS
XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執行,從而達到惡意攻擊用戶的特殊目的。
那么什么是反射型XSS呢?黑哥對我講的是形如"
非持久性XSS(Reflected cross-site scripting),是我們通常所說的反射型XSS,也是最常用,使用最廣的一種方式。它通過給別人發送帶有惡意腳本代碼參數的URL,當URL地址被打開時,特有的惡意代碼參數被HTML解析、執行。它的特點是非持久化,必須用戶點擊帶有特定參數的鏈接才能引起。 持久性XSS(Persistent cross-site scripting),指的是惡意腳本代碼被存儲進被攻擊的數據庫,當其他用戶正常瀏覽網頁時,站點從數據庫中讀取了非法用戶存入非法數據,惡意腳本代碼被執行。這種攻擊類型通常在留言板等地方出現。 很多人非常鄙視非持久性XSS(反射型XSS),認為這種XSS只能依靠欺騙的手段去騙人點擊,才能讓攻擊正常實施起來。其實讓反射型XSS變得持久的方法,已經出現過好多次了。比如利用applet、利用flash的AS腳本、利用IE的Ghost 頁面,Cross Iframe Trick等等。 反射型XSS的常見利用方法 既然是“需要欺騙用戶自己去點擊鏈接才能觸發XSS”,那利用反射型XSS豈不是只有去忽悠用戶這一種方法?放在幾年前也許是這樣的,現如今,就要上演雞肋變雞翅的好戲了! ·欺騙 不得不說這是最簡單有效的利用方法了,但對忽悠的能力有嚴格的要求,不然用戶不會那么容易上鉤的。其次,現在的用戶都有了一定的安全意識,也不是那么好騙了。以上面提到的鏈接為例,由于是NASA網站的跨站,大家完全可以在一些天文愛好者聚集的群里發類似這樣的消息,如:“美國航空航天局公布最新UFO照片”然后加上我們的鏈接。由于是NASA的鏈接(現在連小學生都知道NASA是干什么的),我想應該會有一部分人相信而去點擊從而達到了我們的目的,這個反射型的XSS被觸發。但如果不是這么碰巧呢?請往下看。 ·ClickJacking 在去年的OWASP會議上,ClickJacking這種攻擊方式被提了出來。簡單來說ClickJacking大致是這么回事: 1. 表現為點擊某個鏈接或button時,實際上是點擊到別的地方去了(劫持鏈接) 2. 不一定需要javascript,所以noscript也擋不住,但是如果有javascript會讓事情更簡單 3. 攻擊是基于DHTML的 4. 需要攻擊者一定程度上控制頁面 所以,我們只要將用戶的點擊劫持到我們的鏈接上去就行了,而且ClickJacking是可以跨域的哦~ 具體應用示例大家去google下就有了。 ·結合CSRF技術 CSRF是偽造客戶端請求的一種攻擊,CSRF的英文全稱是Cross Site Request Forgery,字面上的意思是跨站點偽造請求。這種攻擊方式是國外的安全人員于2000年提出,國內直到06年初才被關注。 結合CSRF技術來利用反射型XSS是種不錯的方法,利用CSRF可以使得這些不好利用的XSS漏洞變得威力無窮。具體示例請參考余弦的《基于CSRF的XSS攻擊》(http://huaidan.org/archives/2561.html),這里就不細說了,有機會專門寫篇關于CSRF的paper. ·Cross Iframe Trick 先講講這種攻擊能夠達成什么效果: 1. 跨域執行腳本(IE、Firefox) 2. 把非持久性XSS變成持久性XSS ——>!!! 3. 跨頁面執行腳本 這種攻擊方法比較繞,具體請參考《Cross Iframe Trick》(http://hi.baidu.com/aullik5/blog/item/07d68eb015d72652092302b1.html) ·反轉雅典娜——配合Anehta的回旋鏢模塊 什么是Anehta? Anehta是一個跨站腳本攻擊(XSS)的利用平臺。功能模塊化,開發者可以單獨為anehta開發各種各樣的模塊,以滿足獨特的需求。Anehta中有許多的具有創意的設計,回旋鏢模塊(Boomerang),就是其中一個?;匦S模塊的作用,是為了跨域獲取本地cookie,只是在站點上有一個XSS,種類不限,不管是反射型XSS,還是持久型XSS,都可以為我們工作。 這時,反射型XSS的余熱就被充分的發揮了。 淺析Anehta回旋鏢模塊工作原理 既然提到了Anehta的Boomerang模塊,那就簡單說說吧。 Boomerang的工作原理:我們知道,瀏覽器被XSS攻擊后,攻擊者可以用js或其他腳本控制瀏覽器的行為。這時候如果我們強制瀏覽器去訪問站點B上一個存在XSS漏洞的頁面,就可以繼續用B站上的XSS_B控制用戶的瀏覽器行為; 那么把整個過程結合起來,簡單表示如下: victim Browser ——>site A,XSS_A —— redirect to ——>Site B,XSS_B —— redirect somewhere ——>…… 在IE中,iframe、img等標簽都是攔截本地cookie的。需要使用不攔截cookie的比如 window.open等方法,但是window.open會被IE攔截彈出窗口,所以axis牛在Boomerang中使用了表單提交,構造一個form,向site B提交,然后再從Site B導入一個XSS B,獲取了cookie后,再通過表單提交,跳轉回原來的Site A.如果在Site B上,使用XSS_B再將頁面重新定向回 Site A,那么對于用戶來說,就是簡單的閃了一下,非常具有欺騙性,整個過程就像用回旋鏢扔出去打了一下B一樣。 但其實這并沒有把反射型XSS真正的變成持久型的XSS,只是反射型XSS的一種攻擊方式而已,也沒有跨域,而是URL重定向轉了一圈,跳了一圈又回來了。但這確實是讓反射型XSS得到了充分的利用,達到了我們的目的。axis牛的這種思路非常值得我們學習! 小結 本文只總結了常見的反射型XSS利用的方法,但都是簡單的提了下,起到了個拋磚引玉的作用,讓大家見到反射型XSS時能想到這些(貌似要都詳細寫出來就太多了- -:),如有不足之處還請各位見諒。
posted on 2010-04-13 21:04 小默 閱讀(415) 評論(0) 編輯 收藏 引用 所屬分類: Security

