命令執行漏洞
目前已爆出的命令執行漏洞
漏洞原理
web應用程式給用戶提供指定的遠程命令操作介面,在呼叫這些函式時,將用戶的輸入作為系統命令引數拼接到命令列中,如果對用戶輸入的引數過濾不嚴格,就到造成命令執行漏洞,
漏洞危害
1. 以當前網站的權限去執行系統命令,
2. 繼承web服務程式權限,向服務器寫檔案,讀取敏感資料等,
3. 反彈shell,進一步提權,進一步控制整個服務器,
命令執行漏洞函式
php中命令執行函式
system() #自帶輸出
passthru() #有回顯
system()和passthru() 都是將用戶輸入的字串當做命令去執行,
exec() #本身無回顯,需要echo輸出,
shell_exec() #本身無回顯,需要echo輸出
反引號 #本身無回顯,需要echo輸出
popen() #無回顯,回傳一個指標檔案
漏洞利用
1. 利用 | && & || 來拼接其他命令,
| 是直接執行| 后面的命令,
|| 是前面的陳述句出錯,才執行|| 后面的命令
& 是不論前面陳述句是否正確,都執行后面的命令,
&& 是前面的命令執行正確,才執行后面的命令,
2. Linux系統還支持分號,來隔開兩個命令,
漏洞防御
1. 盡量不適用命令執行函式,并且在disable_funtions中禁用,
2. 使用命令執行函式時,對用戶輸入的引數進行過濾和檢測,
3. 引數的值盡量使用引號包裹,并在拼接前對特殊字符進行轉義,
4. 要避免任意代碼執行漏洞的發生,攻擊者可以直接利用代碼執行漏洞,來使用代碼執行系統命令,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/429267.html
標籤:其他
上一篇:Python大資料為啥一定要用Numpy Array
下一篇:XXE外部物體注入漏洞總結
