RCE - 远程代码执行
  RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection)

漏洞场景:ProcessBuilder 流量分析

tips
命令注入漏洞场景:
    在开发中,特定开发需求中引入对系统本地命令的支持,而未进行输入验证时,可能会导致命令注入漏洞
测试结果

                                        

缺陷代码

漏洞场景:Runtime.getRuntime().exec()

tips
代码审计SINK点:
    1、ProcessBuilder
    2、Runtime.exec()
    3、反射调用 ProcessImpl.start
测试结果

                                        

缺陷代码

漏洞场景:ProcessImpl

tips
安全编码规范:
    1、限制执行权限:避免使用Runtime、ProcessBuilder等函数,即使使用这类函数也应确保执行命令的进程具有最小权限,避免提升到更高的权限级别。
    2、避免直接拼接命令字符串:尽可能使用专门的API或库来处理系统任务,避免直接构建和执行命令字符串
    3、输入验证:对所有用户输入进行严格验证,确保符合预期格式,建立白名单机制,仅允许合法的输入和命令类型
测试结果

                                        

缺陷代码

安全场景:白名单限制

tips
白名单:只允许执行ls、date命令
测试结果

                                        

安全代码