# Cross-site scripting Lab19
本題是輸入被反映進一段 JavaScript 字串中,而且會經過編碼。
一樣先進入網站。

搜尋並查看原始碼。


這裡隨意輸入各種符號可知:
- 單引號 `'` 被跳脫為 `\'`。
- 雙引號 `"` 和 `<` `>` 被 HTML 編碼為 `"`、`<`、`>`。
- 反斜線 `\` 沒有被跳脫。
所以:
```
\'-alert(1)//
```
到 JS 當中:
```
var searchTerms = '\' - alert(1) //';
```
- `\'` 產生一個「未封閉的跳脫字元」,實際輸出的是 `'`。
- `-alert(1)` JavaScript 中合法表達式,`-` 把前後斷開。
- `//` 把後面的結尾註解掉,避免語法錯誤。
最後拿去搜尋。


---