什麼是命令注入?如何形成的?

老男孩IT教育機構發表於2023-04-21

  在網路安全領域,我們經常會看到或聽到一些比較陌生的專業術語,比如“命令注入”,那麼什麼是命令注入?如何形成的?具體內容請看下文。

  什麼是命令注入?

  Command Injection,即命令注入攻擊,是指由於嵌入式應用程式或者web應用程式對使用者提交的資料過濾不嚴格,導致駭客可以透過構造特殊命令字串的方式,將資料提交至應用程式中,並利用該方式執行外部程式或系統命令實施攻擊,非法獲取資料或者網路資源等。

  在命令注入的漏洞中,最為常見的是PHP的命令注入。PHP命令注入攻擊存在的主要原因是web應用程式設計師在應用PHP語言中一些具有命令執行功能的函式時,對使用者提交的資料內容沒有進行嚴格的過濾就帶入函式中執行而造成的。例如,當駭客提交的資料內容為向網站目錄寫入PHP檔案時,就可以透過該命令注入攻擊漏洞寫入一個PHP後門檔案,進而實施進一步的滲透攻擊。

  原理:Web應用在呼叫這些函式執行系統命令的時候,在沒有做好過濾使用者輸入的情況下,如果使用者將自己的輸入作為系統命令的引數拼接到命令列中,就會造成命令注入的漏洞。

  命令注入攻擊是如何形成的?

  嵌入式應用程式或者web應用程式有時需要呼叫一些系統命令的函式,如Linux C中的system(),exec(),shell-exec()等等,當使用者能夠控制這些函式中的引數時,就可以將惡意參系統命令拼接到正常命令中,從而造成命令注入攻擊裝置系統。

  命令注入的形成需要如下三個條件:

  1、使用了內部呼叫shell的函式:system(),exec()等。

  2、將外界傳入的引數沒有足夠的過濾,直接傳遞給內部呼叫shell的函式。

  3、引數中shell的元字元沒有被轉義。

  危害:繼承嵌入式應用程式或者web應用程式的許可權去執行系統命令讀寫執行檔案,導致系統有可能會被惡意攻擊或者洩露系統使用者資訊。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2947487/,如需轉載,請註明出處,否則將追究法律責任。

相關文章