# WebSockets Lab1 本題要觸發客服端的 alert(1),代表我們成功將惡意 payload 傳進客服的 Web UI並被執行,所以一樣先進入網站。  因為要注入訊息,所以我到 Live Chat 裡面發送訊息,並看他的請求內容。  接著我嘗試輸入其他符號,例如HTML語法之類的。  發現在輸入`<`的時候,他會自動更換成`<`,代表前端把我們的符號更改了 ,所以這裡可以嘗試攔截他,改成我們想要的東西。  ``` <img src=1 onerror='alert(1)'> ``` 這是 一段 HTML + JavaScript 的組合,利用了 img 標籤的錯誤事件 onerror: - `<img>`:HTML 裡用來放圖片的標籤 - `src=1`:這邊我們故意讓它失敗(1 不是合法圖片網址) - `onerror='alert(1)'`:當圖片載入失敗時,會觸發 onerror,執行裡面的 JavaScript。 所以整串的意思是:放一張圖片,網址亂給讓它載入失敗,然後趁失敗的時候偷偷執行 alert(1)。  :::info ### 為什麼不用 `<script>alert(1)</script>`? 這個當然也可以用,但通常會被簡單的過濾器擋掉,比如: - 過濾 `<script>` 這個 tag - 過濾 alert 但`<img onerror>`這種變體,比較容易繞過簡單防禦,而且效能高、執行快。 *而且當初嘗試的時候整個聊天機器人壞掉也沒跳出其他回應,所以改成解題步驟中的方案。 ::: ### WebSockets Lab2 -> [write up](https://hackmd.io/@mio0813/B1EfhLKmeg) ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up