Web安全之RCE漏洞


RCE漏洞

 

 

RCE(Remote Code/Command Execute)遠程代碼/命令執行

漏洞產生原因:在Web應用中開發者為了靈活性,簡潔性等會讓應用調用代碼或者系統命令執行函數去處理,同時沒有考慮用戶的輸入是否可以被控制,造成代碼/系統命令執行漏洞

漏洞產生條件:可控變量,漏洞函數

漏洞挖掘:

黑盒測試:測試網站特殊功能點,比如ping等
(推薦)白盒測試:通過代碼審計,審計應用中存在的危險函數是否進行了嚴格過濾

php中命令執行函數:system()、exec()、shell_exec()、pcntl_exec()、popen()、proc_popen()、passthru()

php中代碼執行函數:eval()、assert()、preg_replace()、create_function()、array_map()、call_user_func()、call_user_func_array()、array_filter()、uasort()

漏洞危害:

高危:直接獲取服務器權限,獲取敏感數據,文件,寫入惡意文件getshell

漏洞利用:

windows下管道符

“;”:執行完前面的語句再執行后面的語句。 “|”:顯示后面語句的執行結果。 “||”:當前面的語句執行出錯時,執行后面的語句。 “&”:兩條命令都執行,如果前面的語句為假則執行執行后面的語句,前面的語句可真可假。 “&&”:如果前面的語句為假則直接出錯,也不執行后面的語句,前面的語句為真則兩條命令都執行,前面的語句只能為真。

linux下管道符

“;”:執行完前面的語句再執行后面的語句。 “|”:顯示后面語句的執行結果。 “||”:當前面的語句執行出錯時,執行后面的語句。 “&”:兩條命令都執行,如果前面的語句為假則執行執行后面的語句,前面的語句可真可假。 “&&”:如果前面的語句為假則直接出錯,也不執行后面的語句,前面的語句為真則兩條命令都執行,前面的語句只能為真

漏洞防范:

在進入危險函數前進行嚴格的檢測和過濾

盡量不要使用命令執行函數




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM