33. 請問這些日誌內容裡面的「127.0.0.1; sleep 5」,最有可能是發生下列哪一種攻擊情境?
(A) 攻擊者想確認該功能是否存在資料庫注入攻擊(SQL Injection)
(B) 攻擊者想確認該功能是否存在反序列化攻擊(Insecure Deserialization)
(C) 攻擊者想確認該功能是否存在指令注入攻擊 (Command Injection)
(D) 攻擊者想確認該功能是否存在資安記錄及監控失效 (Security Logging and Monitoring Failures)
答案:登入後查看
統計: A(1), B(3), C(39), D(17), E(0) #3536979
統計: A(1), B(3), C(39), D(17), E(0) #3536979
詳解 (共 2 筆)
#6842942
✅ 答案: (C) 攻擊者想確認該功能是否存在指令注入攻擊 (Command Injection)
? 題目解析
題目描述的是一個有「ping」功能的伺服器網頁應用,
而攻擊者在輸入欄位中輸入了這樣的內容:
? 一、關鍵線索
-
原本功能應該只接受輸入 IP,例如:
ping 127.0.0.1 -
但攻擊者在 IP 後面加上分號 ;,再接其他指令,例如:
127.0.0.1; sleep 5這代表他懷疑程式內部可能是這樣執行的:
os.system("ping " + user_input)若如此,攻擊者就能透過 指令連接符號 ;,在同一行執行多個命令。
? 二、攻擊手法說明:Command Injection(指令注入)
-
攻擊重點:利用應用程式把使用者輸入直接當作系統命令執行。
-
攻擊指令範例與題目完全相符:
-
sleep 5:測試是否能讓系統延遲回應(確認是否可執行指令)
-
whoami:確認執行身分
-
bash -i | nc ...:建立反向 shell 連線
-
? 三、其他選項排除
| 選項 | 為何錯誤 |
|---|---|
| (A) SQL Injection | 針對資料庫查詢語法注入,如 SELECT * FROM users WHERE id='1 OR 1=1',與此題的系統命令無關。 |
| (B) Insecure Deserialization | 與物件反序列化漏洞有關(常見於 Java、PHP),此題是命令注入,不相關。 |
| (D) Security Logging and Monitoring Failures | 這是防護面問題,非攻擊類型。題目描述的是攻擊行為。 |
✅ 正確答案:
(C) 指令注入攻擊 (Command Injection)
?補充知識
常見檢測指令注入的方法:
127.0.0.1; sleep 5 # 回應延遲,表示可能成功注入 127.0.0.1 && whoami # 嘗試列出執行帳號防禦方式:
-
嚴格輸入驗證(Whitelist IP 格式)
-
使用安全 API(例如 subprocess.run([...], shell=False))
-
最小權限原則(非 root 執行)
1
0