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下管道符

“;”:执行完前面的语句再执行后面的语句。 “|”:显示后面语句的执行结果。 “||”:当前面的语句执行出错时,执行后面的语句。 “&”:两条命令都执行,如果前面的语句为假则执行执行后面的语句,前面的语句可真可假。 “&&”:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的语句只能为真

漏洞防范:

在进入危险函数前进行严格的检测和过滤

尽量不要使用命令执行函数



posted @ 2021-05-10 13:48  mrob0t  阅读(2162)  评论(0编辑  收藏  举报