23232424 */
2525public class DynamicPropagatorScanner implements IVulScan {
26- private final static Set <SinkSafeChecker > SAFE_CHECKERS = new HashSet <SinkSafeChecker >(Arrays .asList (
26+ private final static Set <SinkSafeChecker > SAFE_CHECKERS = new HashSet <>(Arrays .asList (
2727 new FastjsonCheck (),
2828 new XXECheck ()
2929 ));
3030
31- private final static Set <SinkSourceChecker > SOURCE_CHECKERS = new HashSet <SinkSourceChecker >(Arrays .asList (
31+ private final static Set <SinkSourceChecker > SOURCE_CHECKERS = new HashSet <>(Arrays .asList (
3232 new PathTraversalCheck (),
3333 new SSRFSourceCheck (),
3434 new UnvalidatedRedirectCheck ()
3535 ));
3636
37- private static final Set <ServiceTrace > SERVICE_TRACES = new HashSet <ServiceTrace >(Collections .singletonList (
37+ private static final Set <ServiceTrace > SERVICE_TRACES = new HashSet <>(Collections .singletonList (
3838 new HttpService ()
3939 ));
4040
@@ -52,7 +52,8 @@ public class DynamicPropagatorScanner implements IVulScan {
5252 ));
5353 put (VulnType .HQL_INJECTION .getName (), Arrays .asList (
5454 new TaintTag []{TaintTag .UNTRUSTED },
55- new TaintTag []{TaintTag .SQL_ENCODED , TaintTag .HTTP_TOKEN_LIMITED_CHARS , TaintTag .NUMERIC_LIMITED_CHARS }
55+ new TaintTag []{TaintTag .SQL_ENCODED , TaintTag .CUSTOM_ENCODED_HQL_INJECTION ,
56+ TaintTag .HTTP_TOKEN_LIMITED_CHARS , TaintTag .NUMERIC_LIMITED_CHARS }
5657 ));
5758 put (VulnType .LDAP_INJECTION .getName (), Arrays .asList (
5859 new TaintTag []{TaintTag .UNTRUSTED },
@@ -68,7 +69,7 @@ public class DynamicPropagatorScanner implements IVulScan {
6869 new TaintTag []{TaintTag .UNTRUSTED },
6970 new TaintTag []{TaintTag .BASE64_ENCODED , TaintTag .HTML_ENCODED , TaintTag .LDAP_ENCODED ,
7071 TaintTag .SQL_ENCODED , TaintTag .URL_ENCODED , TaintTag .XML_ENCODED , TaintTag .XPATH_ENCODED ,
71- TaintTag .HTTP_TOKEN_LIMITED_CHARS , TaintTag .NUMERIC_LIMITED_CHARS }
72+ TaintTag .CUSTOM_ENCODED_CMD_INJECTION , TaintTag . HTTP_TOKEN_LIMITED_CHARS , TaintTag .NUMERIC_LIMITED_CHARS }
7273 ));
7374 put (VulnType .PATH_TRAVERSAL .getName (), Arrays .asList (
7475 new TaintTag []{TaintTag .UNTRUSTED },
@@ -80,6 +81,42 @@ public class DynamicPropagatorScanner implements IVulScan {
8081 new TaintTag []{TaintTag .UNTRUSTED },
8182 new TaintTag []{TaintTag .URL_ENCODED , TaintTag .HTTP_TOKEN_LIMITED_CHARS , TaintTag .NUMERIC_LIMITED_CHARS }
8283 ));
84+ put (VulnType .XXE .getName (),Arrays .asList (
85+ new TaintTag []{TaintTag .UNTRUSTED },
86+ new TaintTag []{TaintTag .CUSTOM_ENCODED_XXE , TaintTag .HTTP_TOKEN_LIMITED_CHARS , TaintTag .NUMERIC_LIMITED_CHARS }
87+ ));
88+ put (VulnType .JNDI_INJECTION .getName (),Arrays .asList (
89+ new TaintTag []{TaintTag .UNTRUSTED },
90+ new TaintTag []{TaintTag .CUSTOM_ENCODED_JNDI_INJECTION , TaintTag .HTTP_TOKEN_LIMITED_CHARS , TaintTag .NUMERIC_LIMITED_CHARS }
91+ ));
92+ put (VulnType .NOSQL_INJECTION .getName (),Arrays .asList (
93+ new TaintTag []{TaintTag .UNTRUSTED },
94+ new TaintTag []{TaintTag .CUSTOM_ENCODED_NOSQL_INJECTION , TaintTag .HTTP_TOKEN_LIMITED_CHARS , TaintTag .NUMERIC_LIMITED_CHARS }
95+ ));
96+ put (VulnType .SMTP_INJECTION .getName (),Arrays .asList (
97+ new TaintTag []{TaintTag .UNTRUSTED },
98+ new TaintTag []{TaintTag .CUSTOM_ENCODED_SMTP_INJECTION , TaintTag .HTTP_TOKEN_LIMITED_CHARS , TaintTag .NUMERIC_LIMITED_CHARS }
99+ ));
100+ put (VulnType .EL_INJECTION .getName (),Arrays .asList (
101+ new TaintTag []{TaintTag .UNTRUSTED },
102+ new TaintTag []{TaintTag .CUSTOM_ENCODED_EL_INJECTION , TaintTag .HTTP_TOKEN_LIMITED_CHARS , TaintTag .NUMERIC_LIMITED_CHARS }
103+ ));
104+ put (VulnType .REFLECTION_INJECTION .getName (),Arrays .asList (
105+ new TaintTag []{TaintTag .UNTRUSTED },
106+ new TaintTag []{TaintTag .CUSTOM_ENCODED_REFLECTION_INJECTION , TaintTag .HTTP_TOKEN_LIMITED_CHARS , TaintTag .NUMERIC_LIMITED_CHARS }
107+ ));
108+ put (VulnType .SSRF .getName (),Arrays .asList (
109+ new TaintTag []{TaintTag .UNTRUSTED },
110+ new TaintTag []{TaintTag .CUSTOM_ENCODED_XXE , TaintTag .HTTP_TOKEN_LIMITED_CHARS , TaintTag .NUMERIC_LIMITED_CHARS }
111+ ));
112+ put (VulnType .FILE_WRITE .getName (),Arrays .asList (
113+ new TaintTag []{TaintTag .UNTRUSTED },
114+ new TaintTag []{TaintTag .CUSTOM_ENCODED_FILE_WRITE , TaintTag .HTTP_TOKEN_LIMITED_CHARS , TaintTag .NUMERIC_LIMITED_CHARS }
115+ ));
116+ put (VulnType .REDOS .getName (),Arrays .asList (
117+ new TaintTag []{TaintTag .UNTRUSTED },
118+ new TaintTag []{TaintTag .CUSTOM_ENCODED_REDOS , TaintTag .HTTP_TOKEN_LIMITED_CHARS , TaintTag .NUMERIC_LIMITED_CHARS }
119+ ));
83120 }};
84121
85122 @ Override
@@ -133,7 +170,7 @@ private boolean sinkSourceHitTaintPool(MethodEvent event, SinkNode sinkNode) {
133170 }
134171 }
135172
136- List <Object > sourceInstances = new ArrayList <Object >();
173+ List <Object > sourceInstances = new ArrayList <>();
137174 boolean hasTaint = false ;
138175 boolean objHasTaint = false ;
139176 Set <TaintPosition > sources = sinkNode .getSources ();
0 commit comments