命令執行定義:
命令執行漏洞是指攻擊者可以隨意執行系統命令,分為遠程命令執行和系統命令執行兩類,
原理:
程式應用有時需要呼叫一些執行命令的函式,如php中的system,exec,shell_exec,passthru,popen,proc_popen等,當用戶能控制這些函式中的引數時,就可以將惡意系統命令拼接到正常命令中,從而造成命令執行攻擊,
管道符號:
Linux:
;前面的執行完執行后面的
|是管道符,顯示后面的執行結果
||當前面的執行出錯時執行后面的
Windows:
&前面的陳述句為假則直接執行后面的
&&前面的陳述句為假則直接出錯,后面的也不執行
|直接執行后面的陳述句
||前面出錯執行后面的
命令執行常見場景
ping主機;
DNS請求;
Office框架;
框架缺陷;
遠程命令執行:
在PHP中,允許命令執行的函式有:
eval()
assert()
preg_replace()
call_user_func()
$a($b)
命令執行漏洞防御:
(1),盡量不要執行外部命令
(2),使用自定義函式或者函式庫來代替外部命令的功能
(3),使用escapeshellarg函式來處理命令引數(escapeshellarg函式會將任何引起引數或者命令結束的字符轉義)
(4),使用safe_mode_exec_dir指定要執行程式的主目錄(php.ini)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/514233.html
標籤:其他
上一篇:資料結構(嚴蔚敏版)第三章——堆疊和佇列(二)【堆疊的表示和操作的實作】
下一篇:學習筆記-命令執行漏洞
