複製鏈接
請複製以下鏈接發送給好友

遠程代碼執行漏洞

鎖定
遠程命令執行漏洞,用户通過瀏覽器提交執行命令,由於服務器端沒有針對執行函數做過濾,導致在沒有指定絕對路徑的情況下就執行命令,可能會允許攻擊者通過改變 $PATH 或程序執行環境的其他方面來執行一個惡意構造的代碼。
中文名
遠程代碼執行漏洞
外文名
Remote Code Execution Vulnerability
所屬學科
互聯網
形成原因
未針對代碼中特殊函數入口做過濾

遠程代碼執行漏洞漏洞原理

由於開發人員編寫源碼,沒有針對代碼中可執行的特殊函數入口做過濾,導致客户端可以提交惡意構造語句提交,並交由服務器端執行。命令注入攻擊中WEB服務器沒有過濾類似system(),eval(),exec()等函數是該漏洞攻擊成功的最主要原因。

遠程代碼執行漏洞漏洞實例

<?php
$log_string =$_GET[‘log’];
system("echo \"".date("Y-m-d H:i:s ")." ".$log_string."\" >> /logs/".$pre."/".$pre.".".date("Y-m-d").".log");}
?>
惡意用户只需要構造xxx.php?log='id'形式的URL,即可通過瀏覽器在遠程服務器上執行任意系統命令。

遠程代碼執行漏洞解決方案

·建議假定所有輸入都是可疑的,嘗試對所有輸入提交可能執行命令的構造語句進行嚴格的檢查或者控制外部輸入,系統命令執行函數的參數不允許外部傳遞。
·不僅要驗證數據的類型,還要驗證其格式、長度、範圍和內容。
·不要僅僅在客户端做數據的驗證與過濾,關鍵的過濾步驟在服務端進行。
·對輸出的數據也要檢查,數據庫裏的值有可能會在一個大網站的多處都有輸出,即使在輸入做了編碼等操作,在各處的輸出點時也要進行安全檢查。
·在發佈應用程序之前測試所有已知的威脅。