一、XSS攻擊
1、什么是XSS?
XSS全稱是Cross Site Scripting即跨站腳本,當目標網站目標用戶瀏覽器渲染HTML文檔的過程中,出現了不被預期的腳本指令并執行時,XSS就發生啦。
這里我們主要注意有四點:1.目標網站目標用戶;2.瀏覽器;3.不被預期;4.腳本。
2、XSS有什么危害?
當我們知道了什么是XSS后,也一定很想知道它到底有什么用,或者有什么危害,如何防御。
關于XSS有關危害,我這里羅列2一段列表,詳細介紹不進行更多的闡述:
·掛馬
·盜竊用戶Cookie
·DOS(拒絕服務)客戶端瀏覽器
·釣魚攻擊,高級的釣魚技巧
·刪除目標文章,惡意篡改數據,嫁禍。
·挾持用戶WEB行為,甚至進一步滲透內網。
·爆發WEB2.0蠕蟲
·蠕蟲式的DDOS攻擊
·蠕蟲式掛馬攻擊,刷廣告,刷流量,破壞網上數據等
3、XSS分類
XSS有三類:反射性XSS(非持久性)、存儲型XSS(持久型)和DOM XSS。
3.1、反射型XSS
發出請求時,XSS代碼出現在URL中,作為輸入提交到服務器端,服務器端解析后相應,XSS代碼隨相應內容一起傳回到瀏覽器,最后瀏覽器解析執行XSS代碼。這個過程像一次反射,所以叫做反射型XSS。
3.2、存儲型XSS
存儲型XSS和反射型XSS的差別僅在于,提交的代碼會存儲在瀏覽器端(數據庫,內存,文件系統等),下次請求目標頁面時不用再提交XSS代碼
最典型的例子是留言板XSS,用戶提交一條包含XSS代碼的留言存儲到數據庫,目標用戶查看留言板時,那些留言的內容會從數據庫查詢出來并顯示,瀏覽器發現有XSS代碼,就當做正常的HTML與Js解析執行,于是觸發了XSS攻擊。
運行預期之外的腳本帶來的后果有很多中,可能只是簡單的惡作劇——一個關不掉的窗口:
while (true) {
alert("你關不掉我~");
}
3.3、DOM XSS
DOM XSS和反射型XSS、存儲型XSS的差別在于DOM XSS的代碼并不需要服務器參與,觸發XSS靠的是瀏覽器端的DOM解析,完全是客戶端的事情。
二、CSRF攻擊
1、CSRF是什么?
CSRF(Gross-site request forgery),中文名稱:跨站請求偽造,也被稱為:one click attack/session riding,縮寫CSRF/XSRF。
2、CSRF可以做什么?
你這可以這么理解CSRF攻擊:攻擊者盜用了你的身份,以你的名義發送惡意請求。CSRF能夠做的事情包括:以你名義發送郵件,發消息,盜竊你的賬號,甚至于購買商品,虛擬貨幣轉賬......造成的問題包括:個人隱私泄露以及產品安全。
3、CSRF漏洞現狀
CSRF這種攻擊方式在2000年已經在國外的安全人員提出,但在國內,直到06年才開始被關注,08年,國內外的多個大型社區和交互網站分別爆出CSRF漏洞,如:NYTimes.com(紐約時報)、Metafilter(一個大型的BLOG網站),YouTube和百度HI...而現在,互聯網上的許多站點仍對此毫無防備,以至于安全業界稱CSRF為“沉睡的巨人”。
4、CSRF的原理
4.1、登錄受信任的網站A,并在本地生成Cookie。
4.2、在不退出A的情況下,訪問危險網站B。
看到這里,你也許會說:‘如果我不滿足以上兩個條件的其中一個,我就不會受到CSRF的攻擊’。是的,確實如此,但你不能保證一下情況不會發生:
???1、你不能保證你在登錄一個網站后,不在打開一個tab頁面并訪問另外的網站。
???2、你不能保證你關閉瀏覽器了后,你本地的Cookie立即過期,你上次的會話已經結束。(事實上關閉瀏覽器不一定能結束一個會話)
???3、上圖所謂的攻擊網站,可能是一個存在其他漏洞的可信任的經常被人訪問的網站。