iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
Security

學分的追逐,資安的啟程系列 第 24

Day 24 Command Injection (一)

  • 分享至 

  • xImage
  •  

什麼是 Command Injection ?

命令注入攻擊 ( Command Injection ) 也是一種 Injection Attack 不過它注入的通常是惡意的系統命令,命令注入攻擊通常發生在接受使用者輸入並將其視為系統命令的應用程式中,例如Shell命令、作業系統命令或其他可執行的命令

攻擊原理

命令注入攻擊的基本原理是攻擊者透過惡意構建的輸入,將惡意命令插入應用程式的執行中,應用程式通常會誤認為這些輸入是可信的,然後將它們傳遞給底層作業系統執行,如果應用程式未充分驗證和過濾這些輸入,攻擊者就能夠成功執行任意系統命令,這可能導致這幾種危險:

遠端命令執行 ( RCE ):攻擊者可以在目標系統上執行系統命令,從而獲得對系統的控制權

敏感資料洩漏:攻擊者可以訪問、修改或刪除敏感資料

拒絕服務(DoS)攻擊:攻擊者可以執行危險命令,使系統變得不可用,造成拒絕服務

示例

假設有一個輸入框可以給使用者輸入關鍵字,而後端會根據關鍵字搜索系統,那以下是一個發生 Command Injection 的示例

正常的搜索請求:

使用者輸入:apple
後端處理:執行搜索命令,例如:`grep apple data.txt`

如果未適當驗證和過濾使用者輸入,攻擊者可以輸入惡意命令

惡意搜索請求:

使用者輸入:apple; ls
後端處理:執行搜索命令,但同時也執行了列出檔案的命令:`grep apple; ls data.txt`

在這種情況下,攻擊者成功執行了 ls 命令,列出目錄中的檔案

一些常見的 Command

  1. Linux/Unix 系統命令

    • whoami: 使用者帳號
    • ls:列出目錄中的檔案和子目錄
    • cat:查看檔案內容
    • rm:刪除檔案或目錄
    • chmod:修改檔案或目錄的權限
    • uname -a: 目前是什麼作業系統
    • ifconfig: 網路設定
    • ps -ef: 目前執行的程序
    • grep:在檔案中搜尋文字
    • passwd:更改使用者密碼
    • ssh:遠端登入到另一台電腦
  2. Windows 系統命令

    • whoami: 使用者帳號
    • dir:列出目錄中的檔案和子目錄
    • type:查看檔案內容
    • delrmdir:刪除檔案或目錄
    • icacls:修改檔案或目錄的權限
    • uname -a: 目前是什麼作業系統
    • ipconfig: 網路設定
    • tasklist: 目前執行的程序
    • net user:管理使用者帳戶
    • powershell:執行PowerShell指令
  3. 資料庫命令

    • SQL查詢:如果攻擊者能夠執行資料庫查詢,則可以注入惡意的SQL查詢以訪問、修改或刪除資料庫中的資料。
  4. 其它

    • ping:確定網路連線是否正常 (ICMP)
    • curlwget:下載遠端檔案
    • nslookupdig:查詢DNS記錄
    • netstat -an : 網路連結的狀況
  5. 連接符號 :

    • ; : 結束第一個命令,直接執行第二個
    • && : 第一個指令成功後執行第二個
    • || : 第一個指令失敗後執行第二個

如何防止 Command Injection ?

  • 使用安全的 API 來執行系統的命令
  • 過濾輸入跟驗證

    可用正規表達式跟白名單過濾

  • 減少使用易受攻擊的函數

    例如 PHP 的 Exec、Passthru、System、Shell_exec
    Python的 subprocess.call

參考資料

https://feifei.tw/command-injection/
https://tech-blog.cymetrics.io/posts/jo/zerobased-injectionattack/


上一篇
Day 23 XSS (四) -- Dom 型 XSS
下一篇
Day 25 Command Injection (二)
系列文
學分的追逐,資安的啟程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言