Skip to content

Commit 7d38086

Browse files
authored
Update README.md
1 parent 6a44177 commit 7d38086

File tree

1 file changed

+31
-13
lines changed

1 file changed

+31
-13
lines changed

README.md

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,54 @@
33
This Project contains the JWT Scanner and JWT Fuzzer addon used for finding JWT related vulnerabilities.
44

55
## Why this addon is needed
6-
With the popularity of JSON Web Tokens (JWTs)there comes the need to secure their use so that they are not misused because of bad configuration, older libraries, or buggy implementations. So the JWT Scanner Add-on is used to find such vulnerabilities and this blog explains on how to use it.
6+
With the popularity of JSON Web Tokens (JWTs) there comes the need to secure their use so that they are not misused because of bad configuration, older libraries, or buggy implementations. So the JWT Support add-on is used to find such vulnerabilities and this blog explains on how to use it.
77

88
## Configuration
9-
As JWT add-on includes a rule for the Active Scanner but there are configuration details which are specific for the JWT add-on
9+
As the JWT add-on includes a rule for the Active Scanner as well as Fuzzer functionality, there are configuration details which are specific for the JWT add-on.
1010
Under ZAP's Options dialog you will find a JWT section as shown below:
1111
![JWT](./docs/images/jwt-options-panel.png)
1212

1313
### Explanation
14+
#### Scanner Configuration:
15+
1416
In case the application which you are trying to scan is using RSA or more specifically RS* algorithm then please configure the public certificate TrustStore path and TrustStore password. These fields are used to find certain vulnerabilities related to RS* based JWTs.
1517

16-
Enable Client Configuration Scan flag is used to enable client side validations like JWT being sent to the browser in an insecure or non-recommended way.
18+
The Enable Client Configuration Scan option is used to enable client-side validations like JWT being sent to the browser in an insecure or non-recommended way.
19+
20+
#### Fuzzer Configuration:
1721

18-
### Vulnerability Coverage
22+
Since JWT is a signed token; fuzzing field values requires resigning the JWT therefore the fuzzer requires an HMac secret key or RSA private key as per the algorithm header field of the JWT. So that the Fuzzer configuration corresponds to the same.
23+
24+
### Scanner Vulnerability Coverage
1925
The JWT add-on's scan rule attempts to identified vulnerabilities in both Client/Browser and Server/Library implementations.
2026

21-
For the Client side it covers most of the vulnerabilities mentioned in the [OWASP JWT CheatSheet](https://cheatsheetseries.owasp.org/cheatsheets/JSON_Web_Token_Cheat_Sheet_for_Java.html#token-storage-on-client-side).
27+
For the Client-side it covers most of the vulnerabilities mentioned in the [OWASP JWT CheatSheet](https://cheatsheetseries.owasp.org/cheatsheets/JSON_Web_Token_for_Java_Cheat_Sheet.html#token-storage-on-client-side).
2228

23-
For Server side it mainly covers following vulnerabilities:
24-
1. [None Algorithm attack](https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/#Meet-the--None--Algorithm)
25-
2. [Algorithm Confusion attack](https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/#RSA-or-HMAC-)
29+
For Server-side it mainly covers following vulnerabilities:
30+
1. [None Algorithm attack](https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/#Meet.the..None..Algorithm)
31+
2. [Algorithm Confusion attack](https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/#RSA.or.HMAC.)
2632
3. [Trusting JWK provided with the Token](https://nvd.nist.gov/vuln/detail/CVE-2018-0114)
2733
4. Empty JWT
2834
5. Null Byte Injection attack
2935

30-
**Note:** All the above vulnerabilities are tested against the [Owasp VulnerableApp](https://github.com/SasanLabs/VulnerableApp) please visit that for more information on the vulnerabilities.
36+
### Fuzzer View
37+
JWT Fuzzer view is different from HTTP Fuzzer view as JWT's need to be parsed, then JWT field values can be fuzzed. The following is the Fuzzer view:
38+
![Fuzzer View](./images/fuzzer-view.png)
39+
40+
The **Signature Operation** drop down is used to control the operations on the Signature field of JWT.
41+
1. **No Signature**: This value is used to remove the signature component from the newly fuzzed JWT.
42+
2. **Same Signature**: This value is used to use the same signature for the newly fuzzed JWT.
43+
3. **New Signature**: This value is used to generate new signature for the newly fuzzed JWT.
44+
45+
The **Component** drop down is used to choose the **Header** or the **Payload** components of the JWT.
46+
47+
The **Key** drop down is used to choose the fields to be fuzzed in the **Header** or **Payload** components of the JWT.
48+
49+
### Fuzzer View Animation
50+
![Fuzzer Animation](./images/fuzzer-animation.gif)
3151

32-
## Future works
33-
Till now this addon contains only JWT Scanner for finding vulnerabilities and next we are planning to provide a JWT fuzzer and bruteforcer for JWT's.
34-
1. JWT fuzzer will be helpful for finding vulnerabilities like SQL Injection/SSRF in JWT Field values.
35-
2. Bruteforce attack will be helpful in finding vulnerabilities related to Secret Keys which are used for signing the tokens.
52+
The JWT add-on is available in the marketplace and can be installed from within ZAP.
53+
For more information please visit [JWT Support](https://github.com/SasanLabs/owasp-zap-jwt-addon)
3654

3755
## Contributing guidelines
3856
Contributing guidelines are same as [ZAP](https://github.com/zaproxy/zaproxy).

0 commit comments

Comments
 (0)