File tree Expand file tree Collapse file tree 3 files changed +15
-21
lines changed
java/org/zaproxy/zap/extension/jwt
resources/org/zaproxy/zap/extension/jwt/resources Expand file tree Collapse file tree 3 files changed +15
-21
lines changed Original file line number Diff line number Diff line change 5353import java .security .NoSuchAlgorithmException ;
5454import java .security .cert .Certificate ;
5555import java .security .cert .CertificateException ;
56+ import java .text .MessageFormat ;
5657import java .text .ParseException ;
5758import java .util .Set ;
5859import org .apache .commons .lang3 .StringUtils ;
6364import org .parosproxy .paros .core .scanner .Plugin .AttackStrength ;
6465import org .zaproxy .zap .extension .jwt .JWTConfiguration ;
6566import org .zaproxy .zap .extension .jwt .JWTHolder ;
67+ import org .zaproxy .zap .extension .jwt .JWTI18n ;
6668import org .zaproxy .zap .extension .jwt .exception .JWTException ;
6769import org .zaproxy .zap .extension .jwt .utils .JWTConstants ;
6870import org .zaproxy .zap .extension .jwt .utils .JWTUtils ;
@@ -128,16 +130,16 @@ private boolean executePubliclyWellKnownHMacSecretAttack() {
128130 VulnerabilityType .PUBLICLY_KNOWN_SECRETS ,
129131 Alert .RISK_HIGH ,
130132 Alert .CONFIDENCE_HIGH ,
131- "JWT token: "
132- + jwtHolder . getBase64EncodedToken ()
133- + " is signed by: \" "
134- + secret
135- + " \" " ,
133+ MessageFormat . format (
134+ JWTI18n . getMessage (
135+ "jwt.scanner.server.vulnerability.signatureAttack.publiclyKnownSecrets.param" ),
136+ jwtHolder . getBase64EncodedToken (),
137+ secret ) ,
136138 serverSideAttack );
137139 return true ;
138140 }
139141 } catch (JWTException e ) {
140- LOGGER .error ("An error occurred while getting signed manipulated tokens" , e );
142+ LOGGER .warn ("An error occurred while getting signed manipulated tokens" , e );
141143 }
142144 }
143145 }
Original file line number Diff line number Diff line change @@ -309,27 +309,17 @@ public static boolean isValidJson(String value) {
309309 */
310310 public static Set <String > readFileContentsFromResources (String fileName ) {
311311 Set <String > values = new HashSet <>();
312- BufferedReader bufferedReader = null ;
313- try {
314- bufferedReader =
315- new BufferedReader (
316- new InputStreamReader (JWTUtils .class .getResourceAsStream (fileName )));
312+ try (BufferedReader bufferedReader =
313+ new BufferedReader (
314+ new InputStreamReader (JWTUtils .class .getResourceAsStream (fileName )))) {
317315 String inputLine ;
318316 while ((inputLine = bufferedReader .readLine ()) != null ) {
319317 if (StringUtils .isNotBlank (inputLine )) {
320318 values .add (inputLine );
321319 }
322320 }
323321 } catch (Exception ex ) {
324- LOGGER .info ("Unable to read publicly known secrets from: " + fileName , ex );
325- } finally {
326- if (bufferedReader != null ) {
327- try {
328- bufferedReader .close ();
329- } catch (Exception ex ) {
330- LOGGER .debug ("Unable to close bufferedReader" , ex );
331- }
332- }
322+ LOGGER .warn ("Unable to read publicly known secrets from: " + fileName , ex );
333323 }
334324 return values ;
335325 }
Original file line number Diff line number Diff line change @@ -101,4 +101,6 @@ jwt.scanner.server.vulnerability.miscAttack.emptyTokens.soln=Tokens even if empt
101101
102102# JWT scanner references and solutions
103103jwt.scanner.refs =https://cheatsheetseries.owasp.org/cheatsheets/JSON_Web_Token_Cheat_Sheet_for_Java.html
104- jwt.scanner.soln =See reference for further information. The solution depends on implementation details
104+ jwt.scanner.soln =See reference for further information. The solution depends on implementation details
105+
106+ jwt.scanner.server.vulnerability.signatureAttack.publiclyKnownSecrets.param =JWT: {0} is signed by: \" {1}\"
You can’t perform that action at this time.
0 commit comments