




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
XSS跨站腳本攻擊技術原理及防護措施2010年07月12日星期一1:08P.M.發表:紅科網安作者:Amxking發布時間:2010-06-23摘要:本文作者Amxking通過對xss跨站腳本攻擊漏洞的歷史、攻擊特點、攻擊原理描述及案例代碼實戰舉例詳細解析XSS漏洞攻擊技術,并提出防御XSS跨站漏洞的思路方法。及WEB開發者開發網站過程中防范編碼中產生xss跨站腳本攻擊漏洞需要注意的事項。XSS漏洞概述:XSS(CrossSiteScript)跨站點腳本攻擊是一種注射的問題,在這種惡意腳本注入否則良性和信任的網站類型。跨站點腳本(XSS)攻擊,攻擊者使用時,會出現一個網絡應用程序發送惡意代碼,一般是在瀏覽器端腳本的形式,向不同的最終用戶。這些缺陷,使攻擊成功是相當普遍,發生在任何地方從一個Web應用程序使用在輸出它沒有驗證或編碼了用戶輸入。攻擊者可以使用XSS的惡意腳本發送到一個毫無戒心的用戶。最終用戶的瀏覽有沒有辦法知道該腳本不應該信任,將執行該腳本。因為它認為該腳本來從一個受信任的源,惡意腳本可以訪問任何Cookie,會話令牌,或其他敏感信息的瀏覽器保留,并與該網站使用。甚至可以重寫這些腳本的HTML網頁的內容。XSS漏洞歷史:XSS(Cross-sitescripting)漏洞最早可以追溯到1996年,那時電子商務才剛剛起步,估計那時候國內很少人會想象到今天出現的幾個國內電子商務巨頭淘寶、當當、亞馬遜(卓越)°XSS的出現“得益”于JavaScript的出現,JavaScript的出現給網頁的設計帶來了無限驚喜,包括今天風行的AJAX(AsynschronousJavaScriptandXML)。同時,這些元素又無限的擴充了今天的網絡安全領域。XSS漏洞攻擊特點:XSS跨站漏洞種類多樣人:XSS攻擊語句可插入到、URL地址參數后面、輸入框內、img標簽及DIV標簽等HTML函數的屬人里、Flash的getURL()動作等地方都會觸發XSS漏洞。XSS跨站漏洞代碼多樣人:為了躲避轉義HTML特殊字符函數及過濾函數的過濾,XSS跨站的代碼使用“/”來代替安字符“””、使用Tab鍵代替空格、部分語句轉找成16進制、添加特殊字符、改變大小寫及使用空格等來繞過過濾函數。如果在您的新聞系統發現安全漏洞,如果該漏洞是一個SQL注入漏洞,那么該漏洞就會得到您的網站管理員密碼、可以在主機系統上執行shell命令、對數據庫添加、刪除數據。如果在您的新聞或郵件系統中發現安全漏洞,如果該漏洞是一個XSS跨站漏洞,那么可以構造一些特殊代碼,只要你訪問的頁面包含了構造的特殊代碼,您的主機可能就會執行木馬程序、執行”***Cookies代碼、突然轉到一個銀行及其它金融類的網站、泄露您的網銀及其它賬號與密碼等。XSS攻擊原理:XSS屬于被動式的攻擊。攻擊者先構造一個跨站頁面,利用script、<IMG>、<IFRAME>等各種方式使得用戶瀏覽這個頁面時,觸發對被攻擊站點的http請求。此時,如果被攻擊者如果已經在被攻擊站點登錄,就會持有該站點cookie。這樣該站點會認為被攻擊者發起了一個http請求。而實際上這個請求是在被攻擊者不知情的情況下發起的,由此攻擊者在一定程度上達到了冒充被攻擊者的目的。精心的構造這個攻擊請求,可以達到冒充發文,奪取權限等等多個攻擊目的。在常見的攻擊實例中,這個請求是通過script來發起的,因此被稱為CrossSiteScript。攻擊YahooMail的Yamanner蠕蟲是一個著名的XSS攻擊實例。YahooMail系統有一個漏洞,當用戶在web上察看信件時,有可能執行到信件內的javascript代碼。病毒可以利用這個漏洞使被攻擊用戶運行病毒的script。同時YahooMail系統使用了Ajax技術,這樣病毒的script可以很容易的向YahooMail系統發起ajax請求,從而得到用戶的地址簿,并發送病毒給他人。XSS攻擊主要分為兩類:一類是來自內部的攻擊,主要指的是利用WEB程序自身的漏洞,提交特殊的字符串,從而使得跨站頁面直接存在于被攻擊站點上,這個字符串被稱為跨站語句。這一類攻擊所利用的漏洞非常類似于SQLInjection漏洞,都是WEB程序沒有對用戶輸入作充分的檢查和過濾。上文的Yamanner就是一例。另一類則是來來自外部的攻擊,主要指的自己構造XSS跨站漏洞網頁或者尋找非目標機以外的有跨站漏洞的網頁。如當我們要滲透一個站點,我們自己構造一個跨站網頁放在自己的服務器上,然后通過結合其它技術,如社會工程學等,欺騙目標服務器的管理員打開。這一類攻擊的威脅相對較低,至少ajax要發起跨站調用是非常困難的。案例實戰:我們來看一個簡單的攻擊實例,下表給出了一個簡單的網站:8080/testxss,該網站的密碼和用戶名相同,普通用戶可以修改uservalue,當以admin身份登陸時可以通過向doadmin.jsp發起請求來修改adminvalue。index.jsp<html><body><textarearows=〃3〃cols=〃100〃readonly=〃on〃>CurrentUser:${username}AdminValue:${adminvalue}UserValue:${uservalue}</textarea><br><ahref=〃login.jsp〃/>logout</a><br>Login:<br><formaction=〃login.jsp〃method=〃post〃>username:<inputtype=〃text〃name=〃u〃></input><br>password:<inputtype=〃text〃name=〃p〃></input><br><inputtype=〃submit〃/>password==username:-)</form><formaction=〃doadmin.jsp〃method=〃post〃>adminvalue:<inputtype=〃text〃name=〃v〃></input><br><inputtype=〃submit〃/></form><formaction=〃doadmin.jsp〃method=〃post〃>uservalue:<inputtype=〃text〃name=〃v2〃></input><br><inputtype=〃submit〃/></form></body>login.jsp<%Stringu=request.getParameter(〃u〃);Stringp=request.getParameter(〃p〃);if(u!=null&&p!=null&&u.equals(p)){session.setAttribute(〃username〃,u);}else{session.removeAttribute(〃username〃);}response.sendRedirect(〃index.jsp〃);%>doadmin.jsp<%Stringu=(String)session.getAttribute(〃username〃);Stringv=request.getParameter(〃v〃);Stringv2=request.getParameter(〃v2〃);if(u!=null&&u.equals(〃admin〃)){if(v!=null)application.setAttribute(〃adminvalue〃,v);}if(u!=null&&v2!=null)application.setAttribute(〃uservalue〃,v2);response.sendRedirect(〃index.jsp〃);%>容易想到,只要誘騙admin用戶發起一個到:8080/testxss/doadmin.jsp的http請求,就能成功攻擊。因此我們設計跨站語句如下:hello</textarea><imgsrc="/2xwfed"style=〃display:none〃></img>hello</textarea><formid=〃shit〃action=":8080/testxss/doadmin.jsp〃methond=〃post〃target=〃myframe〃/><inputtype=〃hidden〃name=〃v〃value=〃hacked3〃/></form><iframestyle=〃display:none〃name=〃myframe〃></iframe><script>document.forms[0].submit()</script>hello</textarea><scriptlanguage=〃jscript〃>v=newActiveXObject(〃MSXML2.XMLHTTP.3.0〃);v.open(〃GET〃,〃:8080/testxss/doadmin.jsp?v=hacked4〃):v.send();alert(v.statusText);</script>以普通用戶身份修改uservalue為以上任何一個,當admin瀏覽index.jsp時,即可悄無聲息的修改adminvalue這里演示了3種跨站手法:1是利用img、iframe等tag直接發起請求,這適用于無法直接出script的情況,其中/2xwfed是一個redirect,指向:8080/testxss/doadmin.jsp?v=hacked2;2是用script提交post表單;3是ajax技術。以上攻擊能夠成功有2個原因:應用程序沒有對uservalue做足夠多的過濾,導致用戶有機會構造一個復雜的跨站語句來觸發admin的非預期行為;應用程序在響應adminvalue修改請求時沒有防范措施來識別這是不是出于用戶主動。漏洞1很容易修復,只要像防止SQLInjection那樣對用戶輸入的所有內容都過濾即可。漏洞2才是問題的根源,即便我們修補了漏洞1,只要誘使admin用戶訪問包含<imgsrc=〃/2xwfed〃></img>的頁面,仍然能達到目的,而這是一件極容易做到的事。防范措施:這里給出一些防范XSS攻擊的措施。必須說明的是,對于XSS攻擊,并不像SQLInjection那樣可以有一勞永逸的解決方案一一只需要grep一下所有的sql調用。這是一場長期的斗爭,而且往往需要我們采取修改業務流程、產品設計等看似削足適履的手段。先總結一下常見的攻擊手法:依賴跨站漏洞,需要在被攻擊網站的頁面種入腳本的手法Cookie盜取,通過javascript獲取被攻擊網站種下的cookie,并發送給攻擊者。從cookie中提取密碼等隱私利用cookie偽造session,發起重放攻擊Ajex信息盜取,通過javascript發起ajex請求。從ajex結果中獲取隱私。模擬用戶完成多頁表單。不依賴跨站漏洞的手法單向HTTP動作,通過img.src等方法發起跨站訪問,冒充被攻擊者執行特權操作。但是很難拿到服務器的返回值。雙向HTTP動作,如果服務器產生一段動態的script,那么可以用script.src的方法發起跨站訪問并拿到服務器的返回值。防范手法如下:防堵跨站漏洞,阻止攻擊者利用在被攻擊網站上發布跨站攻擊語句不可以信任用戶提交的任何內容,首先代碼里對用戶輸入的地方和變量都需要仔細檢查長度和對”<”,”>”,”;”,”’”等字符做過濾;其次任何內容寫到頁面之前都必須加以encode,避免不小心把htmltag弄出來。這一個層面做好,至少可以堵住超過一半的XSS攻擊。Cookie防盜首先避免直接在cookie中泄露用戶隱私,例如email、密碼等等。其次通過使cookie和系統ip綁定來降低cookie泄露后的危險。這樣攻擊者得到的cookie沒有實際價值,不可能拿來重放。盡量采用POST而非GET提交表單POST操作不可能繞開javascript的使用,這會給攻擊者增加難度,減少可利用的跨站漏洞。嚴格檢查refer檢查httprefer是否來自預料中的url。這可以阻止第2類攻擊手法發起的http請求,也能防止大部分第1類攻擊手法,除非正好在特權操作的引用頁上種了跨站訪問。將單步流程改為多步,在多步流程中引入效驗碼多步流程中每一步都產生一個驗證碼作為hidden表單元素嵌在中間頁面,下一步操作時這個驗證碼被提交到服務器,服務器檢查這個驗證碼是否匹配。首先這為第1類攻擊者大大增加了麻煩。其次攻擊者必須在多步流程中拿到上一步產生的效驗碼才有可能發起下一步請求,這在第2類攻擊中是幾乎無法做到的。引入用戶交互簡單的一個看圖識數可以堵住幾乎所有的非預期特權操作。只在允許anonymous訪問的地方使用動態的javascript。對于用戶提交信息的中的img等link,檢查是否有重定向回本站、不是真的圖片等可疑操作。內部管理網站的問題很多時候,內部
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業設計在智能產品開發中的作用和價值研究
- 工業領域的智能化數據分析
- 工業設計原理與產品設計創新
- 工業設計的創新方法與技術應用
- 工業風格商業空間設計
- 工業風辦公室裝修風格解讀
- 工作場合有效表達的技巧
- 工廠用電安全操作規范
- 工程力學中動載材料特性研究
- 工程測量中的新方法與新技術探討
- 幼兒園繪本故事《三只小豬蓋房子》教學課件全文
- 食品行業供貨周期管理方案
- 傅里葉級數和傅里葉變換課件
- 小學英語時態練習單選題100道及答案解析
- 國家漢語主題詞表
- (新版)特種設備安全管理取證考試題庫(濃縮500題)
- 中醫基礎情志護理
- 論網絡言論自由的法律規制分析研究-以當前網絡暴力現象為解析 法學專業
- 2024-2025形勢與政策:發展新質生產力-推動高質量發展的內在要求和重要著力點
- 倉庫搬運裝卸服務方案
- 示范區城區控制性詳細規劃說明書
評論
0/150
提交評論