public void analyzeFindingsOfVulnType_SqlInjection(List <IO2Finding> o2Findings, bool removeFindingsFromSourceList) { // extract the Sql Injection ones var sqlInjectionFindings = XUtils_Analysis.getFindingsWithVulnType(o2Findings, "Vulnerability.Injection.SQL", removeFindingsFromSourceList); if (sqlInjectionFindings.Count == 0) { return; } // var fileWithSqlInjections = Path.Combine(folderWithArtifacts_Phase4, "Findings_with_SQL_Injection"); //XUtils_Findings_v0_1.saveFindings(sqlInjectionFindings, fileWithSqlInjections); //Assert.That(File.Exists(fileWithSqlInjections), "fileWithSqlInjections was not created"); var sqlInjectionValidators = new List <string> { "java.lang.Integer.<init>(int):void", "java.lang.Integer.valueOf(int):java.lang.Integer", "java.lang.String.valueOf(int):java.lang.String", ":java.util.DateTime" }; var nonExploitable = new List <IO2Finding>(); var maybeExploitable = new List <IO2Finding>(); foreach (O2Finding o2Finding in sqlInjectionFindings) { var validatorFound = ""; foreach (var validator in sqlInjectionValidators) { if (XUtils_Analysis.doesFindingHasTraceSignature(o2Finding, validator)) { validatorFound = validator; break; } } // modify finding if (validatorFound != "") { o2Finding.context = string.Format("found validator: {0} , {1}", validatorFound, o2Finding.context); nonExploitable.Add(o2Finding); o2Finding.vulnType += ".NotExploitable"; o2Finding.severity = 3; o2Finding.confidence = 1; } else { maybeExploitable.Add(o2Finding); o2Finding.vulnType += ".MaybeExploitable.InternalMethod"; o2Finding.severity = 0; o2Finding.confidence = 2; } } var fileWith_NonExploitable = Path.Combine(folderWithArtifacts_Phase4, "NonExploitable_Findings_with_SQL_Injection.ozasmt"); XUtils_Findings_v0_1.saveFindings(nonExploitable, fileWith_NonExploitable); var fileWith_MaybeExploitable = Path.Combine(folderWithArtifacts_Phase4, "MaybeExploitable_Findings_with_SQL_Injection.ozasmt"); XUtils_Findings_v0_1.saveFindings(maybeExploitable, fileWith_MaybeExploitable); //XUtils_Findings_v0_1.openFindingsInNewWindow(nonExploitable).Join(); //XUtils_Findings_v0_1.openFindingsInNewWindow(maybeExploitable).Join(); }