程式碼安全測試第五期:OS命令注入漏洞
1、什麼是OS命令注入?
軟體在構造OS命令時使用了外部輸入的資料,如果沒有對外部輸入中可能影響OS命令的特殊元素進行過濾,或是過濾不充分/不正確,就有受到OS命令注入攻擊的風險。
OS命令注入缺陷允許攻擊者直接在作業系統執行各種命令,當缺陷存在於網頁應用等無法直接訪問作業系統的軟體中時,會造成一些脆弱性問題。而當該缺陷存在於有高階許可權的軟體中時,攻擊者可透過缺陷獲得高階許可權,從而造成極大的危害。
2、OS命令注入兩種常見的子型別有哪些?
①應用程式透過使用者輸入的引數來構造OS命令。
例如,程式可能使用system(“nslookup [HOSTNAME]”)來執行nslookup命令,其中的HOSTNAME由使用者輸入。由於沒有檢查HOSTNAME中是否存在命令分隔符,攻擊者可將想執行的命令透過分隔符加在HOSTNAME中,當系統執行完nslookup後就會執行攻擊者的命令;
②應用程式將輸入的整個字串作為一個OS命令。
例如,透過exec([COMMAND])來執行命令,其中COMMAND由使用者輸入,此時攻擊者可以透過命令分隔符注入命令。
3、OS命令注入漏洞會造成哪些後果?
關鍵詞:執行未經授權的程式碼或命令; DoS:崩潰,退出或重啟; 讀取檔案或目錄; 修改檔案或目錄; 讀取應用資料; 修改應用資料; 隱藏活動。
攻擊者可以執行未經授權的命令,然後可以使用這些命令來禁用軟體,或者讀取和修改攻擊者無權直接訪問的資料。由於目標應用程式直接執行命令而不是攻擊者,因此任何惡意活動似乎都來自應用程式或應用程式的所有者。
4、如何防範修補OS命令注入漏洞?
從架構和設計的角度來說:
①要用最小許可權去執行程式,不要給予程式多餘的許可權,最好只允許在特定的路徑下執行,可以透過明確的路徑執行命令;
②儘可能使用庫或框架:使用不允許此弱點出現的經過稽核的庫或框架,或提供更容易避免此弱點的構造。儘可能地使用庫呼叫,而不是呼叫外部程式來完成所需功能。
③減少被攻擊面:對於那些被用於生成待執行命令的資料,儘可能避免其被外部可控的資料汙染。
從實現的角度來說:
①雖然使用動態生成的查詢字串,程式碼或命令將控制和資料混合在一起是有風險的,但有時它可能是不可避免的。正確引用引數並轉義這些引數中的任何特殊字元。最保守的方法是轉義或過濾所有未透過極其嚴格的白名單的字元(例如不是字母數字或空格的所有內容)。如果仍然需要一些特殊字元,例如空格,則在轉義/過濾步驟之後將每個引數包裝在引號中;
②如果只允許執行有限的命令,使用白名單方式過濾。
5、OS命令注入漏洞樣例:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2773625/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式碼安全測試第十二期:LDAP注入漏洞LDA
- 程式碼安全測試第六期:XPath注入漏洞
- 程式碼安全測試第十五期:跨站指令碼漏洞指令碼
- 程式碼安全測試第七期:不安全的反射漏洞缺陷反射
- PfSense命令注入漏洞分析
- 網路安全學習階段性總結:SQL隱碼攻擊|SSRF攻擊|OS命令注入|身份驗證漏洞|事物邏輯漏洞|目錄遍歷漏洞SQL
- 網站漏洞檢測 wordpress sql注入漏洞程式碼審計與修復網站SQL
- 程式碼安全測試第十八期:呼叫System.exit()存在安全漏洞
- 程式碼安全測試第十期:日誌偽造漏洞
- 程式碼安全測試第十一期:記憶體洩漏漏洞記憶體
- 邏輯注入漏洞滲透測試檢測辦法
- 程式碼安全測試第二期:URL重定向(跳轉)漏洞
- 程式碼安全測試第十六期:使用不安全的隨機值漏洞隨機
- 程式碼安全 兩種程式碼漏洞
- 程式碼安全測試第一期:什麼是SQL隱碼攻擊漏洞?SQL
- 程式碼安全測試第二十期:資源未關閉/釋放漏洞
- 程式碼安全測試第十三期:敏感資訊的明文傳輸漏洞
- 程式碼安全測試第二十二期:HTTP響應拆分漏洞HTTP
- 程式碼安全測試第四期:可逆的單向雜湊漏洞
- 網站安全測試之APP滲透測試漏洞網站APP
- 程式碼安全測試第二十八期:未使用的變數缺陷漏洞變數
- 程式碼安全測試第二十一期:從finally塊中return漏洞
- Web 安全漏洞之 SQL 注入WebSQL
- 網站滲透測試安全檢測漏洞網站
- 程式碼安全測試第九期:Switch中省略了break語句導致的程式碼缺陷漏洞
- 程式碼安全測試第三期:路徑遍歷漏洞的防範與檢測
- 程式碼安全測試第十九期:用不安全的授權建立臨時檔案漏洞
- 網站漏洞測試php程式碼修復詳情網站PHP
- 網站滲透測試漏洞分析程式碼架構網站架構
- 程式碼安全測試第二十九期:通用異常捕獲宣告缺陷漏洞
- 軟體測試與程式碼安全詳解
- 滲透測試之CSRF程式碼漏洞的檢測與加固方案
- 程式碼安全測試第二十五期:陣列宣告為public final static漏洞缺陷陣列
- 程式碼安全測試第二十四期:數字型別的不正確轉換漏洞型別
- 墨者學院-SQL手工注入漏洞測試(MySQL資料庫)MySql資料庫
- web應用安全測試之業務漏洞Web
- 測試開發必備技能:安全測試漏洞靶場實戰
- OpenSSH 命令注入漏洞(CVE-2020-15778)復現