Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
避免Java Web应用程序中的远程命令OS注入_Java_Security_Zap - Fatal编程技术网

避免Java Web应用程序中的远程命令OS注入

避免Java Web应用程序中的远程命令OS注入,java,security,zap,Java,Security,Zap,我们正在从OWSAP运行ZAP工具,以检查应用程序中的安全漏洞。ZAP工具报告了许多问题,如路径遍历、跨站点脚本编写、操作系统命令注入。在这里,我不理解在我们的应用程序中执行OS命令时到底发生了什么。 下面是我们上传文件时报告的项目示例 http://<<IpAddr>>:<<port>>/filedsMgr/upload/fileupload?/?fileSize=837259 %7Ctimeout+%2FT+%7B0%7D http://:/

我们正在从OWSAP运行ZAP工具,以检查应用程序中的安全漏洞。ZAP工具报告了许多问题,如路径遍历、跨站点脚本编写、操作系统命令注入。在这里,我不理解在我们的应用程序中执行OS命令时到底发生了什么。 下面是我们上传文件时报告的项目示例

http://<<IpAddr>>:<<port>>/filedsMgr/upload/fileupload?/?fileSize=837259
%7Ctimeout+%2FT+%7B0%7D
http://:/filedsMgr/upload/fileupload?/?fileSize=837259
%7Ctimeout+%2FT+%7B0%7D
在上面的url中,攻击是对“filesize”参数执行的,攻击是“837259 | timeout/T{0}”。 根据OWSAP给出的描述,我知道这是由ZAP工具执行的超时命令,但我不理解它与我的应用程序的关系


有谁能告诉我它到底是什么,以及如何防止这种攻击吗?

例如:您有REST控制器,方法为fileUpload和绑定
/file upload/{fileSize}

代码:

如果某个恶棍会向您发送文件大小路径参数的附加数据 此方法将引发异常。因为它将是无效的整数值:
837259%7Ctimeout+%2FT+%7B0%7D

还建议:

  • 使用原则:不信任客户

    • 什么是不允许的->拒绝
    • 检查所有输入参数(尤其是字符串)
  • 对所有外部通信使用超时


  • 使用try catch and throw exception tank you@EvgenyLebedev验证传入参数
    fileSize
    ,尝试转换为
    int
    long
    ,因此我们不需要担心操作系统超时命令?当然,超时-下一个问题,您必须对所有连接使用超时“您必须对所有连接使用超时”这句话我不明白。这就是ZAP toolserver端进行的攻击必须使用超时来处理连接(配置应用程序服务器或应用程序)
    @RequestMapping(value = "/file-upload/{fileSize}", method = RequestMethod.POST)
    @ResponseBody
    public Response fileUpload(@PathVariable int fileSize) {
        //...
    }