# WebSockets Lab3
本題一樣要我們觸發 support agent 的瀏覽器執行 alert(1),所以先進入網址。

輸入訊息。

本題字串一樣會被更改,所以用老方法試試看。


被擋下來了,6。
既然他有嚴格的封鎖機制,那就透過 X-Forwarded-For 偽造 IP 重新連線。
:::info
### 為什麼用 X-Forwarded-For 可以偽造 IP 並重新連線?
伺服器是根據 X-Forwarded-For header 來判斷使用者 IP,而不是直接看 TCP 連線的來源 IP。
### 什麼是 X-Forwarded-For?
它是個 HTTP header,設計用來讓**反向代理伺服器**(如 Nginx、CDN、Load Balancer)傳遞使用者的**原始 IP**。
```
X-Forwarded-For: 203.0.113.42
```
伺服器收到這個,就會以為你是從 203.0.113.42 來的。
### 重點小結
為什麼原本被 ban? -> 發惡意 payload,被偵測到後,伺服器根據 IP 把你封鎖了。
為何改 X-Forwarded-For 有效? -> 伺服器只看 header 判定你是誰,不是實際 IP。
有什麼問題? -> 伺服器沒驗證 header 的真實性,任何人都能偽造。
### 簡單來說
你被夜市保全趕出去,他是根據你戴的帽子認你的臉。
你只要換頂帽子(X-Forwarded-For: 新 IP),保全就不認得你,讓你重新進場繼續吵架(送 payload)。
:::
所以加上我們的新IP再送出一次,並且用混淆自元來逃過他的判定(不然會被鎖第二次)。

```
<img src=1 oNeRrOr=alert`1`>
```


### ALL Lab -> [write up](https://hackmd.io/@mio0813/S1PWgVaRyg)
---