| Risk Level | Number of Alerts |
|---|---|
|
High
|
0
|
|
Medium
|
0
|
|
Low
|
0
|
|
Informational
|
3
|
|
False Positives:
|
0
|
| Level | Reason | Site | Description | Statistic |
|---|---|---|---|---|
|
Low
|
Warning
|
ZAP warnings logged - see the zap.log file for details
|
5
|
|
|
Info
|
Informational
|
http://localhost:4000
|
Percentage of responses with status code 2xx
|
100 %
|
|
Info
|
Informational
|
http://localhost:4000
|
Percentage of endpoints with content type application/json
|
100 %
|
|
Info
|
Informational
|
http://localhost:4000
|
Percentage of endpoints with method GET
|
58 %
|
|
Info
|
Informational
|
http://localhost:4000
|
Percentage of endpoints with method PATCH
|
11 %
|
|
Info
|
Informational
|
http://localhost:4000
|
Percentage of endpoints with method POST
|
29 %
|
|
Info
|
Informational
|
http://localhost:4000
|
Count of total endpoints
|
17
|
For each step: result (Pass/Fail) - risk (of highest alert(s) for the step, if any).
| Name | Risk Level | Number of Instances |
|---|---|---|
| Authentication Request Identified | Informational | 1 |
| Non-Storable Content | Informational | Systemic |
| Session Management Response Identified | Informational | 1 |
|
Informational |
Authentication Request Identified |
|---|---|
| Description |
The given request has been identified as an authentication request. The 'Other Info' field contains a set of key=value lines which identify any relevant fields. If the request is in a context which has an Authentication Method set to "Auto-Detect" then this rule will change the authentication to match the request identified.
|
| URL | http://localhost:4000/auth/login |
| Node Name | http://localhost:4000/auth/login ()({email,password}) |
| Method | POST |
| Parameter | |
| Attack | |
| Evidence | password |
| Other Info |
userParam=email
userValue=zap-scan@example.com
passwordParam=password
|
| Instances | 1 |
| Solution |
This is an informational alert rather than a vulnerability and so there is nothing to fix.
|
| Reference | https://www.zaproxy.org/docs/desktop/addons/authentication-helper/auth-req-id/ |
| CWE Id | |
| WASC Id | |
| Plugin Id | 10111 |
|
Informational |
Non-Storable Content |
|---|---|
| Description |
The response contents are not storable by caching components such as proxy servers. If the response does not contain sensitive, personal or user-specific information, it may benefit from being stored and cached, to improve performance.
|
| URL | http://localhost:4000/auth/me |
| Node Name | http://localhost:4000/auth/me |
| Method | GET |
| Parameter | |
| Attack | |
| Evidence | authorization: |
| Other Info | |
| URL | http://localhost:4000/health |
| Node Name | http://localhost:4000/health |
| Method | GET |
| Parameter | |
| Attack | |
| Evidence | authorization: |
| Other Info | |
| URL | http://localhost:4000/users |
| Node Name | http://localhost:4000/users |
| Method | GET |
| Parameter | |
| Attack | |
| Evidence | authorization: |
| Other Info | |
| URL | http://localhost:4000/auth/login |
| Node Name | http://localhost:4000/auth/login ()({email,password}) |
| Method | POST |
| Parameter | |
| Attack | |
| Evidence | authorization: |
| Other Info | |
| URL | http://localhost:4000/auth/register |
| Node Name | http://localhost:4000/auth/register ()({name,email,password}) |
| Method | POST |
| Parameter | |
| Attack | |
| Evidence | authorization: |
| Other Info | |
| Instances | Systemic |
| Solution |
The content may be marked as storable by ensuring that the following conditions are satisfied:
The request method must be understood by the cache and defined as being cacheable ("GET", "HEAD", and "POST" are currently defined as cacheable)
The response status code must be understood by the cache (one of the 1XX, 2XX, 3XX, 4XX, or 5XX response classes are generally understood)
The "no-store" cache directive must not appear in the request or response header fields
For caching by "shared" caches such as "proxy" caches, the "private" response directive must not appear in the response
For caching by "shared" caches such as "proxy" caches, the "Authorization" header field must not appear in the request, unless the response explicitly allows it (using one of the "must-revalidate", "public", or "s-maxage" Cache-Control response directives)
In addition to the conditions above, at least one of the following conditions must also be satisfied by the response:
It must contain an "Expires" header field
It must contain a "max-age" response directive
For "shared" caches such as "proxy" caches, it must contain a "s-maxage" response directive
It must contain a "Cache Control Extension" that allows it to be cached
It must have a status code that is defined as cacheable by default (200, 203, 204, 206, 300, 301, 404, 405, 410, 414, 501).
|
| Reference |
https://datatracker.ietf.org/doc/html/rfc7234
https://datatracker.ietf.org/doc/html/rfc7231 https://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html |
| CWE Id | 524 |
| WASC Id | 13 |
| Plugin Id | 10049 |
|
Informational |
Session Management Response Identified |
|---|---|
| Description |
The given response has been identified as containing a session management token. The 'Other Info' field contains a set of header tokens that can be used in the Header Based Session Management Method. If the request is in a context which has a Session Management Method set to "Auto-Detect" then this rule will change the session management to use the tokens identified.
|
| URL | http://localhost:4000/auth/login |
| Node Name | http://localhost:4000/auth/login ()({email,password}) |
| Method | POST |
| Parameter | token |
| Attack | |
| Evidence | token |
| Other Info |
json:token
|
| Instances | 1 |
| Solution |
This is an informational alert rather than a vulnerability and so there is nothing to fix.
|
| Reference | https://www.zaproxy.org/docs/desktop/addons/authentication-helper/session-mgmt-id/ |
| CWE Id | |
| WASC Id | |
| Plugin Id | 10112 |