38.檢測人員在利用SQL注入(SQLInjection)成功後,發現在/var/logs/AUTH.log中,出現了一個名為'<?phpsystem($_GET['c']);?>'的帳號嘗試登入該主機,如果這網網站存在LFI(LocalFileInclusion)弱點時,可以從Webaccesslog中的uriquerystring找到什麼特徵?
(A)C=''or1=1--
(B)C=alert(document.cookie)
(C)C=whoami&&ipaddr&&hostname
(D)C=SLEEP(5)
統計: A(76), B(16), C(195), D(2), E(0) #3416764
詳解 (共 2 筆)
題目重點
-
測試情境:登入畫面會回應詳細錯誤訊息(帳號不存在、密碼錯誤),這是資訊揭露的風險。
-
觀察:登入請求中每次都會更新一個隨機值(如圖中的 next-csrf)。
-
提問:這種防護措施可以有效避免哪一種攻擊?
選項分析
(A) SQL 注入 (SQL Injection)
-
與此無關。SQL Injection 防護要靠參數化查詢、輸入驗證,而不是隨機 Token。
(B) 跨站請求偽造 (Cross-Site Request Forgery, CSRF) ✅
-
CSRF 攻擊利用使用者已登入的狀態,透過第三方惡意網站偽造請求。
-
防護方式之一就是在表單或請求中加入 CSRF Token,並且每次重新登入/提交表單時都更新 Token,避免攻擊者重放或偽造請求。
-
題目描述的「每次登入時更新的值」正是 CSRF Token。
(C) 指令注入 (Command Injection)
-
指令注入是程式將輸入帶入系統命令造成被執行,與此處 Token 無關。
(D) 跨站指令碼 (Cross-Site Scripting, XSS)
-
防護 XSS 需靠輸入/輸出編碼、CSP,而不是透過隨機 Token。
✅ 正確答案
(B) 跨站請求偽造 (Cross-Site Request Forgery, CSRF)
