From b9ab9bacf03994167e6714fbe9ff7cd8d2fe73e2 Mon Sep 17 00:00:00 2001 From: v1ll4n Date: Tue, 20 Aug 2024 17:27:14 +0800 Subject: [PATCH] add verified rule --- ...gboot-websecurity-click-hijack-checking.sf | 114 +++++++++++++++++ java-verified-rules/java-springfox-awared.sf | 72 +++++++++++ .../java-websecurity-csrf-disabled-simple.sf | 115 ++++++++++++++++++ 3 files changed, 301 insertions(+) create mode 100644 java-verified-rules/java-springboot-websecurity-click-hijack-checking.sf create mode 100644 java-verified-rules/java-springfox-awared.sf create mode 100644 java-verified-rules/java-websecurity-csrf-disabled-simple.sf diff --git a/java-verified-rules/java-springboot-websecurity-click-hijack-checking.sf b/java-verified-rules/java-springboot-websecurity-click-hijack-checking.sf new file mode 100644 index 0000000..fff22de --- /dev/null +++ b/java-verified-rules/java-springboot-websecurity-click-hijack-checking.sf @@ -0,0 +1,114 @@ +desc( + title: "Find Simple Trail of frameOptions Disabled", + type: vuln, + level: low, + desc: <<?{?{have: SwaggerProperties} } } as $config; +check $config +alert $config; + +desc( +'file://config.java': << DEFAULT_EXCLUDE_PATH = Arrays.asList("/error", "/actuator/**"); + + private static final String BASE_PATH = "/**"; + + @Bean + public Docket api(SwaggerProperties swaggerProperties) + { + // base-path处理 + if (swaggerProperties.getBasePath().isEmpty()) + { + swaggerProperties.getBasePath().add(BASE_PATH); + } + // noinspection unchecked + List> basePath = new ArrayList>(); + swaggerProperties.getBasePath().forEach(path -> basePath.add(PathSelectors.ant(path))); + + // exclude-path处理 + if (swaggerProperties.getExcludePath().isEmpty()) + { + swaggerProperties.getExcludePath().addAll(DEFAULT_EXCLUDE_PATH); + } + + List> excludePath = new ArrayList<>(); + swaggerProperties.getExcludePath().forEach(path -> excludePath.add(PathSelectors.ant(path))); + + ApiSelectorBuilder builder = new Docket(DocumentationType.SWAGGER_2).host(swaggerProperties.getHost()) + .apiInfo(apiInfo(swaggerProperties)).select() + .apis(RequestHandlerSelectors.basePackage(swaggerProperties.getBasePackage())); + + swaggerProperties.getBasePath().forEach(p -> builder.paths(PathSelectors.ant(p))); + swaggerProperties.getExcludePath().forEach(p -> builder.paths(PathSelectors.ant(p).negate())); + + return builder.build().securitySchemes(securitySchemes()).securityContexts(securityContexts()).pathMapping("/"); + } +} +TEXT +) \ No newline at end of file diff --git a/java-verified-rules/java-websecurity-csrf-disabled-simple.sf b/java-verified-rules/java-websecurity-csrf-disabled-simple.sf new file mode 100644 index 0000000..bdf53b3 --- /dev/null +++ b/java-verified-rules/java-websecurity-csrf-disabled-simple.sf @@ -0,0 +1,115 @@ +desc( + title: "Find Simple Trail of CSRF Disabled", + type: vuln, + level: low, + desc: <<