存儲型XSS與反射型XSS有什麼區別?
用實例講解一下,我想清楚的理解這些東西的概念。
存儲型XSS,持久化,代碼是存儲在伺服器中的,如在個人信息或發表文章等地方,加入代碼,如果沒有過濾或過濾不嚴,那麼這些代碼將儲存到伺服器中,用戶訪問該頁面的時候觸發代碼執行。這種XSS比較危險,容易造成蠕蟲,盜竊cookie等。如:人人網又一大波蠕蟲,位置在首頁+登錄就中招+通殺網頁和人人桌面
反射型XSS,非持久化,需要欺騙用戶自己去點擊鏈接才能觸發XSS代碼(伺服器中沒有這樣的頁面和內容),一般容易出現在搜索頁面。如下面這個點擊彈出自己的在該網站的cookie:
http://search.bbs.tom.com/bbs.jsp?q=%22%2F%3E%3Cscript%3Ealert%28document.cookie%29%3C/script%3E%20cmd=1sort=3ty=1具體概念,請樓主自行google,baidu。 這裡我想說的是這個世界對於反射型xss是不公平的,不管是甲方還是乙方很多人相比存儲型XSS更加bs反射型xss。其中一個比較大的理由就是說「反射型xss」要「點擊」等交互,才能觸發,其實「交互性」本身就是web2.0時代的一個顯著的特點,也就是交互不交互在xss利用里並不是什麼關鍵點。 一個很好的說明,我曾經在我們80vul的主站上掛了1年多的xss 都是反射的,只有一個人和我反饋過(當然可能有人發現了也沒說啥)
不過有一個點還是要強調的,反射的xss 因為url特徵更加容易被防禦。很多瀏覽器都有自己的xss過濾器。
存儲型XSS也好,反射型XSS也罷。xss的本質問題就是讓對方瀏覽器執行你插入的js 想明白這點後你發現 2者分類沒太多的區別。
微博上有個博友 提出一個比喻:「地雷和槍比較的概念吧,一個要踩,一個要練好槍法。」
附上我的迴文:「這個比喻是不怎麼恰當的,反射也好存儲xss也好,都是要對方瀏覽器訪問並執行了你插入的js才行,說到底都2個都是雷,sql注射、遠程溢出那說是槍比較恰當。竟然都是雷,你就得讓敵人觸發。而這個對於雷來說 就是它本身得一個特點,就好像交互性本來就是web2.0得特點一樣」很簡單存儲型跟反射型就好比一個鉛球一個是足球
鉛球用力砸地上是不是砸了一個坑?這個坑是不是一直在那兒?
足球砸地上是不是就反彈回來了?
那麼問題來了。
如何攻擊?
如果是鉛球的話,是不是有兩種方法 1,直接拿鉛球丟人家!(也就說,把帶XSS的惡意網址發過去) 2,用鉛球砸個坑,等用戶來跳(比方說,你在留言板留了一個XSS,那麼所有看見留言板的用戶就都掉坑裡(中招)了)如果是足球的話,是不是只能直接拿球丟人家?((也就說,把帶XSS參數的惡意網址發過去))
最後一個問題,存儲跟反射哪個危害嚴重?那我問你個問題,足球跟鉛球打你,哪個比較痛?比如 題主最近剛熟悉了XX Web框架 自己搭了架構 寫了後台和前台
假定題主主攻後台 沒有前段僅僅就是單純的實現【沒有做到html css js 松耦合 正則表達式僅僅是剛會用】題主寫了一個留言板 頁面 並且使用資料庫的方式 把用戶輸入到留言板的數據給存儲在某個表裡
然後題主興奮的申請了域名 買了主機 發布到了互聯網
這時題主遇到一個小學生 剛學會google指令 爬了很多wooyun infosec里的精彩xss功防分析的帖子
他開始用自己在網上看到的各種payload[惡意腳本] 對你的留言板部分進行 注入測試
發現了題主採用了js innerHTML的方式顯示用戶的輸入 結果成功的把一個帶有js的標籤提交了給後台 後台資料庫則直接存儲了它 然後回顯給了前段 這時候瀏覽器發現了一條從後台讀來的代碼里可以執行js 它想都不想的就執行了太長 不知道會不會被摺疊:
1. 跟web前端有關聯的腳本語言要善用【關注一下輸入輸出部分的方法 的優缺點】2. 儘可能的做到前端代碼的低耦合高內聚3. 加密你的腳本語言4. 過濾【正則不是那麼單純30分鐘就看了 認為自己學會了 說白了 就是寫處理字元串的演算法】5. 分析 存在「輸入輸出」 【留言模塊 查詢模塊】使用前端技術做主要實現好 還是後端技術做主要實現好 【安全方面的架構問題】6. 伺服器和網路基礎【伺服器防禦csrf方面的配置多看看 http協議 一些標準也要讀一些】
餘弦的書說的很明白啊,最大的區別就是xss代碼是否存儲在伺服器中。反射最典型的例子就是給個鏈接讓你點擊。存儲最典型的例子就是留言板啊。
XSS蠕蟲病毒--即將發生的威脅與最好的防禦.pdf
區別:js代碼有無存儲在資料庫中~
推薦閱讀:
※DOM-based XSS 與存儲性 XSS、反射型 XSS 有什麼區別?
※XSS 攻擊時怎麼繞過 htmlspecialchars 函數呢?
※XSS 攻擊有哪些黑魔法?
※如何評價 XSS 在黑客攻防中的地位或重要性?
※Content Security Policy (CSP) 是什麼?為什麼它能抵禦 XSS 攻擊?