From 89b17901a98b873c85f1b81fce21617e293fbdd7 Mon Sep 17 00:00:00 2001 From: vasco Date: Sun, 31 May 2026 13:14:42 +0100 Subject: [PATCH] hmmmmm --- .../APi&test/2026-05-28-ZAP-Report-.html | 2588 --------------- .../APi&test/normalize/LICENSE.md | 21 - .../APi&test/normalize/normalize.css | 349 -- .../APi&test/themes/original/colors.css | 139 - .../APi&test/themes/original/main.css | 417 --- TestesRealizados1/APi&test/zap32x32.png | Bin 1933 -> 0 bytes TestesRealizados1/DEVCICD-/DEVCICD-.html | 1913 ----------- .../DEVCICD-/normalize/LICENSE.md | 21 - .../DEVCICD-/normalize/normalize.css | 349 -- .../DEVCICD-/themes/original/colors.css | 139 - .../DEVCICD-/themes/original/main.css | 417 --- TestesRealizados1/DEVCICD-/zap32x32.png | Bin 1933 -> 0 bytes .../Default^Policy/Default^Policy.html | 2919 ----------------- .../Default^Policy/normalize/LICENSE.md | 21 - .../Default^Policy/normalize/normalize.css | 349 -- .../Default^Policy/themes/original/colors.css | 139 - .../Default^Policy/themes/original/main.css | 417 --- TestesRealizados1/Default^Policy/zap32x32.png | Bin 1933 -> 0 bytes TestesRealizados1/Dev&Full/Dev&Full.html | 1896 ----------- .../Dev&Full/normalize/LICENSE.md | 21 - .../Dev&Full/normalize/normalize.css | 349 -- .../Dev&Full/themes/original/colors.css | 139 - .../Dev&Full/themes/original/main.css | 417 --- TestesRealizados1/Dev&Full/zap32x32.png | Bin 1933 -> 0 bytes .../Dev&Standard/Dev&Standard.html | 2645 --------------- .../Dev&Standard/normalize/LICENSE.md | 21 - .../Dev&Standard/normalize/normalize.css | 349 -- .../Dev&Standard/themes/original/colors.css | 139 - .../Dev&Standard/themes/original/main.css | 417 --- TestesRealizados1/Dev&Standard/zap32x32.png | Bin 1933 -> 0 bytes TestesRealizados1/Pen&Test/Pen&Test.html | 2794 ---------------- .../Pen&Test/normalize/LICENSE.md | 21 - .../Pen&Test/normalize/normalize.css | 349 -- .../Pen&Test/themes/original/colors.css | 139 - .../Pen&Test/themes/original/main.css | 417 --- TestesRealizados1/Pen&Test/zap32x32.png | Bin 1933 -> 0 bytes TestesRealizados1/QA&CICD/QA&CICD.html | 1896 ----------- .../QA&CICD/normalize/LICENSE.md | 21 - .../QA&CICD/normalize/normalize.css | 349 -- .../QA&CICD/themes/original/colors.css | 139 - .../QA&CICD/themes/original/main.css | 417 --- TestesRealizados1/QA&CICD/zap32x32.png | Bin 1933 -> 0 bytes TestesRealizados1/QA&Full/QA&Full.html | 2609 --------------- .../QA&Full/normalize/LICENSE.md | 21 - .../QA&Full/normalize/normalize.css | 349 -- .../QA&Full/themes/original/colors.css | 139 - .../QA&Full/themes/original/main.css | 417 --- TestesRealizados1/QA&Full/zap32x32.png | Bin 1933 -> 0 bytes .../QA&Standard/QA&Standard.html | 2768 ---------------- .../QA&Standard/normalize/LICENSE.md | 21 - .../QA&Standard/normalize/normalize.css | 349 -- .../QA&Standard/themes/original/colors.css | 139 - .../QA&Standard/themes/original/main.css | 417 --- TestesRealizados1/QA&Standard/zap32x32.png | Bin 1933 -> 0 bytes TestesRealizados1/Squeence/Squeence.html | 2624 --------------- .../Squeence/normalize/LICENSE.md | 21 - .../Squeence/normalize/normalize.css | 349 -- .../Squeence/themes/original/colors.css | 139 - .../Squeence/themes/original/main.css | 417 --- TestesRealizados1/Squeence/zap32x32.png | Bin 1933 -> 0 bytes relatorio/imgs/email-invalido.png | Bin 0 -> 21858 bytes relatorio/imgs/email-unique.png | Bin 0 -> 23167 bytes relatorio/imgs/login-fuzzing.png | Bin 0 -> 178687 bytes relatorio/imgs/sqlmap.png | Bin 0 -> 276745 bytes relatorio/imgs/stack-trace.png | Bin 0 -> 81233 bytes relatorio/relatorio.aux | 32 +- relatorio/relatorio.log | 75 +- relatorio/relatorio.pdf | Bin 139440 -> 260502 bytes relatorio/relatorio.synctex.gz | Bin 82679 -> 83738 bytes relatorio/relatorio.tex | 46 +- relatorio/relatorio.toc | 30 +- relatorio/style.sty | 2 +- 72 files changed, 111 insertions(+), 33986 deletions(-) delete mode 100644 TestesRealizados1/APi&test/2026-05-28-ZAP-Report-.html delete mode 100644 TestesRealizados1/APi&test/normalize/LICENSE.md delete mode 100644 TestesRealizados1/APi&test/normalize/normalize.css delete mode 100644 TestesRealizados1/APi&test/themes/original/colors.css delete mode 100644 TestesRealizados1/APi&test/themes/original/main.css delete mode 100644 TestesRealizados1/APi&test/zap32x32.png delete mode 100644 TestesRealizados1/DEVCICD-/DEVCICD-.html delete mode 100644 TestesRealizados1/DEVCICD-/normalize/LICENSE.md delete mode 100644 TestesRealizados1/DEVCICD-/normalize/normalize.css delete mode 100644 TestesRealizados1/DEVCICD-/themes/original/colors.css delete mode 100644 TestesRealizados1/DEVCICD-/themes/original/main.css delete mode 100644 TestesRealizados1/DEVCICD-/zap32x32.png delete mode 100644 TestesRealizados1/Default^Policy/Default^Policy.html delete mode 100644 TestesRealizados1/Default^Policy/normalize/LICENSE.md delete mode 100644 TestesRealizados1/Default^Policy/normalize/normalize.css delete mode 100644 TestesRealizados1/Default^Policy/themes/original/colors.css delete mode 100644 TestesRealizados1/Default^Policy/themes/original/main.css delete mode 100644 TestesRealizados1/Default^Policy/zap32x32.png delete mode 100644 TestesRealizados1/Dev&Full/Dev&Full.html delete mode 100644 TestesRealizados1/Dev&Full/normalize/LICENSE.md delete mode 100644 TestesRealizados1/Dev&Full/normalize/normalize.css delete mode 100644 TestesRealizados1/Dev&Full/themes/original/colors.css delete mode 100644 TestesRealizados1/Dev&Full/themes/original/main.css delete mode 100644 TestesRealizados1/Dev&Full/zap32x32.png delete mode 100644 TestesRealizados1/Dev&Standard/Dev&Standard.html delete mode 100644 TestesRealizados1/Dev&Standard/normalize/LICENSE.md delete mode 100644 TestesRealizados1/Dev&Standard/normalize/normalize.css delete mode 100644 TestesRealizados1/Dev&Standard/themes/original/colors.css delete mode 100644 TestesRealizados1/Dev&Standard/themes/original/main.css delete mode 100644 TestesRealizados1/Dev&Standard/zap32x32.png delete mode 100644 TestesRealizados1/Pen&Test/Pen&Test.html delete mode 100644 TestesRealizados1/Pen&Test/normalize/LICENSE.md delete mode 100644 TestesRealizados1/Pen&Test/normalize/normalize.css delete mode 100644 TestesRealizados1/Pen&Test/themes/original/colors.css delete mode 100644 TestesRealizados1/Pen&Test/themes/original/main.css delete mode 100644 TestesRealizados1/Pen&Test/zap32x32.png delete mode 100644 TestesRealizados1/QA&CICD/QA&CICD.html delete mode 100644 TestesRealizados1/QA&CICD/normalize/LICENSE.md delete mode 100644 TestesRealizados1/QA&CICD/normalize/normalize.css delete mode 100644 TestesRealizados1/QA&CICD/themes/original/colors.css delete mode 100644 TestesRealizados1/QA&CICD/themes/original/main.css delete mode 100644 TestesRealizados1/QA&CICD/zap32x32.png delete mode 100644 TestesRealizados1/QA&Full/QA&Full.html delete mode 100644 TestesRealizados1/QA&Full/normalize/LICENSE.md delete mode 100644 TestesRealizados1/QA&Full/normalize/normalize.css delete mode 100644 TestesRealizados1/QA&Full/themes/original/colors.css delete mode 100644 TestesRealizados1/QA&Full/themes/original/main.css delete mode 100644 TestesRealizados1/QA&Full/zap32x32.png delete mode 100644 TestesRealizados1/QA&Standard/QA&Standard.html delete mode 100644 TestesRealizados1/QA&Standard/normalize/LICENSE.md delete mode 100644 TestesRealizados1/QA&Standard/normalize/normalize.css delete mode 100644 TestesRealizados1/QA&Standard/themes/original/colors.css delete mode 100644 TestesRealizados1/QA&Standard/themes/original/main.css delete mode 100644 TestesRealizados1/QA&Standard/zap32x32.png delete mode 100644 TestesRealizados1/Squeence/Squeence.html delete mode 100644 TestesRealizados1/Squeence/normalize/LICENSE.md delete mode 100644 TestesRealizados1/Squeence/normalize/normalize.css delete mode 100644 TestesRealizados1/Squeence/themes/original/colors.css delete mode 100644 TestesRealizados1/Squeence/themes/original/main.css delete mode 100644 TestesRealizados1/Squeence/zap32x32.png create mode 100644 relatorio/imgs/email-invalido.png create mode 100644 relatorio/imgs/email-unique.png create mode 100644 relatorio/imgs/login-fuzzing.png create mode 100644 relatorio/imgs/sqlmap.png create mode 100644 relatorio/imgs/stack-trace.png diff --git a/TestesRealizados1/APi&test/2026-05-28-ZAP-Report-.html b/TestesRealizados1/APi&test/2026-05-28-ZAP-Report-.html deleted file mode 100644 index 4d5e8a5..0000000 --- a/TestesRealizados1/APi&test/2026-05-28-ZAP-Report-.html +++ /dev/null @@ -1,2588 +0,0 @@ - - - - - -ZAP by Checkmarx Scanning Report - - - - - -
-

ZAP by Checkmarx Scanning Report

-

- Generated with ZAP - on Thu 28 May 2026, at 05:57:47 -

-

ZAP Version: 2.17.0

-

- ZAP by Checkmarx -

-
- -
- -
-

Contents

- -
- -
-

About This Report

- - - -
-

Report Parameters

-
-

Contexts

- - -

No contexts were selected, so all contexts were included by default.

- - -

Sites

- -

The following sites were included:

-
    -
  • http://20.60.0.1:3000
  • -
- -

(If no sites were selected, all sites were included by default.)

-

An included site must also be within one of the included contexts for its data to be included in the report.

- -

Risk levels

-

- Included: - - High, Medium, Low, Informational -

-

- Excluded: - None - -

- -

Confidence levels

-

- Included: - - - User Confirmed, High, Medium, Low -

-

- Excluded: - - - User Confirmed, High, Medium, Low, False Positive -

-
-
-
- - -
- -
- -
-

Summaries

- -
-

Alert Counts by Risk and Confidence

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts for each level of risk and confidence included in the report.

-

(The percentages in brackets represent the count as a percentage of the total number of alerts included in the report, rounded to one decimal place.)

-
Confidence
User ConfirmedHighMediumLowTotal
RiskHigh0
(0.0%)
0
(0.0%)
0
(0.0%)
1
(11.1%)
1
(11.1%)
Medium0
(0.0%)
2
(22.2%)
2
(22.2%)
0
(0.0%)
4
(44.4%)
Low0
(0.0%)
0
(0.0%)
2
(22.2%)
1
(11.1%)
3
(33.3%)
Informational0
(0.0%)
0
(0.0%)
1
(11.1%)
0
(0.0%)
1
(11.1%)
Total0
(0.0%)
2
(22.2%)
5
(55.6%)
2
(22.2%)
9
(100%)
-
- -
-

Alert Counts by Site and Risk

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows, for each site for which one or more alerts were raised, the number of alerts raised at each risk level.

-

Alerts with a confidence level of "False Positive" have been excluded from these counts.

-

(The numbers in brackets are the number of alerts raised for the site at or above that risk level.)

-
Risk
- High
(= High) -
- Medium
(>= Medium) -
- Low
(>= Low) -
- Informational
(>= Informational) -
Sitehttp://20.60.0.1:30001
(1)
4
(5)
3
(8)
1
(9)
-
- -
-

Alert Counts by Alert Type

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts of each alert type, together with the alert type's risk level.

-

(The percentages in brackets represent each count as a percentage, rounded to one decimal place, of the total number of alerts included in this report.)

-
Alert typeRiskCount
SQL InjectionHigh1
(11.1%)
Content Security Policy (CSP) Header Not SetMedium5
(55.6%)
Cross-Domain MisconfigurationMedium5
(55.6%)
Missing Anti-clickjacking HeaderMedium1
(11.1%)
Session ID in URL RewriteMedium3
(33.3%)
Private IP DisclosureLow1
(11.1%)
Timestamp Disclosure - UnixLow5
(55.6%)
X-Content-Type-Options Header MissingLow3
(33.3%)
Modern Web ApplicationInformational5
(55.6%)
Total9
-
- -
-

Insights

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows information that is likely to be very relevant to you, but which is not related to vulnerabilities, or potentially even related to the application in question.

-
LevelReasonSiteDescriptionStatistic
-
Medium
-
-
Exceeded Low
-
-
-
-
Percentage of memory used
-
-
87
-
-
Low
-
-
Warning
-
-
-
-
ZAP errors logged - see the zap.log file for details
-
-
143
-
-
Low
-
-
Warning
-
-
-
-
ZAP warnings logged - see the zap.log file for details
-
-
68
-
-
Info
-
-
Informational
-
-
-
-
Percentage of network failures
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 2xx
-
-
94 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 3xx
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 4xx
-
-
3 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/javascript
-
-
9 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/json
-
-
5 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/octet-stream
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/jpeg
-
-
6 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/png
-
-
3 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/x-icon
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/css
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/html
-
-
65 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/markdown
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/plain
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method GET
-
-
97 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method POST
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Count of total endpoints
-
-
172
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of slow responses
-
-
86 %
-
-
-
- -
-

Alerts

-
    - - - - - - - - -
  1. -

    - Risk=High, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - SQL Injection (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/products/search?q=%27%28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          SQL injection may be possible.

          -
          Request
          - Request line and header section (307 bytes) - -
          GET http://20.60.0.1:3000/rest/products/search?q=%27%28 HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (362 bytes) - -
          HTTP/1.1 500 Internal Server Error
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 09:48:57 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -content-length: 309
          -
          -
          - - -
          - Response body (309 bytes) - -
          {
          -  "error": {
          -    "message": "SQLITE_ERROR: near \"(\": syntax error",
          -    "stack": "Error: SQLITE_ERROR: near \"(\": syntax error",
          -    "errno": 1,
          -    "code": "SQLITE_ERROR",
          -    "sql": "SELECT * FROM Products WHERE ((name LIKE '%'(%' OR description LIKE '%'(%') AND deletedAt IS NULL) ORDER BY name"
          -  }
          -}
          - - -
          Parameter
          q
          Attack
          '(
          Evidence
          HTTP/1.1 500 Internal Server Error
          Solution -

          Do not trust client side input, even if there is client side validation in place.

          - -

          In general, type check all data on the server side.

          - -

          If the application uses JDBC, use PreparedStatement or CallableStatement, with parameters passed by '?'

          - -

          If the application uses ASP, use ADO Command Objects with strong type checking and parameterized queries.

          - -

          If database Stored Procedures can be used, use them.

          - -

          Do *not* concatenate strings into queries in the stored procedure, or use 'exec', 'exec immediate', or equivalent functionality!

          - -

          Do not create dynamic SQL queries using simple string concatenation.

          - -

          Escape all data received from the client.

          - -

          Apply an 'allow list' of allowed characters, or a 'deny list' of disallowed characters in user input.

          - -

          Apply the principle of least privilege by using the least privileged database user possible.

          - -

          In particular, avoid using the 'sa' or 'db-owner' database users. This does not eliminate SQL injection, but minimizes its impact.

          - -

          Grant the minimum database access that is necessary for the application.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  2. - - - - -
  3. -

    - Risk=Medium, Confidence=High (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Content Security Policy (CSP) Header Not Set (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware. CSP provides a set of standard HTTP headers that allow website owners to declare approved sources of content that browsers should be allowed to load on that page — covered types are JavaScript, CSS, HTML frames, fonts, images and embeddable objects such as Java applets, ActiveX, audio and video files.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 09:18:51 GMT
          -ETag: W/"26af-19e6de122e4"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 09:42:12 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Solution -

          Ensure that your web server, application server, load balancer, etc. is configured to set the Content-Security-Policy header.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - Session ID in URL Rewrite (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvj-0KR&sid=8rzOcX52vIafWzc-AAAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          URL rewrite is used to track user session ID. The session ID may be disclosed via cross-site referer header. In addition, the session ID might be stored in browser history or server logs.

          -
          Request
          - Request line and header section (317 bytes) - -
          GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvj-0KR&sid=8rzOcX52vIafWzc-AAAA HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (231 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/plain; charset=UTF-8
          -Content-Length: 612
          -Date: Thu, 28 May 2026 09:43:56 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (612 bytes) - -
          40{"sid":"aGJN2cCfVJBb4F-hAAAB"}42["server started"]42["challenge solved",{"key":"directoryListingChallenge","name":"Confidential Document","challenge":"Confidential Document (Access a confidential document.)","flag":"8d2072c6b0a455608ca1a293dc0c9579883fc6a5","hidden":false,"isRestore":false,"codingChallenge":true}]42["challenge solved",{"key":"errorHandlingChallenge","name":"Error Handling","challenge":"Error Handling (Provoke an error that is neither very gracefully nor consistently handled.)","flag":"9c297196ecf8890bc1e900fcf3aebae8c9f9880a","hidden":false,"isRestore":false,"codingChallenge":false}]
          - - -
          Parameter
          sid
          Evidence
          8rzOcX52vIafWzc-AAAA
          Solution -

          For secure content, put session ID in a cookie. To be even more secure consider using a combination of cookie and URL rewrite.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  4. - -
  5. -

    - Risk=Medium, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Cross-Domain Misconfiguration (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/robots.txt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Web browser data loading may be possible, due to a Cross Origin Resource Sharing (CORS) misconfiguration on the web server.

          -
          Other info -

          The CORS misconfiguration on the web server permits cross-domain read requests from arbitrary third party domains, using unauthenticated APIs on this domain. Web browser implementations do not permit arbitrary third parties to read the response from authenticated APIs, however. This reduces the risk somewhat. This misconfiguration could be used by an attacker to access data that is available in an unauthenticated manner, but which uses some other form of security, such as IP address white-listing.

          -
          Request
          - Request line and header section (239 bytes) - -
          GET http://20.60.0.1:3000/robots.txt HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (378 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: text/plain; charset=utf-8
          -Content-Length: 28
          -ETag: W/"1c-8HgF6mNyhsSFK0pascC9uB0wjX0"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 09:42:12 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (28 bytes) - -
          User-agent: *
          -Disallow: /ftp
          - - -
          Evidence
          Access-Control-Allow-Origin: *
          Solution -

          Ensure that sensitive data is not available in an unauthenticated manner (using IP address white-listing, for instance).

          - -

          Configure the "Access-Control-Allow-Origin" HTTP header to a more restrictive set of domains, or remove all CORS headers entirely, to allow the web browser to enforce the Same Origin Policy (SOP) in a more restrictive manner.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - Missing Anti-clickjacking Header (1) -
        -
          -
        1. - - POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvj-0KI&sid=8rzOcX52vIafWzc-AAAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The response does not protect against 'ClickJacking' attacks. It should include either Content-Security-Policy with 'frame-ancestors' directive or X-Frame-Options.

          -
          Request
          - Request line and header section (408 bytes) - -
          POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvj-0KI&sid=8rzOcX52vIafWzc-AAAA HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Content-type: text/plain;charset=UTF-8
          -Content-Length: 2
          -Origin: http://20.60.0.1:3000
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (2 bytes) - -
          40
          - - -
          Response
          - Status line and header section (213 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/html
          -Content-Length: 2
          -Date: Thu, 28 May 2026 09:43:56 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (2 bytes) - -
          ok
          - - -
          Parameter
          x-frame-options
          Solution -

          Modern Web browsers support the Content-Security-Policy and X-Frame-Options HTTP headers. Ensure one of them is set on all web pages returned by your site/app.

          - -

          If you expect the page to be framed only by pages on your server (e.g. it's part of a FRAMESET) then you'll want to use SAMEORIGIN, otherwise if you never expect the page to be framed, you should use DENY. Alternatively consider implementing Content Security Policy's "frame-ancestors" directive.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  6. - - - - - - - - -
  7. -

    - Risk=Low, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Private IP Disclosure (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/admin/application-configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A private IP (such as 10.x.x.x, 172.x.x.x, 192.168.x.x) or an Amazon EC2 private hostname (for example, ip-10-0-56-78) has been found in the HTTP response body. This information might be helpful for further attacks targeting internal systems.

          -
          Other info -

          192.168.99.100:3000

          - -

          192.168.99.100:4200

          -
          Request
          - Request line and header section (314 bytes) - -
          GET http://20.60.0.1:3000/rest/admin/application-configuration HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (389 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Content-Length: 23513
          -ETag: W/"5bd9-reVonwE2GOcMzw2LpzIkSqyB2OE"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 09:43:49 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (23513 bytes) - -
          {"config":{"server":{"port":3000,"basePath":"","baseUrl":"http://localhost:3000"},"application":{"domain":"juice-sh.op","name":"OWASP Juice Shop","logo":"JuiceShop_Logo.png","favicon":"favicon_js.ico","theme":"bluegrey-lightgreen","showVersionNumber":true,"showGitHubLinks":true,"localBackupEnabled":true,"numberOfRandomFakeUsers":0,"altcoinName":"Juicycoin","privacyContactEmail":"donotreply@owasp-juice.shop","customMetricsPrefix":"juiceshop","chatBot":{"name":"Juicy the Smart Assistant","avatar":"JuicyChatBot.png","model":"gemma4:e4b","llmMaxRetries":2,"sampleQuestions":["CHATBOT_PROMPT_RECOMMENDATION_SUMMER_PARTY","CHATBOT_PROMPT_RECOMMENDATION_POPULAR","CHATBOT_PROMPT_RECOMMENDATION_SUGAR_FREE","CHATBOT_PROMPT_RECOMMENDATION_START_DAY","CHATBOT_PROMPT_RECOMMENDATION_SEASONAL"]},"social":{"blueSkyUrl":"https://bsky.app/profile/owasp-juice.shop","mastodonUrl":"https://fosstodon.org/@owasp_juiceshop","twitterUrl":"https://twitter.com/owasp_juiceshop","facebookUrl":"https://www.facebook.com/owasp.juiceshop","slackUrl":"https://owasp.org/slack/invite","redditUrl":"https://www.reddit.com/r/owasp_juiceshop","pressKitUrl":"https://github.com/OWASP/owasp-swag/tree/master/projects/juice-shop","nftUrl":"https://opensea.io/collection/juice-shop","questionnaireUrl":null},"recyclePage":{"topProductImage":"fruit_press.jpg","bottomProductImage":"apple_pressings.jpg"},"welcomeBanner":{"showOnFirstStart":true,"title":"Welcome to OWASP Juice Shop!","message":"<p>Being a web application with a vast number of intended security vulnerabilities, the <strong>OWASP Juice Shop</strong> is supposed to be the opposite of a best practice or template application for web developers: It is an awareness, training, demonstration and exercise tool for security risks in modern web applications. The <strong>OWASP Juice Shop</strong> is an open-source project hosted by the non-profit <a href='https://owasp.org' target='_blank'>Open Worldwide Application Security Project (OWASP)</a> and is developed and maintained by volunteers. Check out the link below for more information and documentation on the project.</p><h1><a href='https://owasp-juice.shop' target='_blank'>https://owasp-juice.shop</a></h1>"},"cookieConsent":{"message":"This website uses fruit cookies to ensure you get the juiciest tracking experience.","dismissText":"Me want it!","linkText":"But me wait!","linkUrl":"https://www.youtube.com/watch?v=9PnbKL3wuH4"},"securityTxt":{"contact":"mailto:donotreply@owasp-juice.shop","encryption":"https://keybase.io/bkimminich/pgp_keys.asc?fingerprint=19c01cb7157e4645e9e2c863062a85a8cbfbdcda","acknowledgements":"/#/score-board","hiring":"/#/jobs","csaf":"/.well-known/csaf/provider-metadata.json"},"promotion":{"video":"owasp_promo.mp4","subtitles":"owasp_promo.vtt"},"easterEggPlanet":{"name":"Orangeuze","overlayMap":"orangemap2k.avif"},"googleOauth":{"clientId":"1005568560502-6hm16lef8oh46hr2d98vf2ohlnj4nfhq.apps.googleusercontent.com","authorizedRedirects":[{"uri":"https://demo.owasp-juice.shop"},{"uri":"https://juice-shop.herokuapp.com"},{"uri":"https://preview.owasp-juice.shop"},{"uri":"https://juice-shop-staging.herokuapp.com"},{"uri":"https://juice-shop.wtf"},{"uri":"http://localhost:3000","proxy":"https://local3000.owasp-juice.shop"},{"uri":"http://127.0.0.1:3000","proxy":"https://local3000.owasp-juice.shop"},{"uri":"http://localhost:4200","proxy":"https://local4200.owasp-juice.shop"},{"uri":"http://127.0.0.1:4200","proxy":"https://local4200.owasp-juice.shop"},{"uri":"http://192.168.99.100:3000","proxy":"https://localmac.owasp-juice.shop"},{"uri":"http://192.168.99.100:4200","proxy":"https://localmac.owasp-juice.shop"},{"uri":"http://penguin.termina.linux.test:3000","proxy":"https://localchromeos.owasp-juice.shop"},{"uri":"http://penguin.termina.linux.test:4200","proxy":"https://localchromeos.owasp-juice.shop"}]}},"challenges":{"showSolvedNotifications":true,"showHints":true,"showMitigations":true,"codingChallengesEnabled":"solved","restrictToTutorialsFirst":false,"overwriteUrlForProductTamperingChallenge":"https://owasp.slack.com","xssBonusPayload":"<iframe width=\"100%\" height=\"166\" scrolling=\"no\" frameborder=\"no\" allow=\"autoplay\" src=\"https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/771984076&color=%23ff5500&auto_play=true&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true\"></iframe>","safetyMode":"auto","csafHashValue":"7e7ce7c65db3bf0625fcea4573d25cff41f2f7e3474f2c74334b14fc65bb4fd26af802ad17a3a03bf0eee6827a00fb8f7905f338c31b5e6ea9cb31620242e843","metricsIgnoredUserAgents":["Prometheus","Alloy","promscrape","otelcol"]},"hackingInstructor":{"isEnabled":true,"avatarImage":"JuicyBot.png","hintPlaybackSpeed":"normal"},"products":[{"name":"Apple Juice (1000ml)","price":1.99,"deluxePrice":0.99,"limitPerUser":5,"description":"The all-time classic.","image":"apple_juice.jpg","reviews":[{"text":"One of my favorites!","author":"admin"},{"text":"Great! We'll have an apple party. Everyone brings an apple and - STUFFS IT DOWN EACH OTHER'S THROAT!","author":"basil"}]},{"name":"Orange Juice (1000ml)","description":"Made from oranges hand-picked by Uncle Dittmeyer.","price":2.99,"deluxePrice":2.49,"image":"orange_juice.jpg","reviews":[{"text":"y0ur f1r3wall needs m0r3 musc13","author":"uvogin"}]},{"name":"Eggfruit Juice (500ml)","description":"Now with even more exotic flavour.","price":8.99,"image":"eggfruit_juice.jpg","reviews":[{"text":"I bought it, would buy again. 5/7","author":"admin"}]},{"name":"Raspberry Juice (1000ml)","description":"Made from blended Raspberry Pi, water and sugar.","price":4.99,"image":"raspberry_juice.jpg"},{"name":"Lemon Juice (500ml)","description":"Sour but full of vitamins.","price":2.99,"deluxePrice":1.99,"limitPerUser":5,"image":"lemon_juice.jpg"},{"name":"Banana Juice (1000ml)","description":"Monkeys love it the most.","price":1.99,"image":"banana_juice.jpg","reviews":[{"text":"Fry liked it too.","author":"bender"}]},{"name":"OWASP Juice Shop T-Shirt","description":"Real fans wear it 24/7!","price":22.49,"limitPerUser":5,"image":"fan_shirt.jpg"},{"name":"OWASP Juice Shop CTF Girlie-Shirt","description":"For serious Capture-the-Flag heroines only!","price":22.49,"image":"fan_girlie.jpg"},{"name":"OWASP SSL Advanced Forensic Tool (O-Saft)","description":"O-Saft is an easy to use tool to show information about SSL certificate and tests the SSL connection according given list of ciphers and various SSL configurations.","price":0.01,"image":"orange_juice.jpg","urlForProductTamperingChallenge":"https://www.owasp.org/index.php/O-Saft"},{"name":"Christmas Super-Surprise-Box (2014 Edition)","description":"Contains a random selection of 10 bottles (each 500ml) of our tastiest juices and an extra fan shirt for an unbeatable price!","price":29.99,"image":"undefined.jpg","useForChristmasSpecialChallenge":true},{"name":"Rippertuer Special Juice","description":"Contains a magical collection of the rarest fruits gathered from all around the world, like Cherymoya Annona cherimola, Jabuticaba Myrciaria cauliflora, Bael Aegle marmelos... and others, at an unbelievable price! <br/><span style=\"color:red;\">This item has been made unavailable because of lack of safety standards.</span>","price":16.99,"image":"undefined.jpg","keywordsForPastebinDataLeakChallenge":["hueteroneel","eurogium edule"]},{"name":"OWASP Juice Shop Sticker (2015/2016 design)","description":"Die-cut sticker with the official 2015/2016 logo. By now this is a rare collectors item. <em>Out of stock!</em>","price":999.99,"image":"sticker.png","deletedDate":"2017-04-28"},{"name":"OWASP Juice Shop Iron-Ons (16pcs)","description":"Upgrade your clothes with washer safe <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">iron-ons</a> of the OWASP Juice Shop or CTF Extension logo!","price":14.99,"image":"iron-on.jpg"},{"name":"OWASP Juice Shop Magnets (16pcs)","description":"Your fridge will be even cooler with these OWASP Juice Shop or CTF Extension logo <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">magnets</a>!","price":15.99,"image":"magnets.jpg"},{"name":"OWASP Juice Shop Sticker Page","description":"Massive decoration opportunities with these OWASP Juice Shop or CTF Extension <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">sticker pages</a>! Each page has 16 stickers on it.","price":9.99,"image":"sticker_page.jpg"},{"name":"OWASP Juice Shop Sticker Single","description":"Super high-quality vinyl <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">sticker single</a> with the OWASP Juice Shop or CTF Extension logo! The ultimate laptop decal!","price":4.99,"image":"sticker_single.jpg"},{"name":"OWASP Juice Shop Temporary Tattoos (16pcs)","description":"Get one of these <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">temporary tattoos</a> to proudly wear the OWASP Juice Shop or CTF Extension logo on your skin! If you tweet a photo of yourself with the tattoo, you get a couple of our stickers for free! Please mention <a href=\"https://twitter.com/owasp_juiceshop\" target=\"_blank\"><code>@owasp_juiceshop</code></a> in your tweet!","price":14.99,"image":"tattoo.jpg","reviews":[{"text":"I straight-up gots nuff props fo'these tattoos!","author":"rapper"}]},{"name":"OWASP Juice Shop Mug","description":"Black mug with regular logo on one side and CTF logo on the other! Your colleagues will envy you!","price":21.99,"image":"fan_mug.jpg"},{"name":"OWASP Juice Shop Hoodie","description":"Mr. Robot-style apparel. But in black. And with logo.","price":49.99,"image":"fan_hoodie.jpg"},{"name":"OWASP Juice Shop-CTF Velcro Patch","description":"4x3.5\" embroidered patch with velcro backside. The ultimate decal for every tactical bag or backpack!","price":2.92,"quantity":5,"limitPerUser":5,"image":"velcro-patch.jpg","reviews":[{"text":"This thang would look phat on Bobby's jacked fur coat!","author":"rapper"},{"text":"Looks so much better on my uniform than the boring Starfleet symbol.","author":"jim"}]},{"name":"Woodruff Syrup \"Forest Master X-Treme\"","description":"Harvested and manufactured in the Black Forest, Germany. Can cause hyperactive behavior in children. Can cause permanent green tongue when consumed undiluted.","price":6.99,"image":"woodruff_syrup.jpg"},{"name":"Green Smoothie","description":"Looks poisonous but is actually very good for your health! Made from green cabbage, spinach, kiwi and grass.","price":1.99,"image":"green_smoothie.jpg","reviews":[{"text":"Fresh out of a replicator.","author":"jim"}]},{"name":"Quince Juice (1000ml)","description":"Juice of the <em>Cydonia oblonga</em> fruit. Not exactly sweet but rich in Vitamin C.","price":4.99,"image":"quince.jpg"},{"name":"Apple Pomace","description":"Finest pressings of apples. Allergy disclaimer: Might contain traces of worms. Can be <a href=\"/#recycle\">sent back to us</a> for recycling.","price":0.89,"limitPerUser":5,"image":"apple_pressings.jpg"},{"name":"Fruit Press","description":"Fruits go in. Juice comes out. Pomace you can send back to us for recycling purposes.","price":89.99,"image":"fruit_press.jpg"},{"name":"OWASP Juice Shop Logo (3D-printed)","description":"This rare item was designed and handcrafted in Sweden. This is why it is so incredibly expensive despite its complete lack of purpose.","price":99.99,"image":"3d_keychain.jpg","fileForRetrieveBlueprintChallenge":"JuiceShop.stl","exifForBlueprintChallenge":["OpenSCAD"]},{"name":"Juice Shop Artwork","description":"Unique masterpiece painted with different kinds of juice on 90g/m² lined paper.","price":278.74,"quantity":0,"image":"artwork.jpg","deletedDate":"2020-12-24"},{"name":"Global OWASP WASPY Award 2017 Nomination","description":"Your chance to nominate up to three quiet pillars of the OWASP community ends 2017-06-30! <a href=\"https://www.owasp.org/index.php/WASPY_Awards_2017\">Nominate now!</a>","price":0.03,"image":"waspy.png","deletedDate":"2017-07-01"},{"name":"Strawberry Juice (500ml)","description":"Sweet & tasty!","price":3.99,"image":"strawberry_juice.jpeg"},{"name":"Carrot Juice (1000ml)","description":"As the old German saying goes: \"Carrots are good for the eyes. Or has anyone ever seen a rabbit with glasses?\"","price":2.99,"image":"carrot_juice.jpeg","reviews":[{"text":"0 st4rs f0r 7h3 h0rr1bl3 s3cur17y","author":"uvogin"}]},{"name":"OWASP Juice Shop Sweden Tour 2017 Sticker Sheet (Special Edition)","description":"10 sheets of Sweden-themed stickers with 15 stickers on each.","price":19.1,"image":"stickersheet_se.png","deletedDate":"2017-09-20"},{"name":"Pwning OWASP Juice Shop","description":"<em>The official Companion Guide</em> by Björn Kimminich available <a href=\"https://leanpub.com/juice-shop\">for free on LeanPub</a> and also <a href=\"https://pwning.owasp-juice.shop\">readable online</a>!","price":5.99,"image":"cover_small.jpg","reviews":[{"text":"Even more interesting than watching Interdimensional Cable!","author":"morty"}]},{"name":"Melon Bike (Comeback-Product 2018 Edition)","description":"The wheels of this bicycle are made from real water melons. You might not want to ride it up/down the curb too hard.","price":2999,"quantity":3,"limitPerUser":1,"image":"melon_bike.jpeg"},{"name":"OWASP Juice Shop Coaster (10pcs)","description":"Our 95mm circle coasters are printed in full color and made from thick, premium coaster board.","price":19.99,"quantity":0,"image":"coaster.jpg"},{"name":"OWASP Snakes and Ladders - Web Applications","description":"This amazing web application security awareness board game is <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1969196030\">available for Tabletop Simulator on Steam Workshop</a> now!","price":0.01,"quantity":8,"image":"snakes_ladders.jpg","reviews":[{"text":"Wait for a 10$ Steam sale of Tabletop Simulator!","author":"bjoernOwasp"}]},{"name":"OWASP Snakes and Ladders - Mobile Apps","description":"This amazing mobile app security awareness board game is <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1970691216\">available for Tabletop Simulator on Steam Workshop</a> now!","price":0.01,"quantity":0,"image":"snakes_ladders_m.jpg","reviews":[{"text":"Here yo' learn how tha fuck ta not show yo' goddamn phone on camera!","author":"rapper"}]},{"name":"OWASP Juice Shop Holographic Sticker","description":"Die-cut holographic sticker. Stand out from those 08/15-sticker-covered laptops with this shiny beacon of 80's coolness!","price":2,"quantity":0,"image":"holo_sticker.png","reviews":[{"text":"Rad, dude!","author":"rapper"},{"text":"Looks spacy on Bones' new tricorder!","author":"jim"},{"text":"Will put one on the Planet Express ship's bumper!","author":"bender"}]},{"name":"OWASP Juice Shop \"King of the Hill\" Facemask","description":"Facemask with compartment for filter from 50% cotton and 50% polyester.","price":13.49,"quantity":0,"limitPerUser":1,"image":"fan_facemask.jpg","reviews":[{"text":"K33p5 y0ur ju1cy 5plu773r 70 y0ur53lf!","author":"uvogin"},{"text":"Puny mask for puny human weaklings!","author":"bender"}]},{"name":"Juice Shop Adversary Trading Card (Common)","description":"Common rarity \"Juice Shop\" card for the <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSecLEakawSQ56lBe2JOSbFwFYrKDCIN7Yd3iHFdQc5z8ApwdQ/viewform\">Adversary Trading Cards</a> CCG.","price":2.99,"deluxePrice":0.99,"deletedDate":"2020-11-30","limitPerUser":5,"image":"ccg_common.png","reviews":[{"text":"Ooooh, puny human playing Mau Mau, now?","author":"bender"}]},{"name":"Juice Shop Adversary Trading Card (Super Rare)","description":"Super rare \"Juice Shop\" card with holographic foil-coating for the <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSecLEakawSQ56lBe2JOSbFwFYrKDCIN7Yd3iHFdQc5z8ApwdQ/viewform\">Adversary Trading Cards</a> CCG.","price":99.99,"deluxePrice":69.99,"deletedDate":"2020-11-30","quantity":2,"limitPerUser":1,"image":"ccg_foil.png","reviews":[{"text":"Mau Mau with bling-bling? Humans are so pathetic!","author":"bender"}]},{"name":"Juice Shop \"Permafrost\" 2020 Edition","description":"Exact version of <a href=\"https://github.com/juice-shop/juice-shop/releases/tag/v9.3.1-PERMAFROST\">OWASP Juice Shop that was archived on 02/02/2020</a> by the GitHub Archive Program and ultimately went into the <a href=\"https://github.blog/2020-07-16-github-archive-program-the-journey-of-the-worlds-open-source-code-to-the-arctic\">Arctic Code Vault</a> on July 8. 2020 where it will be safely stored for at least 1000 years.","price":9999.99,"quantity":1,"limitPerUser":1,"image":"permafrost.jpg","reviews":[{"text":"🧊 Let it go, let it go 🎶 Can't hold it back anymore 🎶 Let it go, let it go 🎶 Turn away and slam the door ❄️","author":"rapper"}]},{"name":"Best Juice Shop Salesman Artwork","description":"Unique digital painting depicting Stan, our most qualified and almost profitable salesman. He made a succesful carreer in selling used ships, coffins, krypts, crosses, real estate, life insurance, restaurant supplies, voodoo enhanced asbestos and courtroom souvenirs before <em>finally</em> adding his expertise to the Juice Shop marketing team.","price":5000,"quantity":1,"image":"artwork2.jpg","reviews":[{"text":"I'd stand on my head to make you a deal for this piece of art.","author":"stan"},{"text":"Just when my opinion of humans couldn't get any lower, along comes Stan...","author":"bender"}]},{"name":"OWASP Juice Shop Card (non-foil)","description":"Mythic rare <small><em>(obviously...)</em></small> card \"OWASP Juice Shop\" with three distinctly useful abilities. Alpha printing, mint condition. A true collectors piece to own!","price":1000,"quantity":3,"limitPerUser":1,"image":"card_alpha.jpg","reviews":[{"text":"DO NOT PLAY WITH THIS! Double-sleeve, then put it in the GitHub Arctic Vault for perfect preservation and boost of secondary market value!","author":"accountant"}]},{"name":"20th Anniversary Celebration Ticket","description":"Get your <a href=\"https://20thanniversary.owasp.org/\" target=\"_blank\">free 🎫 for OWASP 20th Anniversary Celebration</a> online conference! Hear from world renowned keynotes and special speakers, network with your peers and interact with our event sponsors. With an anticipated 10k+ attendees from around the world, you will not want to miss this live on-line event!","price":1e-20,"deletedDate":"2021-09-25","limitPerUser":1,"image":"20th.jpeg","reviews":[{"text":"I'll be there! Will you, too?","author":"bjoernOwasp"}]},{"name":"OWASP Juice Shop LEGO™ Tower","description":"Want to host a Juice Shop CTF in style? Build <a href=\"https://github.com/OWASP/owasp-swag/blob/master/projects/juice-shop/lego/OWASP%20JuiceShop%20Pi-server%201.2.pdf\" target=\"_blank\">your own LEGO™ tower</a> which holds four Raspberry Pi 4 models with PoE HAT modules <a href=\"https://github.com/juice-shop/multi-juicer/blob/main/guides/raspberry-pi/raspberry-pi.md\" target=\"_blank\">running a MultiJuicer Kubernetes cluster</a>! Wire to a switch and connect to your network to have an out-of-the-box ready CTF up in no time!","price":799,"quantity":3,"limitPerUser":1,"image":"lego_case.jpg","reviews":[{"text":"Check out the /#/photo-wall for some impressions of the assembly process!","author":"bjoernOwasp"}]},{"name":"DSOMM & Juice Shop User Day Ticket","description":"You are going to the OWASP Global AppSec San Francisco 2024? <a href=\"https://www.eventbrite.com/e/owasp-global-appsec-san-francisco-2024-tickets-723699172707\" target=\"_blank\">Get a ticket<sup>*</sup></a> for this amazing side event as well! Check the juice-packed agenda <a href=\"https://owasp.org/www-project-juice-shop/#div-userday2024\" target=\"_blank\">here</a> for all the details!<br><br><small><small><sup>*</sup>=scroll down to <strong>Elevate: DSOMM and Juice Shop User Day (Sept. 25)</strong> after clicking <em>Get Tickets</em> on Eventbrite. Ticket price set to only covers fees for room, AV, and catering throughout the day.</small></small>","price":55.2,"deletedDate":"2024-09-26","limitPerUser":1,"image":"user_day_ticket.png","reviews":[{"text":"The DSOMM Live Assessment session will even use Juice Shop as its \"real-world\" example!","author":"timo"},{"text":"We will showcase the amazing MultiJuicer Lego Tower at this event!","author":"jannik"}]},{"name":"Pineapple Juice (1000ml)","description":"Tropical refreshment from the finest sun-ripened pineapples.","price":2.99,"image":"pineapple_juice.png"},{"name":"Melon Juice (1000ml)","description":"Refreshing and sweet juice made from ripe melons.","price":2.49,"image":"melon_juice.png"},{"name":"Grape Juice (1000ml)","description":"Deep purple and full of antioxidants from selected grapes.","price":2.99,"image":"grape_juice.png"},{"name":"Dragonfruit Juice (500ml)","description":"Exotic and vibrant juice made from dragonfruit.","price":3.99,"image":"dragonfruit_juice.png"},{"name":"Berry Juice (1000ml)","description":"A delicious blend of fresh forest berries.","price":3.49,"image":"berry_juice.png"},{"name":"Basil Smoothie","description":"A unique blend of fresh basil and ginger for a healthy kick.","price":2.99,"image":"basil_smoothie.png","reviews":[{"text":"(ง'̀-'́)ง","author":"basil"}]},{"name":"Bragă (500ml)","description":"Traditional Balkan drink made from fermented millet. Lightly sweet-sour, refreshing, and naturally energizing.","price":2.49,"image":"braga.jpg"},{"name":"Elderflower Cordial (500ml)","description":"Floral and fragrant soft drink made from elderflowers. Traditionally enjoyed chilled.","price":3.29,"image":"elderflower_cordial.jpg"},{"name":"Sea Buckthorn Juice (500ml)","description":"Tangy and slightly sour juice, extremely rich in Vitamin C and antioxidants.","price":3.99,"image":"sea_buckthorn_juice.jpg"},{"name":"Pomegranate Drink (500ml)","description":"A sweet and tart refreshment inspired by classic grenadine flavors.","price":4.49,"image":"pomegranate_drink.jpg"}],"memories":[{"image":"magn(et)ificent!-1571814229653.jpg","caption":"Magn(et)ificent!","user":"bjoernGoogle"},{"image":"my-rare-collectors-item!-[̲̅$̲̅(̲̅-͡°-͜ʖ-͡°̲̅)̲̅$̲̅]-1572603645543.jpg","caption":"My rare collectors item! [̲̅$̲̅(̲̅ ͡° ͜ʖ ͡°̲̅)̲̅$̲̅]","user":"bjoernGoogle"},{"image":"favorite-hiking-place.png","caption":"I love going hiking here...","geoStalkingMetaSecurityQuestion":14,"geoStalkingMetaSecurityAnswer":"Daniel Boone National Forest"},{"image":"IMG_4253.jpg","caption":"My old workplace...","geoStalkingVisualSecurityQuestion":10,"geoStalkingVisualSecurityAnswer":"ITsec"},{"image":"BeeHaven.png","caption":"Welcome to the Bee Haven (/#/bee-haven)🐝","user":"evm"},{"image":"sorted-the-pieces,-starting-assembly-process-1721152307290.jpg","caption":"Sorted the pieces, starting assembly process...","user":"bjoernOwasp"},{"image":"building-something-literally-bottom-up-1721152342603.jpg","caption":"Building something literally bottom up...","user":"bjoernOwasp"},{"image":"putting-in-the-hardware-1721152366854.jpg","caption":"Putting in the hardware...","user":"bjoernOwasp"},{"image":"everything-up-and-running!-1721152385146.jpg","caption":"Everything up and running!","user":"bjoernOwasp"}],"ctf":{"showFlagsInNotifications":false,"showCountryDetailsInNotifications":"none","countryMapping":null,"systemWideNotifications":{"url":null,"pollFrequencySeconds":null}}}}
          - - -
          Evidence
          192.168.99.100:3000
          Solution -

          Remove the private IP address from the HTTP response body. For comments, use JSP/ASP/PHP comment instead of HTML/JavaScript comment which can be seen by client browsers.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - X-Content-Type-Options Header Missing (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvjzzFj - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

          -
          Other info -

          This issue still applies to error type pages (401, 403, 500, etc.) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

          - -

          At "High" threshold this scan rule will not alert on client or server error responses.

          -
          Request
          - Request line and header section (292 bytes) - -
          GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvjzzFj HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (230 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/plain; charset=UTF-8
          -Content-Length: 96
          -Date: Thu, 28 May 2026 09:43:44 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (96 bytes) - -
          0{"sid":"8rzOcX52vIafWzc-AAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
          - - -
          Parameter
          x-content-type-options
          Solution -

          Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

          - -

          If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  8. - -
  9. -

    - Risk=Low, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Timestamp Disclosure - Unix (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A timestamp was disclosed by the application/web server. - Unix

          -
          Other info -

          1666666667, which evaluates to: 2022-10-24 22:57:47.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 09:18:51 GMT
          -ETag: W/"26af-19e6de122e4"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 09:42:12 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          1666666667
          Solution -

          Manually confirm that the timestamp data is not sensitive, and that the data cannot be aggregated to disclose exploitable patterns.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  10. - - - - - - -
  11. -

    - Risk=Informational, Confidence=Medium (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Modern Web Application (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The application appears to be a modern web application. If you need to explore it automatically then the Ajax Spider may well be more effective than the standard one.

          -
          Other info -

          No links have been found while there are scripts, which is an indication that this is a modern web application.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 09:18:51 GMT
          -ETag: W/"26af-19e6de122e4"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 09:42:12 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          Solution -

          This is an informational alert and so no changes are required.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  12. - - - -
-
- -
-

Appendix

- -
-

Alert Types

-

This section contains additional information on the types of alerts in the report.

-
    -
  1. -

    SQL Injection

    - - - - - - - - - - - - - - - - - -
    Source - - raised by an active scanner (SQL Injection) - -
    CWE ID89
    WASC ID19
    Reference -
      -
    1. https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
    2. -
    -
    -
  2. -
  3. -

    Content Security Policy (CSP) Header Not Set

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Content Security Policy (CSP) Header Not Set) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP
    2. -
    3. https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html
    4. -
    5. https://www.w3.org/TR/CSP/
    6. -
    7. https://w3c.github.io/webappsec-csp/
    8. -
    9. https://web.dev/articles/csp
    10. -
    11. https://caniuse.com/#feat=contentsecuritypolicy
    12. -
    13. https://content-security-policy.com/
    14. -
    -
    -
  4. -
  5. -

    Cross-Domain Misconfiguration

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Cross-Domain Misconfiguration) - -
    CWE ID264
    WASC ID14
    Reference -
      -
    1. https://vulncat.fortify.com/en/detail?category=HTML5&subcategory=Overly%20Permissive%20CORS%20Policy
    2. -
    -
    -
  6. -
  7. -

    Missing Anti-clickjacking Header

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Anti-clickjacking Header) - -
    CWE ID1021
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options
    2. -
    -
    -
  8. -
  9. -

    Session ID in URL Rewrite

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Session ID in URL Rewrite) - -
    CWE ID598
    WASC ID13
    Reference -
      -
    1. https://seclists.org/webappsec/2002/q4/111
    2. -
    -
    -
  10. -
  11. -

    Private IP Disclosure

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Private IP Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://datatracker.ietf.org/doc/html/rfc1918
    2. -
    -
    -
  12. -
  13. -

    Timestamp Disclosure - Unix

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Timestamp Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://cwe.mitre.org/data/definitions/200.html
    2. -
    -
    -
  14. -
  15. -

    X-Content-Type-Options Header Missing

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (X-Content-Type-Options Header Missing) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/compatibility/gg622941(v=vs.85)
    2. -
    3. https://owasp.org/www-community/Security_Headers
    4. -
    -
    -
  16. -
  17. -

    Modern Web Application

    - - - - - - - - -
    Source - - raised by a passive scanner (Modern Web Application) - -
    -
  18. -
-
-
- -
- - - - - diff --git a/TestesRealizados1/APi&test/normalize/LICENSE.md b/TestesRealizados1/APi&test/normalize/LICENSE.md deleted file mode 100644 index 43b5ddc..0000000 --- a/TestesRealizados1/APi&test/normalize/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# The MIT License (MIT) - -Copyright © Nicolas Gallagher and Jonathan Neal - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/TestesRealizados1/APi&test/normalize/normalize.css b/TestesRealizados1/APi&test/normalize/normalize.css deleted file mode 100644 index 192eb9c..0000000 --- a/TestesRealizados1/APi&test/normalize/normalize.css +++ /dev/null @@ -1,349 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} diff --git a/TestesRealizados1/APi&test/themes/original/colors.css b/TestesRealizados1/APi&test/themes/original/colors.css deleted file mode 100644 index fd3b963..0000000 --- a/TestesRealizados1/APi&test/themes/original/colors.css +++ /dev/null @@ -1,139 +0,0 @@ -body { - background-color: #306aa0; - background-image: radial-gradient(circle at top left, #fff 0%, #8ce1d6 15em, #306aa0 100em, #386095 100%); -} - -main, footer { - background-color: #fff; -} - -header { - background-color: #00549e; - color: #fff; -} - -a:link { - color: #004380; -} - -a:visited { - color: #770d67; -} - -a:focus { - background-color: #ffd54d; -} - -a:hover { - background-color: #ffd54d; -} - -a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -header a:link { - color: #f2f7fd; -} - -header a:visited { - color: #f2b5e9; -} - -header a:focus { - background-color: #ffd54d; - color: #004380; -} - -header a:hover { - background-color: #ffd54d; - color: #004380; -} - -header a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #fff6db; -} - -summary:focus { - background-color: #ffd54d; -} - -summary:hover { - background-color: #ffd54d; -} - -summary:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -h2, h3, h4, h5, h6 { - color: #00549e; -} - -.risk-level, .confidence-level { - color: #00549e; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - color: #00549e; -} - -.risk-confidence-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - color: #00549e; -} - -.site-risk-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.alert-type-counts-table > tbody > tr { - border-bottom-color: #00549e; -} - -.alert-type-counts-table th[scope="col"] { - background-color: #00549e; - color: #fff; -} - -.alert-type-counts-table th[scope="col"] { - border-left-color: #fff; -} - -.alerts-table th, .alert-types-table th { - background-color: #306aa0; - color: #fff; -} - -.additional-info-percentages { - color: #00549e; -} - -.insights-table > tbody > tr { - border-bottom-color: #00549e; -} - -.insights-table th[scope="col"] { - background-color: #00549e; - border-left-color: #fff; - color: #fff; -} diff --git a/TestesRealizados1/APi&test/themes/original/main.css b/TestesRealizados1/APi&test/themes/original/main.css deleted file mode 100644 index 050bd3f..0000000 --- a/TestesRealizados1/APi&test/themes/original/main.css +++ /dev/null @@ -1,417 +0,0 @@ -*, *::after, *::before { - box-sizing: border-box; -} - -h1, h2, h3, h4, h5, h6 { - margin: 0; - padding: 0; -} - -pre, ul { - margin: 0; -} - -ol { - list-style-type: none; -} - -h1 { - font-size: 3em; -} - -h2 { - font-size: 2em; -} - -h3, h4, h5, h6 { - font-size: 1em; -} - -html { - box-sizing: border-box; - font-family: Verdana, sans-serif; - line-height: 1.5; -} - -body { - margin: 1.5em 0; -} - -@media screen and (min-width: 50em) { - body { - margin: 1.5em 2ch; - padding: 1.5em 2ch; - } -} - -a:active, header a:active { - outline-style: solid; -} - -header, main { - margin: 0 auto; - max-width: 90ch; - padding: 1.5em 4ch; -} - -header { - border-radius: .25em .25em 0 0; -} - -main { - border-radius: 0 0 .25em .25em; -} - -summary { - cursor: pointer; -} - -.contents { - margin-top: 1.5em; -} - -main > section { - margin-bottom: 4.5em; -} - -.about-this-report > section { - margin-bottom: 3em; -} - -.summaries section { - margin-bottom: 3em; -} - -h2 { - margin-bottom: .75em; -} - -h3 { - margin-bottom: 1.5em; -} - -h4 { - margin-bottom: 1.5em; -} - -.report-parameters--container h4 { - margin-top: 1.5em; -} - -p { - margin: 1.5em 0; -} - -p:first-of-type { - margin-top: 0; -} - -p:last-of-type { - margin-bottom: 0; -} - -.contents li, .alerts li, .alert-types > ol > li { - margin-top: 1.5em; -} - -.alert-types h4 { - margin-bottom: 0; -} - -a { - border-radius: .125em; -} - -caption { - margin-bottom: 1.5em; - text-align: left; -} - -code, .request-method-n-url { - overflow-wrap: anywhere; - white-space: break-spaces; -} - -table { - border-collapse: collapse; -} - -.report-description--container, .report-parameters--container { - margin-left: 2ch; - padding: 0 2ch; -} - -.about-this-report h3, .summaries h3, .appendix h3 { - border-bottom: .05em solid; -} - -.alerts h4 { - text-align: center; -} - -.alerts ol { - padding-left: 0; -} - -.alerts--site-li { - border: .05em solid; - border-radius: .25em; - margin-left: 2ch; - padding: 1.5em 3ch; -} - -.contents ol { - list-style-position: inside; - list-style-type: square; - padding-left: 4ch; -} - -.contexts-list, .sites-list { - list-style-type: square; -} - -.risk-confidence-counts-table { - width: 100%; -} - -.risk-confidence-counts-table tr { - height: 4.5em; -} - -.risk-confidence-counts-table thead > tr { - height: 3em; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table th[scope="rowgroup"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.risk-confidence-counts-table th[scope="row"] { - padding-right: 5%; -} - -@media screen and (max-width: 50em) { - .risk-confidence-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.risk-confidence-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.risk-confidence-counts-table > tbody > tr { - border-top: .05em solid; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table td { - vertical-align: top; -} - -.risk-confidence-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.risk-confidence-counts-table td, .risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - text-align: right; -} - -.site-risk-counts-table { - width: 100%; -} - -.site-risk-counts-table tr { - height: 4.5em; -} - -.site-risk-counts-table thead > tr:first-of-type { - height: 3em; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table th[scope="col"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.site-risk-counts-table th[scope="row"] { - padding-right: 1%; -} - -@media screen and (max-width: 50em) { - .site-risk-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.site-risk-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.site-risk-counts-table > tbody > tr { - border-top: .05em solid; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table td { - vertical-align: top; -} - -.site-risk-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.site-risk-counts-table td, .site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - text-align: right; -} - -.alert-type-counts-table { - width: 100%; -} - -.alert-type-counts-table th, .alert-type-counts-table td { - padding: 0 1rem; - text-align: left; - vertical-align: top; -} - -.alert-type-counts-table td:nth-last-of-type(2) { - padding-left: 1.5rem; -} - -.alert-type-counts-table > tbody > tr { - border-bottom: 0.05em dotted; -} - -.alert-type-counts-table th[scope="col"] { - border-left: 1rem solid; -} - -.alert-type-counts-table th[scope="col"]:first-of-type { - border-left: 0; -} - -.alert-type-counts-table th[scope="col"]:last-of-type, .alert-type-counts-table td:last-of-type { - text-align: right; -} - -.alert-type-counts-table th[scope="col"], .alert-type-counts-table th[scope="row"] { - font-weight: normal; -} - -.alert-type-counts-table th[scope="row"], .alert-type-counts-table td { - padding-bottom: 1.5em; -} - -.alert-type-counts-table thead > th:first-of-type { - width: 45%; -} - -.alerts-table, .alert-types-table, .insights-table { - border-collapse: separate; - border-spacing: 2ch 1.5em; - width: 100%; -} - -.alerts-table th, .alerts-table td, .alert-types-table th, .alert-types-table td, .insights-table td, .insights-table th { - vertical-align: top; -} - -.alerts-table td, .alert-types-table td, .insights-table td { - overflow-wrap: anywhere; -} - -.alerts-table th, .alert-types-table th, .insights-table th { - padding: 0 1ch; -} - -.alerts-table td, .alert-types-table td { - padding: 0 2ch; -} - -.insights-table td { - padding: 0 1ch; -} - -.alerts-table summary { - margin-bottom: 1.5em; -} - -.alert-tags-list { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-tags-list > li { - margin-top: 0; -} - -.request-body, .response-body { - margin-top: 1.5em; -} - -.request-method-n-url { - margin-bottom: 0; -} - -.alert-types-table { - padding-top: 0; -} - -.alert-types-table th { - width: 20%; -} - -.alert-types-table ol { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-types-table li:not(:first-of-type) { - margin-top: 1.5em; -} - -p.alert-types-intro { - margin-bottom: 3em; -} - -.zap-logo { - height: 1em; - margin-right: .25ch; - width: 1em; -} - -h1, h2 { - font-family: Georgia, serif; -} - -.risk-level, .confidence-level, .included-risk-codes, .included-confidence-codes, .additional-info-percentages { - font-family: monospace, monospace; -} - -.context, .site, .request-method-n-url { - font-family: monospace, monospace; -} diff --git a/TestesRealizados1/APi&test/zap32x32.png b/TestesRealizados1/APi&test/zap32x32.png deleted file mode 100644 index 9c1019ffb2ad500434d78f20f5a624bd660e6735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1933 zcmV;82Xgp{P)LZ&X_*%IgUcU=kqE(b z4NRzXHHacGqA;V7EOd-rLRUsK6M0)>lNA+QA(1s>0WooNopVsi`f~3%&(A;3?F-PB zvOj!oo}80&pL3q?@9q2jJ@8;-E^rih7x)VQ$FTzF0Ce^0)w*%xMg@9CT^);$`@`-S z|D^%X0-G{2GScem>Zq-)#c><}&YnG+{?@;fz2@5u5&VQI{0HC&b5Eb8v=CMzq8Xh{uDUJ;6-8cvHPPw(V1AXlBMlio^B!;`1mR7lQz6stN1n` zVSRiJ3Jh}IHmwUh{p952jC=DbQ>IW{T+Bm{EyTg%86hH)s*G@RBZ6ZD zR~$s-xgh|tIK<*bMohZnrPKSTebm&{(An8JZUCD%Zw|w-XamM3aZ{E@QkJ_Sh=4&b zVlZMR6MN-LA+KI)MxOZY4_$EN7gpcl|GBy+*}SFI&@zE+1c5&ojb?% zH-610omUXmkc0pc4MCuY3JRI#ep;zPz!%CkF{7fMRjXD}R#rwLkr?x}`Sa(qYu7G1 z4zIhf6b}b*b0|Z?2bxNbAlb*&-!+hzmq$fKMaqhiM-T+Gw6t*h_U({ddb?6-2&w|A zpn{45bPqNps$5aDKvhCrw+1VURUz5a1;EaoJE^Lw8q=z_wl+#jOPTPwnarrD$C>b1 zeBZ~~fqr423P90ogC0=PH?8Vm*#v}(0|k?r!xzizShj2#GiT1Ey}f-@07XSb?AWn` zo)51w@$*j*Sf2pBs|*LhoR?u5{SD7JEun@R9Ak(IM2sO~gs2fb$L0Oj{d{ntiOR}K z4jw#6R#w)CK$a|7Ld#z-Gd=bqy@><~t0b(&SH%x3{Wghj{ro$E>8w7|8!?eI&lp@s zaK#WcLS%r`jo>*Bw)ZCgII)AS>wjbG)~z%&G>ix$H+M2U56vZe;WP9n69iWA)shSX z`fak)9$cP#M-^Drp9UIWRk0R)RT8QshN)UI2q2optfzJ|r}}xe?|y;IjENjOcI+Mi z7cX9-`|VS7cbpDGkWxfn15~wP#HQ4&KGGL8Zqzd_CM6=?Fb}vQxI!o{fa9gn`BpRU zy|It{{Ct|4nwT|f*5LO}o;*oeSs7W&e}iV^hCM-${BO{>Jm(%YOnIR)X)V55tW|8v z^2ET^D*YDvtkSPaPoj^^$IF?s{&lVgQFL zf4TNCRPNcLzb)TB`ne$0!%HlF+%?X3TygP?!H8f?C?W&GVvG#277}_4P&Z27wKi^_ z`UMY9O6QgM5f&|4M0R!--M6}buJEI=4km*jh{gB1;;i$G!4U@|f*8RtASQ%eXNt)N z2*#qQRjl#oYmeiff0@FG0rvrUs1Grl_V)4yJq|S&*HyA`hPcY4iwPqM T`!Z{P00000NkvXXu0mjf{kVU6 diff --git a/TestesRealizados1/DEVCICD-/DEVCICD-.html b/TestesRealizados1/DEVCICD-/DEVCICD-.html deleted file mode 100644 index 4ff8dcd..0000000 --- a/TestesRealizados1/DEVCICD-/DEVCICD-.html +++ /dev/null @@ -1,1913 +0,0 @@ - - - - - -ZAP by Checkmarx Scanning Report - - - - - -
-

ZAP by Checkmarx Scanning Report

-

- Generated with ZAP - on Thu 28 May 2026, at 07:07:20 -

-

ZAP Version: 2.17.0

-

- ZAP by Checkmarx -

-
- -
- -
-

Contents

- -
- -
-

About This Report

- - - -
-

Report Parameters

-
-

Contexts

- - -

No contexts were selected, so all contexts were included by default.

- - -

Sites

- -

The following sites were included:

-
    -
  • http://20.60.0.1:3000
  • -
- -

(If no sites were selected, all sites were included by default.)

-

An included site must also be within one of the included contexts for its data to be included in the report.

- -

Risk levels

-

- Included: - - High, Medium, Low, Informational -

-

- Excluded: - None - -

- -

Confidence levels

-

- Included: - - - User Confirmed, High, Medium, Low -

-

- Excluded: - - - User Confirmed, High, Medium, Low, False Positive -

-
-
-
- - -
- -
- -
-

Summaries

- -
-

Alert Counts by Risk and Confidence

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts for each level of risk and confidence included in the report.

-

(The percentages in brackets represent the count as a percentage of the total number of alerts included in the report, rounded to one decimal place.)

-
Confidence
User ConfirmedHighMediumLowTotal
RiskHigh0
(0.0%)
0
(0.0%)
0
(0.0%)
1
(20.0%)
1
(20.0%)
Medium0
(0.0%)
1
(20.0%)
1
(20.0%)
0
(0.0%)
2
(40.0%)
Low0
(0.0%)
0
(0.0%)
0
(0.0%)
1
(20.0%)
1
(20.0%)
Informational0
(0.0%)
0
(0.0%)
1
(20.0%)
0
(0.0%)
1
(20.0%)
Total0
(0.0%)
1
(20.0%)
2
(40.0%)
2
(40.0%)
5
(100%)
-
- -
-

Alert Counts by Site and Risk

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows, for each site for which one or more alerts were raised, the number of alerts raised at each risk level.

-

Alerts with a confidence level of "False Positive" have been excluded from these counts.

-

(The numbers in brackets are the number of alerts raised for the site at or above that risk level.)

-
Risk
- High
(= High) -
- Medium
(>= Medium) -
- Low
(>= Low) -
- Informational
(>= Informational) -
Sitehttp://20.60.0.1:30001
(1)
2
(3)
1
(4)
1
(5)
-
- -
-

Alert Counts by Alert Type

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts of each alert type, together with the alert type's risk level.

-

(The percentages in brackets represent each count as a percentage, rounded to one decimal place, of the total number of alerts included in this report.)

-
Alert typeRiskCount
SQL InjectionHigh1
(20.0%)
Content Security Policy (CSP) Header Not SetMedium5
(100.0%)
Cross-Domain MisconfigurationMedium5
(100.0%)
Timestamp Disclosure - UnixLow5
(100.0%)
Modern Web ApplicationInformational5
(100.0%)
Total5
-
- -
-

Insights

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows information that is likely to be very relevant to you, but which is not related to vulnerabilities, or potentially even related to the application in question.

-
LevelReasonSiteDescriptionStatistic
-
Low
-
-
Warning
-
-
-
-
ZAP errors logged - see the zap.log file for details
-
-
68
-
-
Low
-
-
Warning
-
-
-
-
ZAP warnings logged - see the zap.log file for details
-
-
27
-
-
Info
-
-
Informational
-
-
-
-
Percentage of network failures
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 2xx
-
-
93 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 4xx
-
-
6 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/javascript
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/json
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/octet-stream
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/jpeg
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/png
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/x-icon
-
-
3 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/css
-
-
3 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/html
-
-
92 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/markdown
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/plain
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method GET
-
-
99 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method POST
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Count of total endpoints
-
-
811
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of slow responses
-
-
36 %
-
-
-
- -
-

Alerts

-
    - - - - - - - - -
  1. -

    - Risk=High, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - SQL Injection (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/products/search?q=%27%28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          SQL injection may be possible.

          -
          Request
          - Request line and header section (307 bytes) - -
          GET http://20.60.0.1:3000/rest/products/search?q=%27%28 HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (362 bytes) - -
          HTTP/1.1 500 Internal Server Error
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 11:05:06 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -content-length: 309
          -
          -
          - - -
          - Response body (309 bytes) - -
          {
          -  "error": {
          -    "message": "SQLITE_ERROR: near \"(\": syntax error",
          -    "stack": "Error: SQLITE_ERROR: near \"(\": syntax error",
          -    "errno": 1,
          -    "code": "SQLITE_ERROR",
          -    "sql": "SELECT * FROM Products WHERE ((name LIKE '%'(%' OR description LIKE '%'(%') AND deletedAt IS NULL) ORDER BY name"
          -  }
          -}
          - - -
          Parameter
          q
          Attack
          '(
          Evidence
          HTTP/1.1 500 Internal Server Error
          Solution -

          Do not trust client side input, even if there is client side validation in place.

          - -

          In general, type check all data on the server side.

          - -

          If the application uses JDBC, use PreparedStatement or CallableStatement, with parameters passed by '?'

          - -

          If the application uses ASP, use ADO Command Objects with strong type checking and parameterized queries.

          - -

          If database Stored Procedures can be used, use them.

          - -

          Do *not* concatenate strings into queries in the stored procedure, or use 'exec', 'exec immediate', or equivalent functionality!

          - -

          Do not create dynamic SQL queries using simple string concatenation.

          - -

          Escape all data received from the client.

          - -

          Apply an 'allow list' of allowed characters, or a 'deny list' of disallowed characters in user input.

          - -

          Apply the principle of least privilege by using the least privileged database user possible.

          - -

          In particular, avoid using the 'sa' or 'db-owner' database users. This does not eliminate SQL injection, but minimizes its impact.

          - -

          Grant the minimum database access that is necessary for the application.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  2. - - - - -
  3. -

    - Risk=Medium, Confidence=High (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Content Security Policy (CSP) Header Not Set (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware. CSP provides a set of standard HTTP headers that allow website owners to declare approved sources of content that browsers should be allowed to load on that page — covered types are JavaScript, CSS, HTML frames, fonts, images and embeddable objects such as Java applets, ActiveX, audio and video files.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 10:59:18 GMT
          -ETag: W/"26af-19e6e3d1825"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 11:01:24 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Solution -

          Ensure that your web server, application server, load balancer, etc. is configured to set the Content-Security-Policy header.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  4. - -
  5. -

    - Risk=Medium, Confidence=Medium (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Cross-Domain Misconfiguration (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Web browser data loading may be possible, due to a Cross Origin Resource Sharing (CORS) misconfiguration on the web server.

          -
          Other info -

          The CORS misconfiguration on the web server permits cross-domain read requests from arbitrary third party domains, using unauthenticated APIs on this domain. Web browser implementations do not permit arbitrary third parties to read the response from authenticated APIs, however. This reduces the risk somewhat. This misconfiguration could be used by an attacker to access data that is available in an unauthenticated manner, but which uses some other form of security, such as IP address white-listing.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 10:59:18 GMT
          -ETag: W/"26af-19e6e3d1825"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 11:01:24 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          Access-Control-Allow-Origin: *
          Solution -

          Ensure that sensitive data is not available in an unauthenticated manner (using IP address white-listing, for instance).

          - -

          Configure the "Access-Control-Allow-Origin" HTTP header to a more restrictive set of domains, or remove all CORS headers entirely, to allow the web browser to enforce the Same Origin Policy (SOP) in a more restrictive manner.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  6. - - - - - - - - - - -
  7. -

    - Risk=Low, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Timestamp Disclosure - Unix (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A timestamp was disclosed by the application/web server. - Unix

          -
          Other info -

          1666666667, which evaluates to: 2022-10-24 22:57:47.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 10:59:18 GMT
          -ETag: W/"26af-19e6e3d1825"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 11:01:24 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          1666666667
          Solution -

          Manually confirm that the timestamp data is not sensitive, and that the data cannot be aggregated to disclose exploitable patterns.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  8. - - - - - - -
  9. -

    - Risk=Informational, Confidence=Medium (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Modern Web Application (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The application appears to be a modern web application. If you need to explore it automatically then the Ajax Spider may well be more effective than the standard one.

          -
          Other info -

          No links have been found while there are scripts, which is an indication that this is a modern web application.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 10:59:18 GMT
          -ETag: W/"26af-19e6e3d1825"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 11:01:24 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          Solution -

          This is an informational alert and so no changes are required.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  10. - - - -
-
- -
-

Appendix

- -
-

Alert Types

-

This section contains additional information on the types of alerts in the report.

-
    -
  1. -

    SQL Injection

    - - - - - - - - - - - - - - - - - -
    Source - - raised by an active scanner (SQL Injection) - -
    CWE ID89
    WASC ID19
    Reference -
      -
    1. https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
    2. -
    -
    -
  2. -
  3. -

    Content Security Policy (CSP) Header Not Set

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Content Security Policy (CSP) Header Not Set) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP
    2. -
    3. https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html
    4. -
    5. https://www.w3.org/TR/CSP/
    6. -
    7. https://w3c.github.io/webappsec-csp/
    8. -
    9. https://web.dev/articles/csp
    10. -
    11. https://caniuse.com/#feat=contentsecuritypolicy
    12. -
    13. https://content-security-policy.com/
    14. -
    -
    -
  4. -
  5. -

    Cross-Domain Misconfiguration

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Cross-Domain Misconfiguration) - -
    CWE ID264
    WASC ID14
    Reference -
      -
    1. https://vulncat.fortify.com/en/detail?category=HTML5&subcategory=Overly%20Permissive%20CORS%20Policy
    2. -
    -
    -
  6. -
  7. -

    Timestamp Disclosure - Unix

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Timestamp Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://cwe.mitre.org/data/definitions/200.html
    2. -
    -
    -
  8. -
  9. -

    Modern Web Application

    - - - - - - - - -
    Source - - raised by a passive scanner (Modern Web Application) - -
    -
  10. -
-
-
- -
- - - - - diff --git a/TestesRealizados1/DEVCICD-/normalize/LICENSE.md b/TestesRealizados1/DEVCICD-/normalize/LICENSE.md deleted file mode 100644 index 43b5ddc..0000000 --- a/TestesRealizados1/DEVCICD-/normalize/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# The MIT License (MIT) - -Copyright © Nicolas Gallagher and Jonathan Neal - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/TestesRealizados1/DEVCICD-/normalize/normalize.css b/TestesRealizados1/DEVCICD-/normalize/normalize.css deleted file mode 100644 index 192eb9c..0000000 --- a/TestesRealizados1/DEVCICD-/normalize/normalize.css +++ /dev/null @@ -1,349 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} diff --git a/TestesRealizados1/DEVCICD-/themes/original/colors.css b/TestesRealizados1/DEVCICD-/themes/original/colors.css deleted file mode 100644 index fd3b963..0000000 --- a/TestesRealizados1/DEVCICD-/themes/original/colors.css +++ /dev/null @@ -1,139 +0,0 @@ -body { - background-color: #306aa0; - background-image: radial-gradient(circle at top left, #fff 0%, #8ce1d6 15em, #306aa0 100em, #386095 100%); -} - -main, footer { - background-color: #fff; -} - -header { - background-color: #00549e; - color: #fff; -} - -a:link { - color: #004380; -} - -a:visited { - color: #770d67; -} - -a:focus { - background-color: #ffd54d; -} - -a:hover { - background-color: #ffd54d; -} - -a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -header a:link { - color: #f2f7fd; -} - -header a:visited { - color: #f2b5e9; -} - -header a:focus { - background-color: #ffd54d; - color: #004380; -} - -header a:hover { - background-color: #ffd54d; - color: #004380; -} - -header a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #fff6db; -} - -summary:focus { - background-color: #ffd54d; -} - -summary:hover { - background-color: #ffd54d; -} - -summary:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -h2, h3, h4, h5, h6 { - color: #00549e; -} - -.risk-level, .confidence-level { - color: #00549e; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - color: #00549e; -} - -.risk-confidence-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - color: #00549e; -} - -.site-risk-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.alert-type-counts-table > tbody > tr { - border-bottom-color: #00549e; -} - -.alert-type-counts-table th[scope="col"] { - background-color: #00549e; - color: #fff; -} - -.alert-type-counts-table th[scope="col"] { - border-left-color: #fff; -} - -.alerts-table th, .alert-types-table th { - background-color: #306aa0; - color: #fff; -} - -.additional-info-percentages { - color: #00549e; -} - -.insights-table > tbody > tr { - border-bottom-color: #00549e; -} - -.insights-table th[scope="col"] { - background-color: #00549e; - border-left-color: #fff; - color: #fff; -} diff --git a/TestesRealizados1/DEVCICD-/themes/original/main.css b/TestesRealizados1/DEVCICD-/themes/original/main.css deleted file mode 100644 index 050bd3f..0000000 --- a/TestesRealizados1/DEVCICD-/themes/original/main.css +++ /dev/null @@ -1,417 +0,0 @@ -*, *::after, *::before { - box-sizing: border-box; -} - -h1, h2, h3, h4, h5, h6 { - margin: 0; - padding: 0; -} - -pre, ul { - margin: 0; -} - -ol { - list-style-type: none; -} - -h1 { - font-size: 3em; -} - -h2 { - font-size: 2em; -} - -h3, h4, h5, h6 { - font-size: 1em; -} - -html { - box-sizing: border-box; - font-family: Verdana, sans-serif; - line-height: 1.5; -} - -body { - margin: 1.5em 0; -} - -@media screen and (min-width: 50em) { - body { - margin: 1.5em 2ch; - padding: 1.5em 2ch; - } -} - -a:active, header a:active { - outline-style: solid; -} - -header, main { - margin: 0 auto; - max-width: 90ch; - padding: 1.5em 4ch; -} - -header { - border-radius: .25em .25em 0 0; -} - -main { - border-radius: 0 0 .25em .25em; -} - -summary { - cursor: pointer; -} - -.contents { - margin-top: 1.5em; -} - -main > section { - margin-bottom: 4.5em; -} - -.about-this-report > section { - margin-bottom: 3em; -} - -.summaries section { - margin-bottom: 3em; -} - -h2 { - margin-bottom: .75em; -} - -h3 { - margin-bottom: 1.5em; -} - -h4 { - margin-bottom: 1.5em; -} - -.report-parameters--container h4 { - margin-top: 1.5em; -} - -p { - margin: 1.5em 0; -} - -p:first-of-type { - margin-top: 0; -} - -p:last-of-type { - margin-bottom: 0; -} - -.contents li, .alerts li, .alert-types > ol > li { - margin-top: 1.5em; -} - -.alert-types h4 { - margin-bottom: 0; -} - -a { - border-radius: .125em; -} - -caption { - margin-bottom: 1.5em; - text-align: left; -} - -code, .request-method-n-url { - overflow-wrap: anywhere; - white-space: break-spaces; -} - -table { - border-collapse: collapse; -} - -.report-description--container, .report-parameters--container { - margin-left: 2ch; - padding: 0 2ch; -} - -.about-this-report h3, .summaries h3, .appendix h3 { - border-bottom: .05em solid; -} - -.alerts h4 { - text-align: center; -} - -.alerts ol { - padding-left: 0; -} - -.alerts--site-li { - border: .05em solid; - border-radius: .25em; - margin-left: 2ch; - padding: 1.5em 3ch; -} - -.contents ol { - list-style-position: inside; - list-style-type: square; - padding-left: 4ch; -} - -.contexts-list, .sites-list { - list-style-type: square; -} - -.risk-confidence-counts-table { - width: 100%; -} - -.risk-confidence-counts-table tr { - height: 4.5em; -} - -.risk-confidence-counts-table thead > tr { - height: 3em; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table th[scope="rowgroup"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.risk-confidence-counts-table th[scope="row"] { - padding-right: 5%; -} - -@media screen and (max-width: 50em) { - .risk-confidence-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.risk-confidence-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.risk-confidence-counts-table > tbody > tr { - border-top: .05em solid; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table td { - vertical-align: top; -} - -.risk-confidence-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.risk-confidence-counts-table td, .risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - text-align: right; -} - -.site-risk-counts-table { - width: 100%; -} - -.site-risk-counts-table tr { - height: 4.5em; -} - -.site-risk-counts-table thead > tr:first-of-type { - height: 3em; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table th[scope="col"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.site-risk-counts-table th[scope="row"] { - padding-right: 1%; -} - -@media screen and (max-width: 50em) { - .site-risk-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.site-risk-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.site-risk-counts-table > tbody > tr { - border-top: .05em solid; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table td { - vertical-align: top; -} - -.site-risk-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.site-risk-counts-table td, .site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - text-align: right; -} - -.alert-type-counts-table { - width: 100%; -} - -.alert-type-counts-table th, .alert-type-counts-table td { - padding: 0 1rem; - text-align: left; - vertical-align: top; -} - -.alert-type-counts-table td:nth-last-of-type(2) { - padding-left: 1.5rem; -} - -.alert-type-counts-table > tbody > tr { - border-bottom: 0.05em dotted; -} - -.alert-type-counts-table th[scope="col"] { - border-left: 1rem solid; -} - -.alert-type-counts-table th[scope="col"]:first-of-type { - border-left: 0; -} - -.alert-type-counts-table th[scope="col"]:last-of-type, .alert-type-counts-table td:last-of-type { - text-align: right; -} - -.alert-type-counts-table th[scope="col"], .alert-type-counts-table th[scope="row"] { - font-weight: normal; -} - -.alert-type-counts-table th[scope="row"], .alert-type-counts-table td { - padding-bottom: 1.5em; -} - -.alert-type-counts-table thead > th:first-of-type { - width: 45%; -} - -.alerts-table, .alert-types-table, .insights-table { - border-collapse: separate; - border-spacing: 2ch 1.5em; - width: 100%; -} - -.alerts-table th, .alerts-table td, .alert-types-table th, .alert-types-table td, .insights-table td, .insights-table th { - vertical-align: top; -} - -.alerts-table td, .alert-types-table td, .insights-table td { - overflow-wrap: anywhere; -} - -.alerts-table th, .alert-types-table th, .insights-table th { - padding: 0 1ch; -} - -.alerts-table td, .alert-types-table td { - padding: 0 2ch; -} - -.insights-table td { - padding: 0 1ch; -} - -.alerts-table summary { - margin-bottom: 1.5em; -} - -.alert-tags-list { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-tags-list > li { - margin-top: 0; -} - -.request-body, .response-body { - margin-top: 1.5em; -} - -.request-method-n-url { - margin-bottom: 0; -} - -.alert-types-table { - padding-top: 0; -} - -.alert-types-table th { - width: 20%; -} - -.alert-types-table ol { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-types-table li:not(:first-of-type) { - margin-top: 1.5em; -} - -p.alert-types-intro { - margin-bottom: 3em; -} - -.zap-logo { - height: 1em; - margin-right: .25ch; - width: 1em; -} - -h1, h2 { - font-family: Georgia, serif; -} - -.risk-level, .confidence-level, .included-risk-codes, .included-confidence-codes, .additional-info-percentages { - font-family: monospace, monospace; -} - -.context, .site, .request-method-n-url { - font-family: monospace, monospace; -} diff --git a/TestesRealizados1/DEVCICD-/zap32x32.png b/TestesRealizados1/DEVCICD-/zap32x32.png deleted file mode 100644 index 9c1019ffb2ad500434d78f20f5a624bd660e6735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1933 zcmV;82Xgp{P)LZ&X_*%IgUcU=kqE(b z4NRzXHHacGqA;V7EOd-rLRUsK6M0)>lNA+QA(1s>0WooNopVsi`f~3%&(A;3?F-PB zvOj!oo}80&pL3q?@9q2jJ@8;-E^rih7x)VQ$FTzF0Ce^0)w*%xMg@9CT^);$`@`-S z|D^%X0-G{2GScem>Zq-)#c><}&YnG+{?@;fz2@5u5&VQI{0HC&b5Eb8v=CMzq8Xh{uDUJ;6-8cvHPPw(V1AXlBMlio^B!;`1mR7lQz6stN1n` zVSRiJ3Jh}IHmwUh{p952jC=DbQ>IW{T+Bm{EyTg%86hH)s*G@RBZ6ZD zR~$s-xgh|tIK<*bMohZnrPKSTebm&{(An8JZUCD%Zw|w-XamM3aZ{E@QkJ_Sh=4&b zVlZMR6MN-LA+KI)MxOZY4_$EN7gpcl|GBy+*}SFI&@zE+1c5&ojb?% zH-610omUXmkc0pc4MCuY3JRI#ep;zPz!%CkF{7fMRjXD}R#rwLkr?x}`Sa(qYu7G1 z4zIhf6b}b*b0|Z?2bxNbAlb*&-!+hzmq$fKMaqhiM-T+Gw6t*h_U({ddb?6-2&w|A zpn{45bPqNps$5aDKvhCrw+1VURUz5a1;EaoJE^Lw8q=z_wl+#jOPTPwnarrD$C>b1 zeBZ~~fqr423P90ogC0=PH?8Vm*#v}(0|k?r!xzizShj2#GiT1Ey}f-@07XSb?AWn` zo)51w@$*j*Sf2pBs|*LhoR?u5{SD7JEun@R9Ak(IM2sO~gs2fb$L0Oj{d{ntiOR}K z4jw#6R#w)CK$a|7Ld#z-Gd=bqy@><~t0b(&SH%x3{Wghj{ro$E>8w7|8!?eI&lp@s zaK#WcLS%r`jo>*Bw)ZCgII)AS>wjbG)~z%&G>ix$H+M2U56vZe;WP9n69iWA)shSX z`fak)9$cP#M-^Drp9UIWRk0R)RT8QshN)UI2q2optfzJ|r}}xe?|y;IjENjOcI+Mi z7cX9-`|VS7cbpDGkWxfn15~wP#HQ4&KGGL8Zqzd_CM6=?Fb}vQxI!o{fa9gn`BpRU zy|It{{Ct|4nwT|f*5LO}o;*oeSs7W&e}iV^hCM-${BO{>Jm(%YOnIR)X)V55tW|8v z^2ET^D*YDvtkSPaPoj^^$IF?s{&lVgQFL zf4TNCRPNcLzb)TB`ne$0!%HlF+%?X3TygP?!H8f?C?W&GVvG#277}_4P&Z27wKi^_ z`UMY9O6QgM5f&|4M0R!--M6}buJEI=4km*jh{gB1;;i$G!4U@|f*8RtASQ%eXNt)N z2*#qQRjl#oYmeiff0@FG0rvrUs1Grl_V)4yJq|S&*HyA`hPcY4iwPqM T`!Z{P00000NkvXXu0mjf{kVU6 diff --git a/TestesRealizados1/Default^Policy/Default^Policy.html b/TestesRealizados1/Default^Policy/Default^Policy.html deleted file mode 100644 index 79fac06..0000000 --- a/TestesRealizados1/Default^Policy/Default^Policy.html +++ /dev/null @@ -1,2919 +0,0 @@ - - - - - -ZAP by Checkmarx Scanning Report - - - - - -
-

ZAP by Checkmarx Scanning Report

-

- Generated with ZAP - on Thu 28 May 2026, at 06:58:33 -

-

ZAP Version: 2.17.0

-

- ZAP by Checkmarx -

-
- -
- -
-

Contents

- -
- -
-

About This Report

- - - -
-

Report Parameters

-
-

Contexts

- - -

No contexts were selected, so all contexts were included by default.

- - -

Sites

- -

The following sites were included:

-
    -
  • http://20.60.0.1:3000
  • -
- -

(If no sites were selected, all sites were included by default.)

-

An included site must also be within one of the included contexts for its data to be included in the report.

- -

Risk levels

-

- Included: - - High, Medium, Low, Informational -

-

- Excluded: - None - -

- -

Confidence levels

-

- Included: - - - User Confirmed, High, Medium, Low -

-

- Excluded: - - - User Confirmed, High, Medium, Low, False Positive -

-
-
-
- - -
- -
- -
-

Summaries

- -
-

Alert Counts by Risk and Confidence

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts for each level of risk and confidence included in the report.

-

(The percentages in brackets represent the count as a percentage of the total number of alerts included in the report, rounded to one decimal place.)

-
Confidence
User ConfirmedHighMediumLowTotal
RiskHigh0
(0.0%)
0
(0.0%)
0
(0.0%)
1
(9.1%)
1
(9.1%)
Medium0
(0.0%)
2
(18.2%)
2
(18.2%)
0
(0.0%)
4
(36.4%)
Low0
(0.0%)
0
(0.0%)
2
(18.2%)
1
(9.1%)
3
(27.3%)
Informational0
(0.0%)
1
(9.1%)
2
(18.2%)
0
(0.0%)
3
(27.3%)
Total0
(0.0%)
3
(27.3%)
6
(54.5%)
2
(18.2%)
11
(100%)
-
- -
-

Alert Counts by Site and Risk

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows, for each site for which one or more alerts were raised, the number of alerts raised at each risk level.

-

Alerts with a confidence level of "False Positive" have been excluded from these counts.

-

(The numbers in brackets are the number of alerts raised for the site at or above that risk level.)

-
Risk
- High
(= High) -
- Medium
(>= Medium) -
- Low
(>= Low) -
- Informational
(>= Informational) -
Sitehttp://20.60.0.1:30001
(1)
4
(5)
3
(8)
3
(11)
-
- -
-

Alert Counts by Alert Type

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts of each alert type, together with the alert type's risk level.

-

(The percentages in brackets represent each count as a percentage, rounded to one decimal place, of the total number of alerts included in this report.)

-
Alert typeRiskCount
SQL InjectionHigh1
(9.1%)
Content Security Policy (CSP) Header Not SetMedium5
(45.5%)
Cross-Domain MisconfigurationMedium5
(45.5%)
Missing Anti-clickjacking HeaderMedium3
(27.3%)
Session ID in URL RewriteMedium5
(45.5%)
Private IP DisclosureLow1
(9.1%)
Timestamp Disclosure - UnixLow5
(45.5%)
X-Content-Type-Options Header MissingLow5
(45.5%)
Modern Web ApplicationInformational5
(45.5%)
Session Management Response IdentifiedInformational1
(9.1%)
User Agent FuzzerInformational5
(45.5%)
Total11
-
- -
-

Insights

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows information that is likely to be very relevant to you, but which is not related to vulnerabilities, or potentially even related to the application in question.

-
LevelReasonSiteDescriptionStatistic
-
Medium
-
-
Exceeded Low
-
-
-
-
Percentage of memory used
-
-
80
-
-
Low
-
-
Warning
-
-
-
-
ZAP errors logged - see the zap.log file for details
-
-
380
-
-
Low
-
-
Warning
-
-
-
-
ZAP warnings logged - see the zap.log file for details
-
-
122
-
-
Low
-
-
Exceeded Low
-
-
-
-
Percentage of network failures
-
-
5 %
-
-
Low
-
-
Exceeded High
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 4xx
-
-
50 %
-
-
Low
-
-
Exceeded High
-
-
http://20.60.0.1:3000
-
-
Percentage of slow responses
-
-
51 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 1xx
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 2xx
-
-
46 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 3xx
-
-
3 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 5xx
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/javascript
-
-
9 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/json
-
-
5 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/octet-stream
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/jpeg
-
-
6 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/png
-
-
3 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/x-icon
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/css
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/html
-
-
65 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/markdown
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/plain
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method GET
-
-
97 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method POST
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Count of total endpoints
-
-
173
-
-
-
- -
-

Alerts

-
    - - - - - - - - -
  1. -

    - Risk=High, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - SQL Injection (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/products/search?q=%27%28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          SQL injection may be possible.

          -
          Request
          - Request line and header section (307 bytes) - -
          GET http://20.60.0.1:3000/rest/products/search?q=%27%28 HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (362 bytes) - -
          HTTP/1.1 500 Internal Server Error
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 10:31:15 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -content-length: 309
          -
          -
          - - -
          - Response body (309 bytes) - -
          {
          -  "error": {
          -    "message": "SQLITE_ERROR: near \"(\": syntax error",
          -    "stack": "Error: SQLITE_ERROR: near \"(\": syntax error",
          -    "errno": 1,
          -    "code": "SQLITE_ERROR",
          -    "sql": "SELECT * FROM Products WHERE ((name LIKE '%'(%' OR description LIKE '%'(%') AND deletedAt IS NULL) ORDER BY name"
          -  }
          -}
          - - -
          Parameter
          q
          Attack
          '(
          Evidence
          HTTP/1.1 500 Internal Server Error
          Solution -

          Do not trust client side input, even if there is client side validation in place.

          - -

          In general, type check all data on the server side.

          - -

          If the application uses JDBC, use PreparedStatement or CallableStatement, with parameters passed by '?'

          - -

          If the application uses ASP, use ADO Command Objects with strong type checking and parameterized queries.

          - -

          If database Stored Procedures can be used, use them.

          - -

          Do *not* concatenate strings into queries in the stored procedure, or use 'exec', 'exec immediate', or equivalent functionality!

          - -

          Do not create dynamic SQL queries using simple string concatenation.

          - -

          Escape all data received from the client.

          - -

          Apply an 'allow list' of allowed characters, or a 'deny list' of disallowed characters in user input.

          - -

          Apply the principle of least privilege by using the least privileged database user possible.

          - -

          In particular, avoid using the 'sa' or 'db-owner' database users. This does not eliminate SQL injection, but minimizes its impact.

          - -

          Grant the minimum database access that is necessary for the application.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  2. - - - - -
  3. -

    - Risk=Medium, Confidence=High (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Content Security Policy (CSP) Header Not Set (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware. CSP provides a set of standard HTTP headers that allow website owners to declare approved sources of content that browsers should be allowed to load on that page — covered types are JavaScript, CSS, HTML frames, fonts, images and embeddable objects such as Java applets, ActiveX, audio and video files.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 10:18:52 GMT
          -ETag: W/"26af-19e6e1813ac"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 10:21:09 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Solution -

          Ensure that your web server, application server, load balancer, etc. is configured to set the Content-Security-Policy header.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - Session ID in URL Rewrite (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvk6yvM&sid=pd0V5LZ93y-FQn8oAAAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          URL rewrite is used to track user session ID. The session ID may be disclosed via cross-site referer header. In addition, the session ID might be stored in browser history or server logs.

          -
          Request
          - Request line and header section (317 bytes) - -
          GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvk6yvM&sid=pd0V5LZ93y-FQn8oAAAA HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (231 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/plain; charset=UTF-8
          -Content-Length: 612
          -Date: Thu, 28 May 2026 10:23:03 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (612 bytes) - -
          40{"sid":"03u5dabLobU2g8TXAAAB"}42["server started"]42["challenge solved",{"key":"directoryListingChallenge","name":"Confidential Document","challenge":"Confidential Document (Access a confidential document.)","flag":"8d2072c6b0a455608ca1a293dc0c9579883fc6a5","hidden":false,"isRestore":false,"codingChallenge":true}]42["challenge solved",{"key":"errorHandlingChallenge","name":"Error Handling","challenge":"Error Handling (Provoke an error that is neither very gracefully nor consistently handled.)","flag":"9c297196ecf8890bc1e900fcf3aebae8c9f9880a","hidden":false,"isRestore":false,"codingChallenge":false}]
          - - -
          Parameter
          sid
          Evidence
          pd0V5LZ93y-FQn8oAAAA
          Solution -

          For secure content, put session ID in a cookie. To be even more secure consider using a combination of cookie and URL rewrite.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  4. - -
  5. -

    - Risk=Medium, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Cross-Domain Misconfiguration (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/robots.txt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Web browser data loading may be possible, due to a Cross Origin Resource Sharing (CORS) misconfiguration on the web server.

          -
          Other info -

          The CORS misconfiguration on the web server permits cross-domain read requests from arbitrary third party domains, using unauthenticated APIs on this domain. Web browser implementations do not permit arbitrary third parties to read the response from authenticated APIs, however. This reduces the risk somewhat. This misconfiguration could be used by an attacker to access data that is available in an unauthenticated manner, but which uses some other form of security, such as IP address white-listing.

          -
          Request
          - Request line and header section (239 bytes) - -
          GET http://20.60.0.1:3000/robots.txt HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (378 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: text/plain; charset=utf-8
          -Content-Length: 28
          -ETag: W/"1c-8HgF6mNyhsSFK0pascC9uB0wjX0"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 10:21:09 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (28 bytes) - -
          User-agent: *
          -Disallow: /ftp
          - - -
          Evidence
          Access-Control-Allow-Origin: *
          Solution -

          Ensure that sensitive data is not available in an unauthenticated manner (using IP address white-listing, for instance).

          - -

          Configure the "Access-Control-Allow-Origin" HTTP header to a more restrictive set of domains, or remove all CORS headers entirely, to allow the web browser to enforce the Same Origin Policy (SOP) in a more restrictive manner.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - Missing Anti-clickjacking Header (1) -
        -
          -
        1. - - POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvk6yux&sid=pd0V5LZ93y-FQn8oAAAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The response does not protect against 'ClickJacking' attacks. It should include either Content-Security-Policy with 'frame-ancestors' directive or X-Frame-Options.

          -
          Request
          - Request line and header section (408 bytes) - -
          POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvk6yux&sid=pd0V5LZ93y-FQn8oAAAA HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Content-type: text/plain;charset=UTF-8
          -Content-Length: 2
          -Origin: http://20.60.0.1:3000
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (2 bytes) - -
          40
          - - -
          Response
          - Status line and header section (213 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/html
          -Content-Length: 2
          -Date: Thu, 28 May 2026 10:23:03 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (2 bytes) - -
          ok
          - - -
          Parameter
          x-frame-options
          Solution -

          Modern Web browsers support the Content-Security-Policy and X-Frame-Options HTTP headers. Ensure one of them is set on all web pages returned by your site/app.

          - -

          If you expect the page to be framed only by pages on your server (e.g. it's part of a FRAMESET) then you'll want to use SAMEORIGIN, otherwise if you never expect the page to be framed, you should use DENY. Alternatively consider implementing Content Security Policy's "frame-ancestors" directive.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  6. - - - - - - - - -
  7. -

    - Risk=Low, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Private IP Disclosure (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/admin/application-configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A private IP (such as 10.x.x.x, 172.x.x.x, 192.168.x.x) or an Amazon EC2 private hostname (for example, ip-10-0-56-78) has been found in the HTTP response body. This information might be helpful for further attacks targeting internal systems.

          -
          Other info -

          192.168.99.100:3000

          - -

          192.168.99.100:4200

          -
          Request
          - Request line and header section (314 bytes) - -
          GET http://20.60.0.1:3000/rest/admin/application-configuration HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (389 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Content-Length: 23513
          -ETag: W/"5bd9-reVonwE2GOcMzw2LpzIkSqyB2OE"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 10:22:59 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (23513 bytes) - -
          {"config":{"server":{"port":3000,"basePath":"","baseUrl":"http://localhost:3000"},"application":{"domain":"juice-sh.op","name":"OWASP Juice Shop","logo":"JuiceShop_Logo.png","favicon":"favicon_js.ico","theme":"bluegrey-lightgreen","showVersionNumber":true,"showGitHubLinks":true,"localBackupEnabled":true,"numberOfRandomFakeUsers":0,"altcoinName":"Juicycoin","privacyContactEmail":"donotreply@owasp-juice.shop","customMetricsPrefix":"juiceshop","chatBot":{"name":"Juicy the Smart Assistant","avatar":"JuicyChatBot.png","model":"gemma4:e4b","llmMaxRetries":2,"sampleQuestions":["CHATBOT_PROMPT_RECOMMENDATION_SUMMER_PARTY","CHATBOT_PROMPT_RECOMMENDATION_POPULAR","CHATBOT_PROMPT_RECOMMENDATION_SUGAR_FREE","CHATBOT_PROMPT_RECOMMENDATION_START_DAY","CHATBOT_PROMPT_RECOMMENDATION_SEASONAL"]},"social":{"blueSkyUrl":"https://bsky.app/profile/owasp-juice.shop","mastodonUrl":"https://fosstodon.org/@owasp_juiceshop","twitterUrl":"https://twitter.com/owasp_juiceshop","facebookUrl":"https://www.facebook.com/owasp.juiceshop","slackUrl":"https://owasp.org/slack/invite","redditUrl":"https://www.reddit.com/r/owasp_juiceshop","pressKitUrl":"https://github.com/OWASP/owasp-swag/tree/master/projects/juice-shop","nftUrl":"https://opensea.io/collection/juice-shop","questionnaireUrl":null},"recyclePage":{"topProductImage":"fruit_press.jpg","bottomProductImage":"apple_pressings.jpg"},"welcomeBanner":{"showOnFirstStart":true,"title":"Welcome to OWASP Juice Shop!","message":"<p>Being a web application with a vast number of intended security vulnerabilities, the <strong>OWASP Juice Shop</strong> is supposed to be the opposite of a best practice or template application for web developers: It is an awareness, training, demonstration and exercise tool for security risks in modern web applications. The <strong>OWASP Juice Shop</strong> is an open-source project hosted by the non-profit <a href='https://owasp.org' target='_blank'>Open Worldwide Application Security Project (OWASP)</a> and is developed and maintained by volunteers. Check out the link below for more information and documentation on the project.</p><h1><a href='https://owasp-juice.shop' target='_blank'>https://owasp-juice.shop</a></h1>"},"cookieConsent":{"message":"This website uses fruit cookies to ensure you get the juiciest tracking experience.","dismissText":"Me want it!","linkText":"But me wait!","linkUrl":"https://www.youtube.com/watch?v=9PnbKL3wuH4"},"securityTxt":{"contact":"mailto:donotreply@owasp-juice.shop","encryption":"https://keybase.io/bkimminich/pgp_keys.asc?fingerprint=19c01cb7157e4645e9e2c863062a85a8cbfbdcda","acknowledgements":"/#/score-board","hiring":"/#/jobs","csaf":"/.well-known/csaf/provider-metadata.json"},"promotion":{"video":"owasp_promo.mp4","subtitles":"owasp_promo.vtt"},"easterEggPlanet":{"name":"Orangeuze","overlayMap":"orangemap2k.avif"},"googleOauth":{"clientId":"1005568560502-6hm16lef8oh46hr2d98vf2ohlnj4nfhq.apps.googleusercontent.com","authorizedRedirects":[{"uri":"https://demo.owasp-juice.shop"},{"uri":"https://juice-shop.herokuapp.com"},{"uri":"https://preview.owasp-juice.shop"},{"uri":"https://juice-shop-staging.herokuapp.com"},{"uri":"https://juice-shop.wtf"},{"uri":"http://localhost:3000","proxy":"https://local3000.owasp-juice.shop"},{"uri":"http://127.0.0.1:3000","proxy":"https://local3000.owasp-juice.shop"},{"uri":"http://localhost:4200","proxy":"https://local4200.owasp-juice.shop"},{"uri":"http://127.0.0.1:4200","proxy":"https://local4200.owasp-juice.shop"},{"uri":"http://192.168.99.100:3000","proxy":"https://localmac.owasp-juice.shop"},{"uri":"http://192.168.99.100:4200","proxy":"https://localmac.owasp-juice.shop"},{"uri":"http://penguin.termina.linux.test:3000","proxy":"https://localchromeos.owasp-juice.shop"},{"uri":"http://penguin.termina.linux.test:4200","proxy":"https://localchromeos.owasp-juice.shop"}]}},"challenges":{"showSolvedNotifications":true,"showHints":true,"showMitigations":true,"codingChallengesEnabled":"solved","restrictToTutorialsFirst":false,"overwriteUrlForProductTamperingChallenge":"https://owasp.slack.com","xssBonusPayload":"<iframe width=\"100%\" height=\"166\" scrolling=\"no\" frameborder=\"no\" allow=\"autoplay\" src=\"https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/771984076&color=%23ff5500&auto_play=true&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true\"></iframe>","safetyMode":"auto","csafHashValue":"7e7ce7c65db3bf0625fcea4573d25cff41f2f7e3474f2c74334b14fc65bb4fd26af802ad17a3a03bf0eee6827a00fb8f7905f338c31b5e6ea9cb31620242e843","metricsIgnoredUserAgents":["Prometheus","Alloy","promscrape","otelcol"]},"hackingInstructor":{"isEnabled":true,"avatarImage":"JuicyBot.png","hintPlaybackSpeed":"normal"},"products":[{"name":"Apple Juice (1000ml)","price":1.99,"deluxePrice":0.99,"limitPerUser":5,"description":"The all-time classic.","image":"apple_juice.jpg","reviews":[{"text":"One of my favorites!","author":"admin"},{"text":"Great! We'll have an apple party. Everyone brings an apple and - STUFFS IT DOWN EACH OTHER'S THROAT!","author":"basil"}]},{"name":"Orange Juice (1000ml)","description":"Made from oranges hand-picked by Uncle Dittmeyer.","price":2.99,"deluxePrice":2.49,"image":"orange_juice.jpg","reviews":[{"text":"y0ur f1r3wall needs m0r3 musc13","author":"uvogin"}]},{"name":"Eggfruit Juice (500ml)","description":"Now with even more exotic flavour.","price":8.99,"image":"eggfruit_juice.jpg","reviews":[{"text":"I bought it, would buy again. 5/7","author":"admin"}]},{"name":"Raspberry Juice (1000ml)","description":"Made from blended Raspberry Pi, water and sugar.","price":4.99,"image":"raspberry_juice.jpg"},{"name":"Lemon Juice (500ml)","description":"Sour but full of vitamins.","price":2.99,"deluxePrice":1.99,"limitPerUser":5,"image":"lemon_juice.jpg"},{"name":"Banana Juice (1000ml)","description":"Monkeys love it the most.","price":1.99,"image":"banana_juice.jpg","reviews":[{"text":"Fry liked it too.","author":"bender"}]},{"name":"OWASP Juice Shop T-Shirt","description":"Real fans wear it 24/7!","price":22.49,"limitPerUser":5,"image":"fan_shirt.jpg"},{"name":"OWASP Juice Shop CTF Girlie-Shirt","description":"For serious Capture-the-Flag heroines only!","price":22.49,"image":"fan_girlie.jpg"},{"name":"OWASP SSL Advanced Forensic Tool (O-Saft)","description":"O-Saft is an easy to use tool to show information about SSL certificate and tests the SSL connection according given list of ciphers and various SSL configurations.","price":0.01,"image":"orange_juice.jpg","urlForProductTamperingChallenge":"https://www.owasp.org/index.php/O-Saft"},{"name":"Christmas Super-Surprise-Box (2014 Edition)","description":"Contains a random selection of 10 bottles (each 500ml) of our tastiest juices and an extra fan shirt for an unbeatable price!","price":29.99,"image":"undefined.jpg","useForChristmasSpecialChallenge":true},{"name":"Rippertuer Special Juice","description":"Contains a magical collection of the rarest fruits gathered from all around the world, like Cherymoya Annona cherimola, Jabuticaba Myrciaria cauliflora, Bael Aegle marmelos... and others, at an unbelievable price! <br/><span style=\"color:red;\">This item has been made unavailable because of lack of safety standards.</span>","price":16.99,"image":"undefined.jpg","keywordsForPastebinDataLeakChallenge":["hueteroneel","eurogium edule"]},{"name":"OWASP Juice Shop Sticker (2015/2016 design)","description":"Die-cut sticker with the official 2015/2016 logo. By now this is a rare collectors item. <em>Out of stock!</em>","price":999.99,"image":"sticker.png","deletedDate":"2017-04-28"},{"name":"OWASP Juice Shop Iron-Ons (16pcs)","description":"Upgrade your clothes with washer safe <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">iron-ons</a> of the OWASP Juice Shop or CTF Extension logo!","price":14.99,"image":"iron-on.jpg"},{"name":"OWASP Juice Shop Magnets (16pcs)","description":"Your fridge will be even cooler with these OWASP Juice Shop or CTF Extension logo <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">magnets</a>!","price":15.99,"image":"magnets.jpg"},{"name":"OWASP Juice Shop Sticker Page","description":"Massive decoration opportunities with these OWASP Juice Shop or CTF Extension <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">sticker pages</a>! Each page has 16 stickers on it.","price":9.99,"image":"sticker_page.jpg"},{"name":"OWASP Juice Shop Sticker Single","description":"Super high-quality vinyl <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">sticker single</a> with the OWASP Juice Shop or CTF Extension logo! The ultimate laptop decal!","price":4.99,"image":"sticker_single.jpg"},{"name":"OWASP Juice Shop Temporary Tattoos (16pcs)","description":"Get one of these <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">temporary tattoos</a> to proudly wear the OWASP Juice Shop or CTF Extension logo on your skin! If you tweet a photo of yourself with the tattoo, you get a couple of our stickers for free! Please mention <a href=\"https://twitter.com/owasp_juiceshop\" target=\"_blank\"><code>@owasp_juiceshop</code></a> in your tweet!","price":14.99,"image":"tattoo.jpg","reviews":[{"text":"I straight-up gots nuff props fo'these tattoos!","author":"rapper"}]},{"name":"OWASP Juice Shop Mug","description":"Black mug with regular logo on one side and CTF logo on the other! Your colleagues will envy you!","price":21.99,"image":"fan_mug.jpg"},{"name":"OWASP Juice Shop Hoodie","description":"Mr. Robot-style apparel. But in black. And with logo.","price":49.99,"image":"fan_hoodie.jpg"},{"name":"OWASP Juice Shop-CTF Velcro Patch","description":"4x3.5\" embroidered patch with velcro backside. The ultimate decal for every tactical bag or backpack!","price":2.92,"quantity":5,"limitPerUser":5,"image":"velcro-patch.jpg","reviews":[{"text":"This thang would look phat on Bobby's jacked fur coat!","author":"rapper"},{"text":"Looks so much better on my uniform than the boring Starfleet symbol.","author":"jim"}]},{"name":"Woodruff Syrup \"Forest Master X-Treme\"","description":"Harvested and manufactured in the Black Forest, Germany. Can cause hyperactive behavior in children. Can cause permanent green tongue when consumed undiluted.","price":6.99,"image":"woodruff_syrup.jpg"},{"name":"Green Smoothie","description":"Looks poisonous but is actually very good for your health! Made from green cabbage, spinach, kiwi and grass.","price":1.99,"image":"green_smoothie.jpg","reviews":[{"text":"Fresh out of a replicator.","author":"jim"}]},{"name":"Quince Juice (1000ml)","description":"Juice of the <em>Cydonia oblonga</em> fruit. Not exactly sweet but rich in Vitamin C.","price":4.99,"image":"quince.jpg"},{"name":"Apple Pomace","description":"Finest pressings of apples. Allergy disclaimer: Might contain traces of worms. Can be <a href=\"/#recycle\">sent back to us</a> for recycling.","price":0.89,"limitPerUser":5,"image":"apple_pressings.jpg"},{"name":"Fruit Press","description":"Fruits go in. Juice comes out. Pomace you can send back to us for recycling purposes.","price":89.99,"image":"fruit_press.jpg"},{"name":"OWASP Juice Shop Logo (3D-printed)","description":"This rare item was designed and handcrafted in Sweden. This is why it is so incredibly expensive despite its complete lack of purpose.","price":99.99,"image":"3d_keychain.jpg","fileForRetrieveBlueprintChallenge":"JuiceShop.stl","exifForBlueprintChallenge":["OpenSCAD"]},{"name":"Juice Shop Artwork","description":"Unique masterpiece painted with different kinds of juice on 90g/m² lined paper.","price":278.74,"quantity":0,"image":"artwork.jpg","deletedDate":"2020-12-24"},{"name":"Global OWASP WASPY Award 2017 Nomination","description":"Your chance to nominate up to three quiet pillars of the OWASP community ends 2017-06-30! <a href=\"https://www.owasp.org/index.php/WASPY_Awards_2017\">Nominate now!</a>","price":0.03,"image":"waspy.png","deletedDate":"2017-07-01"},{"name":"Strawberry Juice (500ml)","description":"Sweet & tasty!","price":3.99,"image":"strawberry_juice.jpeg"},{"name":"Carrot Juice (1000ml)","description":"As the old German saying goes: \"Carrots are good for the eyes. Or has anyone ever seen a rabbit with glasses?\"","price":2.99,"image":"carrot_juice.jpeg","reviews":[{"text":"0 st4rs f0r 7h3 h0rr1bl3 s3cur17y","author":"uvogin"}]},{"name":"OWASP Juice Shop Sweden Tour 2017 Sticker Sheet (Special Edition)","description":"10 sheets of Sweden-themed stickers with 15 stickers on each.","price":19.1,"image":"stickersheet_se.png","deletedDate":"2017-09-20"},{"name":"Pwning OWASP Juice Shop","description":"<em>The official Companion Guide</em> by Björn Kimminich available <a href=\"https://leanpub.com/juice-shop\">for free on LeanPub</a> and also <a href=\"https://pwning.owasp-juice.shop\">readable online</a>!","price":5.99,"image":"cover_small.jpg","reviews":[{"text":"Even more interesting than watching Interdimensional Cable!","author":"morty"}]},{"name":"Melon Bike (Comeback-Product 2018 Edition)","description":"The wheels of this bicycle are made from real water melons. You might not want to ride it up/down the curb too hard.","price":2999,"quantity":3,"limitPerUser":1,"image":"melon_bike.jpeg"},{"name":"OWASP Juice Shop Coaster (10pcs)","description":"Our 95mm circle coasters are printed in full color and made from thick, premium coaster board.","price":19.99,"quantity":0,"image":"coaster.jpg"},{"name":"OWASP Snakes and Ladders - Web Applications","description":"This amazing web application security awareness board game is <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1969196030\">available for Tabletop Simulator on Steam Workshop</a> now!","price":0.01,"quantity":8,"image":"snakes_ladders.jpg","reviews":[{"text":"Wait for a 10$ Steam sale of Tabletop Simulator!","author":"bjoernOwasp"}]},{"name":"OWASP Snakes and Ladders - Mobile Apps","description":"This amazing mobile app security awareness board game is <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1970691216\">available for Tabletop Simulator on Steam Workshop</a> now!","price":0.01,"quantity":0,"image":"snakes_ladders_m.jpg","reviews":[{"text":"Here yo' learn how tha fuck ta not show yo' goddamn phone on camera!","author":"rapper"}]},{"name":"OWASP Juice Shop Holographic Sticker","description":"Die-cut holographic sticker. Stand out from those 08/15-sticker-covered laptops with this shiny beacon of 80's coolness!","price":2,"quantity":0,"image":"holo_sticker.png","reviews":[{"text":"Rad, dude!","author":"rapper"},{"text":"Looks spacy on Bones' new tricorder!","author":"jim"},{"text":"Will put one on the Planet Express ship's bumper!","author":"bender"}]},{"name":"OWASP Juice Shop \"King of the Hill\" Facemask","description":"Facemask with compartment for filter from 50% cotton and 50% polyester.","price":13.49,"quantity":0,"limitPerUser":1,"image":"fan_facemask.jpg","reviews":[{"text":"K33p5 y0ur ju1cy 5plu773r 70 y0ur53lf!","author":"uvogin"},{"text":"Puny mask for puny human weaklings!","author":"bender"}]},{"name":"Juice Shop Adversary Trading Card (Common)","description":"Common rarity \"Juice Shop\" card for the <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSecLEakawSQ56lBe2JOSbFwFYrKDCIN7Yd3iHFdQc5z8ApwdQ/viewform\">Adversary Trading Cards</a> CCG.","price":2.99,"deluxePrice":0.99,"deletedDate":"2020-11-30","limitPerUser":5,"image":"ccg_common.png","reviews":[{"text":"Ooooh, puny human playing Mau Mau, now?","author":"bender"}]},{"name":"Juice Shop Adversary Trading Card (Super Rare)","description":"Super rare \"Juice Shop\" card with holographic foil-coating for the <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSecLEakawSQ56lBe2JOSbFwFYrKDCIN7Yd3iHFdQc5z8ApwdQ/viewform\">Adversary Trading Cards</a> CCG.","price":99.99,"deluxePrice":69.99,"deletedDate":"2020-11-30","quantity":2,"limitPerUser":1,"image":"ccg_foil.png","reviews":[{"text":"Mau Mau with bling-bling? Humans are so pathetic!","author":"bender"}]},{"name":"Juice Shop \"Permafrost\" 2020 Edition","description":"Exact version of <a href=\"https://github.com/juice-shop/juice-shop/releases/tag/v9.3.1-PERMAFROST\">OWASP Juice Shop that was archived on 02/02/2020</a> by the GitHub Archive Program and ultimately went into the <a href=\"https://github.blog/2020-07-16-github-archive-program-the-journey-of-the-worlds-open-source-code-to-the-arctic\">Arctic Code Vault</a> on July 8. 2020 where it will be safely stored for at least 1000 years.","price":9999.99,"quantity":1,"limitPerUser":1,"image":"permafrost.jpg","reviews":[{"text":"🧊 Let it go, let it go 🎶 Can't hold it back anymore 🎶 Let it go, let it go 🎶 Turn away and slam the door ❄️","author":"rapper"}]},{"name":"Best Juice Shop Salesman Artwork","description":"Unique digital painting depicting Stan, our most qualified and almost profitable salesman. He made a succesful carreer in selling used ships, coffins, krypts, crosses, real estate, life insurance, restaurant supplies, voodoo enhanced asbestos and courtroom souvenirs before <em>finally</em> adding his expertise to the Juice Shop marketing team.","price":5000,"quantity":1,"image":"artwork2.jpg","reviews":[{"text":"I'd stand on my head to make you a deal for this piece of art.","author":"stan"},{"text":"Just when my opinion of humans couldn't get any lower, along comes Stan...","author":"bender"}]},{"name":"OWASP Juice Shop Card (non-foil)","description":"Mythic rare <small><em>(obviously...)</em></small> card \"OWASP Juice Shop\" with three distinctly useful abilities. Alpha printing, mint condition. A true collectors piece to own!","price":1000,"quantity":3,"limitPerUser":1,"image":"card_alpha.jpg","reviews":[{"text":"DO NOT PLAY WITH THIS! Double-sleeve, then put it in the GitHub Arctic Vault for perfect preservation and boost of secondary market value!","author":"accountant"}]},{"name":"20th Anniversary Celebration Ticket","description":"Get your <a href=\"https://20thanniversary.owasp.org/\" target=\"_blank\">free 🎫 for OWASP 20th Anniversary Celebration</a> online conference! Hear from world renowned keynotes and special speakers, network with your peers and interact with our event sponsors. With an anticipated 10k+ attendees from around the world, you will not want to miss this live on-line event!","price":1e-20,"deletedDate":"2021-09-25","limitPerUser":1,"image":"20th.jpeg","reviews":[{"text":"I'll be there! Will you, too?","author":"bjoernOwasp"}]},{"name":"OWASP Juice Shop LEGO™ Tower","description":"Want to host a Juice Shop CTF in style? Build <a href=\"https://github.com/OWASP/owasp-swag/blob/master/projects/juice-shop/lego/OWASP%20JuiceShop%20Pi-server%201.2.pdf\" target=\"_blank\">your own LEGO™ tower</a> which holds four Raspberry Pi 4 models with PoE HAT modules <a href=\"https://github.com/juice-shop/multi-juicer/blob/main/guides/raspberry-pi/raspberry-pi.md\" target=\"_blank\">running a MultiJuicer Kubernetes cluster</a>! Wire to a switch and connect to your network to have an out-of-the-box ready CTF up in no time!","price":799,"quantity":3,"limitPerUser":1,"image":"lego_case.jpg","reviews":[{"text":"Check out the /#/photo-wall for some impressions of the assembly process!","author":"bjoernOwasp"}]},{"name":"DSOMM & Juice Shop User Day Ticket","description":"You are going to the OWASP Global AppSec San Francisco 2024? <a href=\"https://www.eventbrite.com/e/owasp-global-appsec-san-francisco-2024-tickets-723699172707\" target=\"_blank\">Get a ticket<sup>*</sup></a> for this amazing side event as well! Check the juice-packed agenda <a href=\"https://owasp.org/www-project-juice-shop/#div-userday2024\" target=\"_blank\">here</a> for all the details!<br><br><small><small><sup>*</sup>=scroll down to <strong>Elevate: DSOMM and Juice Shop User Day (Sept. 25)</strong> after clicking <em>Get Tickets</em> on Eventbrite. Ticket price set to only covers fees for room, AV, and catering throughout the day.</small></small>","price":55.2,"deletedDate":"2024-09-26","limitPerUser":1,"image":"user_day_ticket.png","reviews":[{"text":"The DSOMM Live Assessment session will even use Juice Shop as its \"real-world\" example!","author":"timo"},{"text":"We will showcase the amazing MultiJuicer Lego Tower at this event!","author":"jannik"}]},{"name":"Pineapple Juice (1000ml)","description":"Tropical refreshment from the finest sun-ripened pineapples.","price":2.99,"image":"pineapple_juice.png"},{"name":"Melon Juice (1000ml)","description":"Refreshing and sweet juice made from ripe melons.","price":2.49,"image":"melon_juice.png"},{"name":"Grape Juice (1000ml)","description":"Deep purple and full of antioxidants from selected grapes.","price":2.99,"image":"grape_juice.png"},{"name":"Dragonfruit Juice (500ml)","description":"Exotic and vibrant juice made from dragonfruit.","price":3.99,"image":"dragonfruit_juice.png"},{"name":"Berry Juice (1000ml)","description":"A delicious blend of fresh forest berries.","price":3.49,"image":"berry_juice.png"},{"name":"Basil Smoothie","description":"A unique blend of fresh basil and ginger for a healthy kick.","price":2.99,"image":"basil_smoothie.png","reviews":[{"text":"(ง'̀-'́)ง","author":"basil"}]},{"name":"Bragă (500ml)","description":"Traditional Balkan drink made from fermented millet. Lightly sweet-sour, refreshing, and naturally energizing.","price":2.49,"image":"braga.jpg"},{"name":"Elderflower Cordial (500ml)","description":"Floral and fragrant soft drink made from elderflowers. Traditionally enjoyed chilled.","price":3.29,"image":"elderflower_cordial.jpg"},{"name":"Sea Buckthorn Juice (500ml)","description":"Tangy and slightly sour juice, extremely rich in Vitamin C and antioxidants.","price":3.99,"image":"sea_buckthorn_juice.jpg"},{"name":"Pomegranate Drink (500ml)","description":"A sweet and tart refreshment inspired by classic grenadine flavors.","price":4.49,"image":"pomegranate_drink.jpg"}],"memories":[{"image":"magn(et)ificent!-1571814229653.jpg","caption":"Magn(et)ificent!","user":"bjoernGoogle"},{"image":"my-rare-collectors-item!-[̲̅$̲̅(̲̅-͡°-͜ʖ-͡°̲̅)̲̅$̲̅]-1572603645543.jpg","caption":"My rare collectors item! [̲̅$̲̅(̲̅ ͡° ͜ʖ ͡°̲̅)̲̅$̲̅]","user":"bjoernGoogle"},{"image":"favorite-hiking-place.png","caption":"I love going hiking here...","geoStalkingMetaSecurityQuestion":14,"geoStalkingMetaSecurityAnswer":"Daniel Boone National Forest"},{"image":"IMG_4253.jpg","caption":"My old workplace...","geoStalkingVisualSecurityQuestion":10,"geoStalkingVisualSecurityAnswer":"ITsec"},{"image":"BeeHaven.png","caption":"Welcome to the Bee Haven (/#/bee-haven)🐝","user":"evm"},{"image":"sorted-the-pieces,-starting-assembly-process-1721152307290.jpg","caption":"Sorted the pieces, starting assembly process...","user":"bjoernOwasp"},{"image":"building-something-literally-bottom-up-1721152342603.jpg","caption":"Building something literally bottom up...","user":"bjoernOwasp"},{"image":"putting-in-the-hardware-1721152366854.jpg","caption":"Putting in the hardware...","user":"bjoernOwasp"},{"image":"everything-up-and-running!-1721152385146.jpg","caption":"Everything up and running!","user":"bjoernOwasp"}],"ctf":{"showFlagsInNotifications":false,"showCountryDetailsInNotifications":"none","countryMapping":null,"systemWideNotifications":{"url":null,"pollFrequencySeconds":null}}}}
          - - -
          Evidence
          192.168.99.100:3000
          Solution -

          Remove the private IP address from the HTTP response body. For comments, use JSP/ASP/PHP comment instead of HTML/JavaScript comment which can be seen by client browsers.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - X-Content-Type-Options Header Missing (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvk6yOd - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

          -
          Other info -

          This issue still applies to error type pages (401, 403, 500, etc.) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

          - -

          At "High" threshold this scan rule will not alert on client or server error responses.

          -
          Request
          - Request line and header section (292 bytes) - -
          GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvk6yOd HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (230 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/plain; charset=UTF-8
          -Content-Length: 96
          -Date: Thu, 28 May 2026 10:22:58 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (96 bytes) - -
          0{"sid":"pd0V5LZ93y-FQn8oAAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
          - - -
          Parameter
          x-content-type-options
          Solution -

          Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

          - -

          If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  8. - -
  9. -

    - Risk=Low, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Timestamp Disclosure - Unix (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A timestamp was disclosed by the application/web server. - Unix

          -
          Other info -

          1666666667, which evaluates to: 2022-10-24 22:57:47.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 10:18:52 GMT
          -ETag: W/"26af-19e6e1813ac"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 10:21:09 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          1666666667
          Solution -

          Manually confirm that the timestamp data is not sensitive, and that the data cannot be aggregated to disclose exploitable patterns.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  10. - - - - -
  11. -

    - Risk=Informational, Confidence=High (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Session Management Response Identified (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/continue-code/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags -
            - -
          -
          Alert 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.

          -
          Other info -

          json:continueCode

          -
          Request
          - Request line and header section (297 bytes) - -
          GET http://20.60.0.1:3000/rest/continue-code/ HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (384 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Content-Length: 79
          -ETag: W/"4f-uLu5Lde8X4OncOnJeidFijss6vg"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 10:45:25 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (79 bytes) - -
          {"continueCode":"y1OzBZxNpnLrM5WmgEKv8XakQ7DA6LcQGJ6yOlV9Pow1jYqbz2eRB34oE5mM"}
          - - -
          Parameter
          continueCode
          Evidence
          continueCode
          Solution -

          This is an informational alert rather than a vulnerability and so there is nothing to fix.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  12. - -
  13. -

    - Risk=Informational, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Modern Web Application (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The application appears to be a modern web application. If you need to explore it automatically then the Ajax Spider may well be more effective than the standard one.

          -
          Other info -

          No links have been found while there are scripts, which is an indication that this is a modern web application.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 10:18:52 GMT
          -ETag: W/"26af-19e6e1813ac"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 10:21:09 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          Solution -

          This is an informational alert and so no changes are required.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - User Agent Fuzzer (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvk7mTy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags -
            -
          • - CUSTOM_PAYLOADS = -
          • -
          • - POLICY_PENTEST = -
          • -
          • - SYSTEMIC -
          • -
          -
          Alert description -

          Check for differences in response based on fuzzed User Agent (eg. mobile sites, access as a Search Engine Crawler). Compares the response statuscode and the hashcode of the response body with the original response.

          -
          Request
          - Request line and header section (398 bytes) - -
          GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvk7mTy HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -Cookie: language=en; continueCode=y1OzBZxNpnLrM5WmgEKv8XakQ7DA6LcQGJ6yOlV9Pow1jYqbz2eRB34oE5mM; welcomebanner_status=dismiss
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (230 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/plain; charset=UTF-8
          -Content-Length: 96
          -Date: Thu, 28 May 2026 10:47:48 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (96 bytes) - -
          0{"sid":"Xorp3Pbs1alpY9B3AAGq","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
          - - -
          Parameter
          Header User-Agent
          Attack
          Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  14. - - - -
-
- -
-

Appendix

- -
-

Alert Types

-

This section contains additional information on the types of alerts in the report.

-
    -
  1. -

    SQL Injection

    - - - - - - - - - - - - - - - - - -
    Source - - raised by an active scanner (SQL Injection) - -
    CWE ID89
    WASC ID19
    Reference -
      -
    1. https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
    2. -
    -
    -
  2. -
  3. -

    Content Security Policy (CSP) Header Not Set

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Content Security Policy (CSP) Header Not Set) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP
    2. -
    3. https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html
    4. -
    5. https://www.w3.org/TR/CSP/
    6. -
    7. https://w3c.github.io/webappsec-csp/
    8. -
    9. https://web.dev/articles/csp
    10. -
    11. https://caniuse.com/#feat=contentsecuritypolicy
    12. -
    13. https://content-security-policy.com/
    14. -
    -
    -
  4. -
  5. -

    Cross-Domain Misconfiguration

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Cross-Domain Misconfiguration) - -
    CWE ID264
    WASC ID14
    Reference -
      -
    1. https://vulncat.fortify.com/en/detail?category=HTML5&subcategory=Overly%20Permissive%20CORS%20Policy
    2. -
    -
    -
  6. -
  7. -

    Missing Anti-clickjacking Header

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Anti-clickjacking Header) - -
    CWE ID1021
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options
    2. -
    -
    -
  8. -
  9. -

    Session ID in URL Rewrite

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Session ID in URL Rewrite) - -
    CWE ID598
    WASC ID13
    Reference -
      -
    1. https://seclists.org/webappsec/2002/q4/111
    2. -
    -
    -
  10. -
  11. -

    Private IP Disclosure

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Private IP Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://datatracker.ietf.org/doc/html/rfc1918
    2. -
    -
    -
  12. -
  13. -

    Timestamp Disclosure - Unix

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Timestamp Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://cwe.mitre.org/data/definitions/200.html
    2. -
    -
    -
  14. -
  15. -

    X-Content-Type-Options Header Missing

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (X-Content-Type-Options Header Missing) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/compatibility/gg622941(v=vs.85)
    2. -
    3. https://owasp.org/www-community/Security_Headers
    4. -
    -
    -
  16. -
  17. -

    Modern Web Application

    - - - - - - - - -
    Source - - raised by a passive scanner (Modern Web Application) - -
    -
  18. -
  19. -

    Session Management Response Identified

    - - - - - - - - - - - -
    Source - - raised by a passive scanner (Session Management Response Identified) - -
    Reference -
      -
    1. https://www.zaproxy.org/docs/desktop/addons/authentication-helper/session-mgmt-id/
    2. -
    -
    -
  20. -
  21. -

    User Agent Fuzzer

    - - - - - - - - - - - -
    Source - - raised by an active scanner (User Agent Fuzzer) - -
    Reference -
      -
    1. https://owasp.org/wstg
    2. -
    -
    -
  22. -
-
-
- -
- - - - - diff --git a/TestesRealizados1/Default^Policy/normalize/LICENSE.md b/TestesRealizados1/Default^Policy/normalize/LICENSE.md deleted file mode 100644 index 43b5ddc..0000000 --- a/TestesRealizados1/Default^Policy/normalize/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# The MIT License (MIT) - -Copyright © Nicolas Gallagher and Jonathan Neal - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/TestesRealizados1/Default^Policy/normalize/normalize.css b/TestesRealizados1/Default^Policy/normalize/normalize.css deleted file mode 100644 index 192eb9c..0000000 --- a/TestesRealizados1/Default^Policy/normalize/normalize.css +++ /dev/null @@ -1,349 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} diff --git a/TestesRealizados1/Default^Policy/themes/original/colors.css b/TestesRealizados1/Default^Policy/themes/original/colors.css deleted file mode 100644 index fd3b963..0000000 --- a/TestesRealizados1/Default^Policy/themes/original/colors.css +++ /dev/null @@ -1,139 +0,0 @@ -body { - background-color: #306aa0; - background-image: radial-gradient(circle at top left, #fff 0%, #8ce1d6 15em, #306aa0 100em, #386095 100%); -} - -main, footer { - background-color: #fff; -} - -header { - background-color: #00549e; - color: #fff; -} - -a:link { - color: #004380; -} - -a:visited { - color: #770d67; -} - -a:focus { - background-color: #ffd54d; -} - -a:hover { - background-color: #ffd54d; -} - -a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -header a:link { - color: #f2f7fd; -} - -header a:visited { - color: #f2b5e9; -} - -header a:focus { - background-color: #ffd54d; - color: #004380; -} - -header a:hover { - background-color: #ffd54d; - color: #004380; -} - -header a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #fff6db; -} - -summary:focus { - background-color: #ffd54d; -} - -summary:hover { - background-color: #ffd54d; -} - -summary:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -h2, h3, h4, h5, h6 { - color: #00549e; -} - -.risk-level, .confidence-level { - color: #00549e; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - color: #00549e; -} - -.risk-confidence-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - color: #00549e; -} - -.site-risk-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.alert-type-counts-table > tbody > tr { - border-bottom-color: #00549e; -} - -.alert-type-counts-table th[scope="col"] { - background-color: #00549e; - color: #fff; -} - -.alert-type-counts-table th[scope="col"] { - border-left-color: #fff; -} - -.alerts-table th, .alert-types-table th { - background-color: #306aa0; - color: #fff; -} - -.additional-info-percentages { - color: #00549e; -} - -.insights-table > tbody > tr { - border-bottom-color: #00549e; -} - -.insights-table th[scope="col"] { - background-color: #00549e; - border-left-color: #fff; - color: #fff; -} diff --git a/TestesRealizados1/Default^Policy/themes/original/main.css b/TestesRealizados1/Default^Policy/themes/original/main.css deleted file mode 100644 index 050bd3f..0000000 --- a/TestesRealizados1/Default^Policy/themes/original/main.css +++ /dev/null @@ -1,417 +0,0 @@ -*, *::after, *::before { - box-sizing: border-box; -} - -h1, h2, h3, h4, h5, h6 { - margin: 0; - padding: 0; -} - -pre, ul { - margin: 0; -} - -ol { - list-style-type: none; -} - -h1 { - font-size: 3em; -} - -h2 { - font-size: 2em; -} - -h3, h4, h5, h6 { - font-size: 1em; -} - -html { - box-sizing: border-box; - font-family: Verdana, sans-serif; - line-height: 1.5; -} - -body { - margin: 1.5em 0; -} - -@media screen and (min-width: 50em) { - body { - margin: 1.5em 2ch; - padding: 1.5em 2ch; - } -} - -a:active, header a:active { - outline-style: solid; -} - -header, main { - margin: 0 auto; - max-width: 90ch; - padding: 1.5em 4ch; -} - -header { - border-radius: .25em .25em 0 0; -} - -main { - border-radius: 0 0 .25em .25em; -} - -summary { - cursor: pointer; -} - -.contents { - margin-top: 1.5em; -} - -main > section { - margin-bottom: 4.5em; -} - -.about-this-report > section { - margin-bottom: 3em; -} - -.summaries section { - margin-bottom: 3em; -} - -h2 { - margin-bottom: .75em; -} - -h3 { - margin-bottom: 1.5em; -} - -h4 { - margin-bottom: 1.5em; -} - -.report-parameters--container h4 { - margin-top: 1.5em; -} - -p { - margin: 1.5em 0; -} - -p:first-of-type { - margin-top: 0; -} - -p:last-of-type { - margin-bottom: 0; -} - -.contents li, .alerts li, .alert-types > ol > li { - margin-top: 1.5em; -} - -.alert-types h4 { - margin-bottom: 0; -} - -a { - border-radius: .125em; -} - -caption { - margin-bottom: 1.5em; - text-align: left; -} - -code, .request-method-n-url { - overflow-wrap: anywhere; - white-space: break-spaces; -} - -table { - border-collapse: collapse; -} - -.report-description--container, .report-parameters--container { - margin-left: 2ch; - padding: 0 2ch; -} - -.about-this-report h3, .summaries h3, .appendix h3 { - border-bottom: .05em solid; -} - -.alerts h4 { - text-align: center; -} - -.alerts ol { - padding-left: 0; -} - -.alerts--site-li { - border: .05em solid; - border-radius: .25em; - margin-left: 2ch; - padding: 1.5em 3ch; -} - -.contents ol { - list-style-position: inside; - list-style-type: square; - padding-left: 4ch; -} - -.contexts-list, .sites-list { - list-style-type: square; -} - -.risk-confidence-counts-table { - width: 100%; -} - -.risk-confidence-counts-table tr { - height: 4.5em; -} - -.risk-confidence-counts-table thead > tr { - height: 3em; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table th[scope="rowgroup"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.risk-confidence-counts-table th[scope="row"] { - padding-right: 5%; -} - -@media screen and (max-width: 50em) { - .risk-confidence-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.risk-confidence-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.risk-confidence-counts-table > tbody > tr { - border-top: .05em solid; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table td { - vertical-align: top; -} - -.risk-confidence-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.risk-confidence-counts-table td, .risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - text-align: right; -} - -.site-risk-counts-table { - width: 100%; -} - -.site-risk-counts-table tr { - height: 4.5em; -} - -.site-risk-counts-table thead > tr:first-of-type { - height: 3em; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table th[scope="col"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.site-risk-counts-table th[scope="row"] { - padding-right: 1%; -} - -@media screen and (max-width: 50em) { - .site-risk-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.site-risk-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.site-risk-counts-table > tbody > tr { - border-top: .05em solid; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table td { - vertical-align: top; -} - -.site-risk-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.site-risk-counts-table td, .site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - text-align: right; -} - -.alert-type-counts-table { - width: 100%; -} - -.alert-type-counts-table th, .alert-type-counts-table td { - padding: 0 1rem; - text-align: left; - vertical-align: top; -} - -.alert-type-counts-table td:nth-last-of-type(2) { - padding-left: 1.5rem; -} - -.alert-type-counts-table > tbody > tr { - border-bottom: 0.05em dotted; -} - -.alert-type-counts-table th[scope="col"] { - border-left: 1rem solid; -} - -.alert-type-counts-table th[scope="col"]:first-of-type { - border-left: 0; -} - -.alert-type-counts-table th[scope="col"]:last-of-type, .alert-type-counts-table td:last-of-type { - text-align: right; -} - -.alert-type-counts-table th[scope="col"], .alert-type-counts-table th[scope="row"] { - font-weight: normal; -} - -.alert-type-counts-table th[scope="row"], .alert-type-counts-table td { - padding-bottom: 1.5em; -} - -.alert-type-counts-table thead > th:first-of-type { - width: 45%; -} - -.alerts-table, .alert-types-table, .insights-table { - border-collapse: separate; - border-spacing: 2ch 1.5em; - width: 100%; -} - -.alerts-table th, .alerts-table td, .alert-types-table th, .alert-types-table td, .insights-table td, .insights-table th { - vertical-align: top; -} - -.alerts-table td, .alert-types-table td, .insights-table td { - overflow-wrap: anywhere; -} - -.alerts-table th, .alert-types-table th, .insights-table th { - padding: 0 1ch; -} - -.alerts-table td, .alert-types-table td { - padding: 0 2ch; -} - -.insights-table td { - padding: 0 1ch; -} - -.alerts-table summary { - margin-bottom: 1.5em; -} - -.alert-tags-list { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-tags-list > li { - margin-top: 0; -} - -.request-body, .response-body { - margin-top: 1.5em; -} - -.request-method-n-url { - margin-bottom: 0; -} - -.alert-types-table { - padding-top: 0; -} - -.alert-types-table th { - width: 20%; -} - -.alert-types-table ol { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-types-table li:not(:first-of-type) { - margin-top: 1.5em; -} - -p.alert-types-intro { - margin-bottom: 3em; -} - -.zap-logo { - height: 1em; - margin-right: .25ch; - width: 1em; -} - -h1, h2 { - font-family: Georgia, serif; -} - -.risk-level, .confidence-level, .included-risk-codes, .included-confidence-codes, .additional-info-percentages { - font-family: monospace, monospace; -} - -.context, .site, .request-method-n-url { - font-family: monospace, monospace; -} diff --git a/TestesRealizados1/Default^Policy/zap32x32.png b/TestesRealizados1/Default^Policy/zap32x32.png deleted file mode 100644 index 9c1019ffb2ad500434d78f20f5a624bd660e6735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1933 zcmV;82Xgp{P)LZ&X_*%IgUcU=kqE(b z4NRzXHHacGqA;V7EOd-rLRUsK6M0)>lNA+QA(1s>0WooNopVsi`f~3%&(A;3?F-PB zvOj!oo}80&pL3q?@9q2jJ@8;-E^rih7x)VQ$FTzF0Ce^0)w*%xMg@9CT^);$`@`-S z|D^%X0-G{2GScem>Zq-)#c><}&YnG+{?@;fz2@5u5&VQI{0HC&b5Eb8v=CMzq8Xh{uDUJ;6-8cvHPPw(V1AXlBMlio^B!;`1mR7lQz6stN1n` zVSRiJ3Jh}IHmwUh{p952jC=DbQ>IW{T+Bm{EyTg%86hH)s*G@RBZ6ZD zR~$s-xgh|tIK<*bMohZnrPKSTebm&{(An8JZUCD%Zw|w-XamM3aZ{E@QkJ_Sh=4&b zVlZMR6MN-LA+KI)MxOZY4_$EN7gpcl|GBy+*}SFI&@zE+1c5&ojb?% zH-610omUXmkc0pc4MCuY3JRI#ep;zPz!%CkF{7fMRjXD}R#rwLkr?x}`Sa(qYu7G1 z4zIhf6b}b*b0|Z?2bxNbAlb*&-!+hzmq$fKMaqhiM-T+Gw6t*h_U({ddb?6-2&w|A zpn{45bPqNps$5aDKvhCrw+1VURUz5a1;EaoJE^Lw8q=z_wl+#jOPTPwnarrD$C>b1 zeBZ~~fqr423P90ogC0=PH?8Vm*#v}(0|k?r!xzizShj2#GiT1Ey}f-@07XSb?AWn` zo)51w@$*j*Sf2pBs|*LhoR?u5{SD7JEun@R9Ak(IM2sO~gs2fb$L0Oj{d{ntiOR}K z4jw#6R#w)CK$a|7Ld#z-Gd=bqy@><~t0b(&SH%x3{Wghj{ro$E>8w7|8!?eI&lp@s zaK#WcLS%r`jo>*Bw)ZCgII)AS>wjbG)~z%&G>ix$H+M2U56vZe;WP9n69iWA)shSX z`fak)9$cP#M-^Drp9UIWRk0R)RT8QshN)UI2q2optfzJ|r}}xe?|y;IjENjOcI+Mi z7cX9-`|VS7cbpDGkWxfn15~wP#HQ4&KGGL8Zqzd_CM6=?Fb}vQxI!o{fa9gn`BpRU zy|It{{Ct|4nwT|f*5LO}o;*oeSs7W&e}iV^hCM-${BO{>Jm(%YOnIR)X)V55tW|8v z^2ET^D*YDvtkSPaPoj^^$IF?s{&lVgQFL zf4TNCRPNcLzb)TB`ne$0!%HlF+%?X3TygP?!H8f?C?W&GVvG#277}_4P&Z27wKi^_ z`UMY9O6QgM5f&|4M0R!--M6}buJEI=4km*jh{gB1;;i$G!4U@|f*8RtASQ%eXNt)N z2*#qQRjl#oYmeiff0@FG0rvrUs1Grl_V)4yJq|S&*HyA`hPcY4iwPqM T`!Z{P00000NkvXXu0mjf{kVU6 diff --git a/TestesRealizados1/Dev&Full/Dev&Full.html b/TestesRealizados1/Dev&Full/Dev&Full.html deleted file mode 100644 index 5344918..0000000 --- a/TestesRealizados1/Dev&Full/Dev&Full.html +++ /dev/null @@ -1,1896 +0,0 @@ - - - - - -ZAP by Checkmarx Scanning Report - - - - - -
-

ZAP by Checkmarx Scanning Report

-

- Generated with ZAP - on Thu 28 May 2026, at 08:01:20 -

-

ZAP Version: 2.17.0

-

- ZAP by Checkmarx -

-
- -
- -
-

Contents

- -
- -
-

About This Report

- - - -
-

Report Parameters

-
-

Contexts

- - -

No contexts were selected, so all contexts were included by default.

- - -

Sites

- -

The following sites were included:

-
    -
  • http://20.60.0.1:3000
  • -
- -

(If no sites were selected, all sites were included by default.)

-

An included site must also be within one of the included contexts for its data to be included in the report.

- -

Risk levels

-

- Included: - - High, Medium, Low, Informational -

-

- Excluded: - None - -

- -

Confidence levels

-

- Included: - - - User Confirmed, High, Medium, Low -

-

- Excluded: - - - User Confirmed, High, Medium, Low, False Positive -

-
-
-
- - -
- -
- -
-

Summaries

- -
-

Alert Counts by Risk and Confidence

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts for each level of risk and confidence included in the report.

-

(The percentages in brackets represent the count as a percentage of the total number of alerts included in the report, rounded to one decimal place.)

-
Confidence
User ConfirmedHighMediumLowTotal
RiskHigh0
(0.0%)
0
(0.0%)
0
(0.0%)
1
(20.0%)
1
(20.0%)
Medium0
(0.0%)
1
(20.0%)
1
(20.0%)
0
(0.0%)
2
(40.0%)
Low0
(0.0%)
0
(0.0%)
0
(0.0%)
1
(20.0%)
1
(20.0%)
Informational0
(0.0%)
0
(0.0%)
1
(20.0%)
0
(0.0%)
1
(20.0%)
Total0
(0.0%)
1
(20.0%)
2
(40.0%)
2
(40.0%)
5
(100%)
-
- -
-

Alert Counts by Site and Risk

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows, for each site for which one or more alerts were raised, the number of alerts raised at each risk level.

-

Alerts with a confidence level of "False Positive" have been excluded from these counts.

-

(The numbers in brackets are the number of alerts raised for the site at or above that risk level.)

-
Risk
- High
(= High) -
- Medium
(>= Medium) -
- Low
(>= Low) -
- Informational
(>= Informational) -
Sitehttp://20.60.0.1:30001
(1)
2
(3)
1
(4)
1
(5)
-
- -
-

Alert Counts by Alert Type

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts of each alert type, together with the alert type's risk level.

-

(The percentages in brackets represent each count as a percentage, rounded to one decimal place, of the total number of alerts included in this report.)

-
Alert typeRiskCount
SQL InjectionHigh1
(20.0%)
Content Security Policy (CSP) Header Not SetMedium5
(100.0%)
Cross-Domain MisconfigurationMedium5
(100.0%)
Timestamp Disclosure - UnixLow5
(100.0%)
Modern Web ApplicationInformational5
(100.0%)
Total5
-
- -
-

Insights

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows information that is likely to be very relevant to you, but which is not related to vulnerabilities, or potentially even related to the application in question.

-
LevelReasonSiteDescriptionStatistic
-
Medium
-
-
Exceeded Low
-
-
-
-
Percentage of memory used
-
-
86
-
-
Low
-
-
Warning
-
-
-
-
ZAP errors logged - see the zap.log file for details
-
-
118
-
-
Low
-
-
Warning
-
-
-
-
ZAP warnings logged - see the zap.log file for details
-
-
83
-
-
Info
-
-
Informational
-
-
-
-
Percentage of network failures
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 2xx
-
-
96 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 4xx
-
-
4 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/javascript
-
-
9 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/json
-
-
4 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/octet-stream
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/jpeg
-
-
6 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/png
-
-
3 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/x-icon
-
-
4 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/css
-
-
4 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/html
-
-
66 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/markdown
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/plain
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method GET
-
-
98 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method POST
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Count of total endpoints
-
-
171
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of slow responses
-
-
28 %
-
-
-
- -
-

Alerts

-
    - - - - - - - - -
  1. -

    - Risk=High, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - SQL Injection (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/products/search?q=%27%28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          SQL injection may be possible.

          -
          Request
          - Request line and header section (307 bytes) - -
          GET http://20.60.0.1:3000/rest/products/search?q=%27%28 HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (362 bytes) - -
          HTTP/1.1 500 Internal Server Error
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 11:48:00 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -content-length: 309
          -
          -
          - - -
          - Response body (309 bytes) - -
          {
          -  "error": {
          -    "message": "SQLITE_ERROR: near \"(\": syntax error",
          -    "stack": "Error: SQLITE_ERROR: near \"(\": syntax error",
          -    "errno": 1,
          -    "code": "SQLITE_ERROR",
          -    "sql": "SELECT * FROM Products WHERE ((name LIKE '%'(%' OR description LIKE '%'(%') AND deletedAt IS NULL) ORDER BY name"
          -  }
          -}
          - - -
          Parameter
          q
          Attack
          '(
          Evidence
          HTTP/1.1 500 Internal Server Error
          Solution -

          Do not trust client side input, even if there is client side validation in place.

          - -

          In general, type check all data on the server side.

          - -

          If the application uses JDBC, use PreparedStatement or CallableStatement, with parameters passed by '?'

          - -

          If the application uses ASP, use ADO Command Objects with strong type checking and parameterized queries.

          - -

          If database Stored Procedures can be used, use them.

          - -

          Do *not* concatenate strings into queries in the stored procedure, or use 'exec', 'exec immediate', or equivalent functionality!

          - -

          Do not create dynamic SQL queries using simple string concatenation.

          - -

          Escape all data received from the client.

          - -

          Apply an 'allow list' of allowed characters, or a 'deny list' of disallowed characters in user input.

          - -

          Apply the principle of least privilege by using the least privileged database user possible.

          - -

          In particular, avoid using the 'sa' or 'db-owner' database users. This does not eliminate SQL injection, but minimizes its impact.

          - -

          Grant the minimum database access that is necessary for the application.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  2. - - - - -
  3. -

    - Risk=Medium, Confidence=High (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Content Security Policy (CSP) Header Not Set (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware. CSP provides a set of standard HTTP headers that allow website owners to declare approved sources of content that browsers should be allowed to load on that page — covered types are JavaScript, CSS, HTML frames, fonts, images and embeddable objects such as Java applets, ActiveX, audio and video files.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 11:32:54 GMT
          -ETag: W/"26af-19e6e5bdc4a"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 11:43:35 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Solution -

          Ensure that your web server, application server, load balancer, etc. is configured to set the Content-Security-Policy header.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  4. - -
  5. -

    - Risk=Medium, Confidence=Medium (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Cross-Domain Misconfiguration (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/robots.txt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Web browser data loading may be possible, due to a Cross Origin Resource Sharing (CORS) misconfiguration on the web server.

          -
          Other info -

          The CORS misconfiguration on the web server permits cross-domain read requests from arbitrary third party domains, using unauthenticated APIs on this domain. Web browser implementations do not permit arbitrary third parties to read the response from authenticated APIs, however. This reduces the risk somewhat. This misconfiguration could be used by an attacker to access data that is available in an unauthenticated manner, but which uses some other form of security, such as IP address white-listing.

          -
          Request
          - Request line and header section (239 bytes) - -
          GET http://20.60.0.1:3000/robots.txt HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (378 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: text/plain; charset=utf-8
          -Content-Length: 28
          -ETag: W/"1c-8HgF6mNyhsSFK0pascC9uB0wjX0"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 11:43:35 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (28 bytes) - -
          User-agent: *
          -Disallow: /ftp
          - - -
          Evidence
          Access-Control-Allow-Origin: *
          Solution -

          Ensure that sensitive data is not available in an unauthenticated manner (using IP address white-listing, for instance).

          - -

          Configure the "Access-Control-Allow-Origin" HTTP header to a more restrictive set of domains, or remove all CORS headers entirely, to allow the web browser to enforce the Same Origin Policy (SOP) in a more restrictive manner.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  6. - - - - - - - - - - -
  7. -

    - Risk=Low, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Timestamp Disclosure - Unix (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A timestamp was disclosed by the application/web server. - Unix

          -
          Other info -

          1666666667, which evaluates to: 2022-10-24 22:57:47.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 11:32:54 GMT
          -ETag: W/"26af-19e6e5bdc4a"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 11:43:35 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          1666666667
          Solution -

          Manually confirm that the timestamp data is not sensitive, and that the data cannot be aggregated to disclose exploitable patterns.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  8. - - - - - - -
  9. -

    - Risk=Informational, Confidence=Medium (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Modern Web Application (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The application appears to be a modern web application. If you need to explore it automatically then the Ajax Spider may well be more effective than the standard one.

          -
          Other info -

          No links have been found while there are scripts, which is an indication that this is a modern web application.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 11:32:54 GMT
          -ETag: W/"26af-19e6e5bdc4a"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 11:43:35 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          Solution -

          This is an informational alert and so no changes are required.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  10. - - - -
-
- -
-

Appendix

- -
-

Alert Types

-

This section contains additional information on the types of alerts in the report.

-
    -
  1. -

    SQL Injection

    - - - - - - - - - - - - - - - - - -
    Source - - raised by an active scanner (SQL Injection) - -
    CWE ID89
    WASC ID19
    Reference -
      -
    1. https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
    2. -
    -
    -
  2. -
  3. -

    Content Security Policy (CSP) Header Not Set

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Content Security Policy (CSP) Header Not Set) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP
    2. -
    3. https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html
    4. -
    5. https://www.w3.org/TR/CSP/
    6. -
    7. https://w3c.github.io/webappsec-csp/
    8. -
    9. https://web.dev/articles/csp
    10. -
    11. https://caniuse.com/#feat=contentsecuritypolicy
    12. -
    13. https://content-security-policy.com/
    14. -
    -
    -
  4. -
  5. -

    Cross-Domain Misconfiguration

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Cross-Domain Misconfiguration) - -
    CWE ID264
    WASC ID14
    Reference -
      -
    1. https://vulncat.fortify.com/en/detail?category=HTML5&subcategory=Overly%20Permissive%20CORS%20Policy
    2. -
    -
    -
  6. -
  7. -

    Timestamp Disclosure - Unix

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Timestamp Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://cwe.mitre.org/data/definitions/200.html
    2. -
    -
    -
  8. -
  9. -

    Modern Web Application

    - - - - - - - - -
    Source - - raised by a passive scanner (Modern Web Application) - -
    -
  10. -
-
-
- -
- - - - - diff --git a/TestesRealizados1/Dev&Full/normalize/LICENSE.md b/TestesRealizados1/Dev&Full/normalize/LICENSE.md deleted file mode 100644 index 43b5ddc..0000000 --- a/TestesRealizados1/Dev&Full/normalize/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# The MIT License (MIT) - -Copyright © Nicolas Gallagher and Jonathan Neal - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/TestesRealizados1/Dev&Full/normalize/normalize.css b/TestesRealizados1/Dev&Full/normalize/normalize.css deleted file mode 100644 index 192eb9c..0000000 --- a/TestesRealizados1/Dev&Full/normalize/normalize.css +++ /dev/null @@ -1,349 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} diff --git a/TestesRealizados1/Dev&Full/themes/original/colors.css b/TestesRealizados1/Dev&Full/themes/original/colors.css deleted file mode 100644 index fd3b963..0000000 --- a/TestesRealizados1/Dev&Full/themes/original/colors.css +++ /dev/null @@ -1,139 +0,0 @@ -body { - background-color: #306aa0; - background-image: radial-gradient(circle at top left, #fff 0%, #8ce1d6 15em, #306aa0 100em, #386095 100%); -} - -main, footer { - background-color: #fff; -} - -header { - background-color: #00549e; - color: #fff; -} - -a:link { - color: #004380; -} - -a:visited { - color: #770d67; -} - -a:focus { - background-color: #ffd54d; -} - -a:hover { - background-color: #ffd54d; -} - -a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -header a:link { - color: #f2f7fd; -} - -header a:visited { - color: #f2b5e9; -} - -header a:focus { - background-color: #ffd54d; - color: #004380; -} - -header a:hover { - background-color: #ffd54d; - color: #004380; -} - -header a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #fff6db; -} - -summary:focus { - background-color: #ffd54d; -} - -summary:hover { - background-color: #ffd54d; -} - -summary:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -h2, h3, h4, h5, h6 { - color: #00549e; -} - -.risk-level, .confidence-level { - color: #00549e; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - color: #00549e; -} - -.risk-confidence-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - color: #00549e; -} - -.site-risk-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.alert-type-counts-table > tbody > tr { - border-bottom-color: #00549e; -} - -.alert-type-counts-table th[scope="col"] { - background-color: #00549e; - color: #fff; -} - -.alert-type-counts-table th[scope="col"] { - border-left-color: #fff; -} - -.alerts-table th, .alert-types-table th { - background-color: #306aa0; - color: #fff; -} - -.additional-info-percentages { - color: #00549e; -} - -.insights-table > tbody > tr { - border-bottom-color: #00549e; -} - -.insights-table th[scope="col"] { - background-color: #00549e; - border-left-color: #fff; - color: #fff; -} diff --git a/TestesRealizados1/Dev&Full/themes/original/main.css b/TestesRealizados1/Dev&Full/themes/original/main.css deleted file mode 100644 index 050bd3f..0000000 --- a/TestesRealizados1/Dev&Full/themes/original/main.css +++ /dev/null @@ -1,417 +0,0 @@ -*, *::after, *::before { - box-sizing: border-box; -} - -h1, h2, h3, h4, h5, h6 { - margin: 0; - padding: 0; -} - -pre, ul { - margin: 0; -} - -ol { - list-style-type: none; -} - -h1 { - font-size: 3em; -} - -h2 { - font-size: 2em; -} - -h3, h4, h5, h6 { - font-size: 1em; -} - -html { - box-sizing: border-box; - font-family: Verdana, sans-serif; - line-height: 1.5; -} - -body { - margin: 1.5em 0; -} - -@media screen and (min-width: 50em) { - body { - margin: 1.5em 2ch; - padding: 1.5em 2ch; - } -} - -a:active, header a:active { - outline-style: solid; -} - -header, main { - margin: 0 auto; - max-width: 90ch; - padding: 1.5em 4ch; -} - -header { - border-radius: .25em .25em 0 0; -} - -main { - border-radius: 0 0 .25em .25em; -} - -summary { - cursor: pointer; -} - -.contents { - margin-top: 1.5em; -} - -main > section { - margin-bottom: 4.5em; -} - -.about-this-report > section { - margin-bottom: 3em; -} - -.summaries section { - margin-bottom: 3em; -} - -h2 { - margin-bottom: .75em; -} - -h3 { - margin-bottom: 1.5em; -} - -h4 { - margin-bottom: 1.5em; -} - -.report-parameters--container h4 { - margin-top: 1.5em; -} - -p { - margin: 1.5em 0; -} - -p:first-of-type { - margin-top: 0; -} - -p:last-of-type { - margin-bottom: 0; -} - -.contents li, .alerts li, .alert-types > ol > li { - margin-top: 1.5em; -} - -.alert-types h4 { - margin-bottom: 0; -} - -a { - border-radius: .125em; -} - -caption { - margin-bottom: 1.5em; - text-align: left; -} - -code, .request-method-n-url { - overflow-wrap: anywhere; - white-space: break-spaces; -} - -table { - border-collapse: collapse; -} - -.report-description--container, .report-parameters--container { - margin-left: 2ch; - padding: 0 2ch; -} - -.about-this-report h3, .summaries h3, .appendix h3 { - border-bottom: .05em solid; -} - -.alerts h4 { - text-align: center; -} - -.alerts ol { - padding-left: 0; -} - -.alerts--site-li { - border: .05em solid; - border-radius: .25em; - margin-left: 2ch; - padding: 1.5em 3ch; -} - -.contents ol { - list-style-position: inside; - list-style-type: square; - padding-left: 4ch; -} - -.contexts-list, .sites-list { - list-style-type: square; -} - -.risk-confidence-counts-table { - width: 100%; -} - -.risk-confidence-counts-table tr { - height: 4.5em; -} - -.risk-confidence-counts-table thead > tr { - height: 3em; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table th[scope="rowgroup"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.risk-confidence-counts-table th[scope="row"] { - padding-right: 5%; -} - -@media screen and (max-width: 50em) { - .risk-confidence-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.risk-confidence-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.risk-confidence-counts-table > tbody > tr { - border-top: .05em solid; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table td { - vertical-align: top; -} - -.risk-confidence-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.risk-confidence-counts-table td, .risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - text-align: right; -} - -.site-risk-counts-table { - width: 100%; -} - -.site-risk-counts-table tr { - height: 4.5em; -} - -.site-risk-counts-table thead > tr:first-of-type { - height: 3em; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table th[scope="col"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.site-risk-counts-table th[scope="row"] { - padding-right: 1%; -} - -@media screen and (max-width: 50em) { - .site-risk-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.site-risk-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.site-risk-counts-table > tbody > tr { - border-top: .05em solid; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table td { - vertical-align: top; -} - -.site-risk-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.site-risk-counts-table td, .site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - text-align: right; -} - -.alert-type-counts-table { - width: 100%; -} - -.alert-type-counts-table th, .alert-type-counts-table td { - padding: 0 1rem; - text-align: left; - vertical-align: top; -} - -.alert-type-counts-table td:nth-last-of-type(2) { - padding-left: 1.5rem; -} - -.alert-type-counts-table > tbody > tr { - border-bottom: 0.05em dotted; -} - -.alert-type-counts-table th[scope="col"] { - border-left: 1rem solid; -} - -.alert-type-counts-table th[scope="col"]:first-of-type { - border-left: 0; -} - -.alert-type-counts-table th[scope="col"]:last-of-type, .alert-type-counts-table td:last-of-type { - text-align: right; -} - -.alert-type-counts-table th[scope="col"], .alert-type-counts-table th[scope="row"] { - font-weight: normal; -} - -.alert-type-counts-table th[scope="row"], .alert-type-counts-table td { - padding-bottom: 1.5em; -} - -.alert-type-counts-table thead > th:first-of-type { - width: 45%; -} - -.alerts-table, .alert-types-table, .insights-table { - border-collapse: separate; - border-spacing: 2ch 1.5em; - width: 100%; -} - -.alerts-table th, .alerts-table td, .alert-types-table th, .alert-types-table td, .insights-table td, .insights-table th { - vertical-align: top; -} - -.alerts-table td, .alert-types-table td, .insights-table td { - overflow-wrap: anywhere; -} - -.alerts-table th, .alert-types-table th, .insights-table th { - padding: 0 1ch; -} - -.alerts-table td, .alert-types-table td { - padding: 0 2ch; -} - -.insights-table td { - padding: 0 1ch; -} - -.alerts-table summary { - margin-bottom: 1.5em; -} - -.alert-tags-list { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-tags-list > li { - margin-top: 0; -} - -.request-body, .response-body { - margin-top: 1.5em; -} - -.request-method-n-url { - margin-bottom: 0; -} - -.alert-types-table { - padding-top: 0; -} - -.alert-types-table th { - width: 20%; -} - -.alert-types-table ol { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-types-table li:not(:first-of-type) { - margin-top: 1.5em; -} - -p.alert-types-intro { - margin-bottom: 3em; -} - -.zap-logo { - height: 1em; - margin-right: .25ch; - width: 1em; -} - -h1, h2 { - font-family: Georgia, serif; -} - -.risk-level, .confidence-level, .included-risk-codes, .included-confidence-codes, .additional-info-percentages { - font-family: monospace, monospace; -} - -.context, .site, .request-method-n-url { - font-family: monospace, monospace; -} diff --git a/TestesRealizados1/Dev&Full/zap32x32.png b/TestesRealizados1/Dev&Full/zap32x32.png deleted file mode 100644 index 9c1019ffb2ad500434d78f20f5a624bd660e6735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1933 zcmV;82Xgp{P)LZ&X_*%IgUcU=kqE(b z4NRzXHHacGqA;V7EOd-rLRUsK6M0)>lNA+QA(1s>0WooNopVsi`f~3%&(A;3?F-PB zvOj!oo}80&pL3q?@9q2jJ@8;-E^rih7x)VQ$FTzF0Ce^0)w*%xMg@9CT^);$`@`-S z|D^%X0-G{2GScem>Zq-)#c><}&YnG+{?@;fz2@5u5&VQI{0HC&b5Eb8v=CMzq8Xh{uDUJ;6-8cvHPPw(V1AXlBMlio^B!;`1mR7lQz6stN1n` zVSRiJ3Jh}IHmwUh{p952jC=DbQ>IW{T+Bm{EyTg%86hH)s*G@RBZ6ZD zR~$s-xgh|tIK<*bMohZnrPKSTebm&{(An8JZUCD%Zw|w-XamM3aZ{E@QkJ_Sh=4&b zVlZMR6MN-LA+KI)MxOZY4_$EN7gpcl|GBy+*}SFI&@zE+1c5&ojb?% zH-610omUXmkc0pc4MCuY3JRI#ep;zPz!%CkF{7fMRjXD}R#rwLkr?x}`Sa(qYu7G1 z4zIhf6b}b*b0|Z?2bxNbAlb*&-!+hzmq$fKMaqhiM-T+Gw6t*h_U({ddb?6-2&w|A zpn{45bPqNps$5aDKvhCrw+1VURUz5a1;EaoJE^Lw8q=z_wl+#jOPTPwnarrD$C>b1 zeBZ~~fqr423P90ogC0=PH?8Vm*#v}(0|k?r!xzizShj2#GiT1Ey}f-@07XSb?AWn` zo)51w@$*j*Sf2pBs|*LhoR?u5{SD7JEun@R9Ak(IM2sO~gs2fb$L0Oj{d{ntiOR}K z4jw#6R#w)CK$a|7Ld#z-Gd=bqy@><~t0b(&SH%x3{Wghj{ro$E>8w7|8!?eI&lp@s zaK#WcLS%r`jo>*Bw)ZCgII)AS>wjbG)~z%&G>ix$H+M2U56vZe;WP9n69iWA)shSX z`fak)9$cP#M-^Drp9UIWRk0R)RT8QshN)UI2q2optfzJ|r}}xe?|y;IjENjOcI+Mi z7cX9-`|VS7cbpDGkWxfn15~wP#HQ4&KGGL8Zqzd_CM6=?Fb}vQxI!o{fa9gn`BpRU zy|It{{Ct|4nwT|f*5LO}o;*oeSs7W&e}iV^hCM-${BO{>Jm(%YOnIR)X)V55tW|8v z^2ET^D*YDvtkSPaPoj^^$IF?s{&lVgQFL zf4TNCRPNcLzb)TB`ne$0!%HlF+%?X3TygP?!H8f?C?W&GVvG#277}_4P&Z27wKi^_ z`UMY9O6QgM5f&|4M0R!--M6}buJEI=4km*jh{gB1;;i$G!4U@|f*8RtASQ%eXNt)N z2*#qQRjl#oYmeiff0@FG0rvrUs1Grl_V)4yJq|S&*HyA`hPcY4iwPqM T`!Z{P00000NkvXXu0mjf{kVU6 diff --git a/TestesRealizados1/Dev&Standard/Dev&Standard.html b/TestesRealizados1/Dev&Standard/Dev&Standard.html deleted file mode 100644 index c43c690..0000000 --- a/TestesRealizados1/Dev&Standard/Dev&Standard.html +++ /dev/null @@ -1,2645 +0,0 @@ - - - - - -ZAP by Checkmarx Scanning Report - - - - - -
-

ZAP by Checkmarx Scanning Report

-

- Generated with ZAP - on Thu 28 May 2026, at 08:32:21 -

-

ZAP Version: 2.17.0

-

- ZAP by Checkmarx -

-
- -
- -
-

Contents

- -
- -
-

About This Report

- - - -
-

Report Parameters

-
-

Contexts

- - -

No contexts were selected, so all contexts were included by default.

- - -

Sites

- -

The following sites were included:

-
    -
  • http://20.60.0.1:3000
  • -
- -

(If no sites were selected, all sites were included by default.)

-

An included site must also be within one of the included contexts for its data to be included in the report.

- -

Risk levels

-

- Included: - - High, Medium, Low, Informational -

-

- Excluded: - None - -

- -

Confidence levels

-

- Included: - - - User Confirmed, High, Medium, Low -

-

- Excluded: - - - User Confirmed, High, Medium, Low, False Positive -

-
-
-
- - -
- -
- -
-

Summaries

- -
-

Alert Counts by Risk and Confidence

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts for each level of risk and confidence included in the report.

-

(The percentages in brackets represent the count as a percentage of the total number of alerts included in the report, rounded to one decimal place.)

-
Confidence
User ConfirmedHighMediumLowTotal
RiskHigh0
(0.0%)
0
(0.0%)
0
(0.0%)
1
(11.1%)
1
(11.1%)
Medium0
(0.0%)
2
(22.2%)
2
(22.2%)
0
(0.0%)
4
(44.4%)
Low0
(0.0%)
0
(0.0%)
2
(22.2%)
1
(11.1%)
3
(33.3%)
Informational0
(0.0%)
0
(0.0%)
1
(11.1%)
0
(0.0%)
1
(11.1%)
Total0
(0.0%)
2
(22.2%)
5
(55.6%)
2
(22.2%)
9
(100%)
-
- -
-

Alert Counts by Site and Risk

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows, for each site for which one or more alerts were raised, the number of alerts raised at each risk level.

-

Alerts with a confidence level of "False Positive" have been excluded from these counts.

-

(The numbers in brackets are the number of alerts raised for the site at or above that risk level.)

-
Risk
- High
(= High) -
- Medium
(>= Medium) -
- Low
(>= Low) -
- Informational
(>= Informational) -
Sitehttp://20.60.0.1:30001
(1)
4
(5)
3
(8)
1
(9)
-
- -
-

Alert Counts by Alert Type

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts of each alert type, together with the alert type's risk level.

-

(The percentages in brackets represent each count as a percentage, rounded to one decimal place, of the total number of alerts included in this report.)

-
Alert typeRiskCount
SQL InjectionHigh1
(11.1%)
Content Security Policy (CSP) Header Not SetMedium5
(55.6%)
Cross-Domain MisconfigurationMedium5
(55.6%)
Missing Anti-clickjacking HeaderMedium3
(33.3%)
Session ID in URL RewriteMedium5
(55.6%)
Private IP DisclosureLow1
(11.1%)
Timestamp Disclosure - UnixLow5
(55.6%)
X-Content-Type-Options Header MissingLow5
(55.6%)
Modern Web ApplicationInformational5
(55.6%)
Total9
-
- -
-

Insights

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows information that is likely to be very relevant to you, but which is not related to vulnerabilities, or potentially even related to the application in question.

-
LevelReasonSiteDescriptionStatistic
-
Medium
-
-
Exceeded Low
-
-
-
-
Percentage of memory used
-
-
85
-
-
Low
-
-
Warning
-
-
-
-
ZAP errors logged - see the zap.log file for details
-
-
180
-
-
Low
-
-
Warning
-
-
-
-
ZAP warnings logged - see the zap.log file for details
-
-
63
-
-
Low
-
-
Exceeded Low
-
-
-
-
Percentage of network failures
-
-
5 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 2xx
-
-
91 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 3xx
-
-
5 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 4xx
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/javascript
-
-
7 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/json
-
-
8 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/octet-stream
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/jpeg
-
-
4 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/png
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/svg+xml
-
-
19 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/x-icon
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/css
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/html
-
-
50 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/markdown
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/plain
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method GET
-
-
98 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method POST
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Count of total endpoints
-
-
226
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of slow responses
-
-
33 %
-
-
-
- -
-

Alerts

-
    - - - - - - - - -
  1. -

    - Risk=High, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - SQL Injection (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/products/search?q=%27%28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          SQL injection may be possible.

          -
          Request
          - Request line and header section (433 bytes) - -
          GET http://20.60.0.1:3000/rest/products/search?q=%27%28 HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -Cookie: language=en; continueCode=y1OzBZxNpnLrM5WmgEKv8XakQ7DA6LcQGJ6yOlV9Pow1jYqbz2eRB34oE5mM; welcomebanner_status=dismiss
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (362 bytes) - -
          HTTP/1.1 500 Internal Server Error
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 12:29:02 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -content-length: 309
          -
          -
          - - -
          - Response body (309 bytes) - -
          {
          -  "error": {
          -    "message": "SQLITE_ERROR: near \"(\": syntax error",
          -    "stack": "Error: SQLITE_ERROR: near \"(\": syntax error",
          -    "errno": 1,
          -    "code": "SQLITE_ERROR",
          -    "sql": "SELECT * FROM Products WHERE ((name LIKE '%'(%' OR description LIKE '%'(%') AND deletedAt IS NULL) ORDER BY name"
          -  }
          -}
          - - -
          Parameter
          q
          Attack
          '(
          Evidence
          HTTP/1.1 500 Internal Server Error
          Solution -

          Do not trust client side input, even if there is client side validation in place.

          - -

          In general, type check all data on the server side.

          - -

          If the application uses JDBC, use PreparedStatement or CallableStatement, with parameters passed by '?'

          - -

          If the application uses ASP, use ADO Command Objects with strong type checking and parameterized queries.

          - -

          If database Stored Procedures can be used, use them.

          - -

          Do *not* concatenate strings into queries in the stored procedure, or use 'exec', 'exec immediate', or equivalent functionality!

          - -

          Do not create dynamic SQL queries using simple string concatenation.

          - -

          Escape all data received from the client.

          - -

          Apply an 'allow list' of allowed characters, or a 'deny list' of disallowed characters in user input.

          - -

          Apply the principle of least privilege by using the least privileged database user possible.

          - -

          In particular, avoid using the 'sa' or 'db-owner' database users. This does not eliminate SQL injection, but minimizes its impact.

          - -

          Grant the minimum database access that is necessary for the application.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  2. - - - - -
  3. -

    - Risk=Medium, Confidence=High (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Content Security Policy (CSP) Header Not Set (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware. CSP provides a set of standard HTTP headers that allow website owners to declare approved sources of content that browsers should be allowed to load on that page — covered types are JavaScript, CSS, HTML frames, fonts, images and embeddable objects such as Java applets, ActiveX, audio and video files.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 12:13:04 GMT
          -ETag: W/"26af-19e6e80a1b5"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 12:19:28 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Solution -

          Ensure that your web server, application server, load balancer, etc. is configured to set the Content-Security-Policy header.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - Session ID in URL Rewrite (1) -
        -
          -
        1. - - POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvkX-o2&sid=KZ3HJUr0aCv_HSEPAAAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          URL rewrite is used to track user session ID. The session ID may be disclosed via cross-site referer header. In addition, the session ID might be stored in browser history or server logs.

          -
          Request
          - Request line and header section (408 bytes) - -
          POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvkX-o2&sid=KZ3HJUr0aCv_HSEPAAAA HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Content-type: text/plain;charset=UTF-8
          -Content-Length: 2
          -Origin: http://20.60.0.1:3000
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (2 bytes) - -
          40
          - - -
          Response
          - Status line and header section (213 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/html
          -Content-Length: 2
          -Date: Thu, 28 May 2026 12:21:02 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (2 bytes) - -
          ok
          - - -
          Parameter
          sid
          Evidence
          KZ3HJUr0aCv_HSEPAAAA
          Solution -

          For secure content, put session ID in a cookie. To be even more secure consider using a combination of cookie and URL rewrite.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  4. - -
  5. -

    - Risk=Medium, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Cross-Domain Misconfiguration (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Web browser data loading may be possible, due to a Cross Origin Resource Sharing (CORS) misconfiguration on the web server.

          -
          Other info -

          The CORS misconfiguration on the web server permits cross-domain read requests from arbitrary third party domains, using unauthenticated APIs on this domain. Web browser implementations do not permit arbitrary third parties to read the response from authenticated APIs, however. This reduces the risk somewhat. This misconfiguration could be used by an attacker to access data that is available in an unauthenticated manner, but which uses some other form of security, such as IP address white-listing.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 12:13:04 GMT
          -ETag: W/"26af-19e6e80a1b5"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 12:19:28 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          Access-Control-Allow-Origin: *
          Solution -

          Ensure that sensitive data is not available in an unauthenticated manner (using IP address white-listing, for instance).

          - -

          Configure the "Access-Control-Allow-Origin" HTTP header to a more restrictive set of domains, or remove all CORS headers entirely, to allow the web browser to enforce the Same Origin Policy (SOP) in a more restrictive manner.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - Missing Anti-clickjacking Header (1) -
        -
          -
        1. - - POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvkX-o2&sid=KZ3HJUr0aCv_HSEPAAAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The response does not protect against 'ClickJacking' attacks. It should include either Content-Security-Policy with 'frame-ancestors' directive or X-Frame-Options.

          -
          Request
          - Request line and header section (408 bytes) - -
          POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvkX-o2&sid=KZ3HJUr0aCv_HSEPAAAA HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Content-type: text/plain;charset=UTF-8
          -Content-Length: 2
          -Origin: http://20.60.0.1:3000
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (2 bytes) - -
          40
          - - -
          Response
          - Status line and header section (213 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/html
          -Content-Length: 2
          -Date: Thu, 28 May 2026 12:21:02 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (2 bytes) - -
          ok
          - - -
          Parameter
          x-frame-options
          Solution -

          Modern Web browsers support the Content-Security-Policy and X-Frame-Options HTTP headers. Ensure one of them is set on all web pages returned by your site/app.

          - -

          If you expect the page to be framed only by pages on your server (e.g. it's part of a FRAMESET) then you'll want to use SAMEORIGIN, otherwise if you never expect the page to be framed, you should use DENY. Alternatively consider implementing Content Security Policy's "frame-ancestors" directive.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  6. - - - - - - - - -
  7. -

    - Risk=Low, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Private IP Disclosure (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/admin/application-configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A private IP (such as 10.x.x.x, 172.x.x.x, 192.168.x.x) or an Amazon EC2 private hostname (for example, ip-10-0-56-78) has been found in the HTTP response body. This information might be helpful for further attacks targeting internal systems.

          -
          Other info -

          192.168.99.100:3000

          - -

          192.168.99.100:4200

          -
          Request
          - Request line and header section (314 bytes) - -
          GET http://20.60.0.1:3000/rest/admin/application-configuration HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (389 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Content-Length: 23513
          -ETag: W/"5bd9-reVonwE2GOcMzw2LpzIkSqyB2OE"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 12:21:01 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (23513 bytes) - -
          {"config":{"server":{"port":3000,"basePath":"","baseUrl":"http://localhost:3000"},"application":{"domain":"juice-sh.op","name":"OWASP Juice Shop","logo":"JuiceShop_Logo.png","favicon":"favicon_js.ico","theme":"bluegrey-lightgreen","showVersionNumber":true,"showGitHubLinks":true,"localBackupEnabled":true,"numberOfRandomFakeUsers":0,"altcoinName":"Juicycoin","privacyContactEmail":"donotreply@owasp-juice.shop","customMetricsPrefix":"juiceshop","chatBot":{"name":"Juicy the Smart Assistant","avatar":"JuicyChatBot.png","model":"gemma4:e4b","llmMaxRetries":2,"sampleQuestions":["CHATBOT_PROMPT_RECOMMENDATION_SUMMER_PARTY","CHATBOT_PROMPT_RECOMMENDATION_POPULAR","CHATBOT_PROMPT_RECOMMENDATION_SUGAR_FREE","CHATBOT_PROMPT_RECOMMENDATION_START_DAY","CHATBOT_PROMPT_RECOMMENDATION_SEASONAL"]},"social":{"blueSkyUrl":"https://bsky.app/profile/owasp-juice.shop","mastodonUrl":"https://fosstodon.org/@owasp_juiceshop","twitterUrl":"https://twitter.com/owasp_juiceshop","facebookUrl":"https://www.facebook.com/owasp.juiceshop","slackUrl":"https://owasp.org/slack/invite","redditUrl":"https://www.reddit.com/r/owasp_juiceshop","pressKitUrl":"https://github.com/OWASP/owasp-swag/tree/master/projects/juice-shop","nftUrl":"https://opensea.io/collection/juice-shop","questionnaireUrl":null},"recyclePage":{"topProductImage":"fruit_press.jpg","bottomProductImage":"apple_pressings.jpg"},"welcomeBanner":{"showOnFirstStart":true,"title":"Welcome to OWASP Juice Shop!","message":"<p>Being a web application with a vast number of intended security vulnerabilities, the <strong>OWASP Juice Shop</strong> is supposed to be the opposite of a best practice or template application for web developers: It is an awareness, training, demonstration and exercise tool for security risks in modern web applications. The <strong>OWASP Juice Shop</strong> is an open-source project hosted by the non-profit <a href='https://owasp.org' target='_blank'>Open Worldwide Application Security Project (OWASP)</a> and is developed and maintained by volunteers. Check out the link below for more information and documentation on the project.</p><h1><a href='https://owasp-juice.shop' target='_blank'>https://owasp-juice.shop</a></h1>"},"cookieConsent":{"message":"This website uses fruit cookies to ensure you get the juiciest tracking experience.","dismissText":"Me want it!","linkText":"But me wait!","linkUrl":"https://www.youtube.com/watch?v=9PnbKL3wuH4"},"securityTxt":{"contact":"mailto:donotreply@owasp-juice.shop","encryption":"https://keybase.io/bkimminich/pgp_keys.asc?fingerprint=19c01cb7157e4645e9e2c863062a85a8cbfbdcda","acknowledgements":"/#/score-board","hiring":"/#/jobs","csaf":"/.well-known/csaf/provider-metadata.json"},"promotion":{"video":"owasp_promo.mp4","subtitles":"owasp_promo.vtt"},"easterEggPlanet":{"name":"Orangeuze","overlayMap":"orangemap2k.avif"},"googleOauth":{"clientId":"1005568560502-6hm16lef8oh46hr2d98vf2ohlnj4nfhq.apps.googleusercontent.com","authorizedRedirects":[{"uri":"https://demo.owasp-juice.shop"},{"uri":"https://juice-shop.herokuapp.com"},{"uri":"https://preview.owasp-juice.shop"},{"uri":"https://juice-shop-staging.herokuapp.com"},{"uri":"https://juice-shop.wtf"},{"uri":"http://localhost:3000","proxy":"https://local3000.owasp-juice.shop"},{"uri":"http://127.0.0.1:3000","proxy":"https://local3000.owasp-juice.shop"},{"uri":"http://localhost:4200","proxy":"https://local4200.owasp-juice.shop"},{"uri":"http://127.0.0.1:4200","proxy":"https://local4200.owasp-juice.shop"},{"uri":"http://192.168.99.100:3000","proxy":"https://localmac.owasp-juice.shop"},{"uri":"http://192.168.99.100:4200","proxy":"https://localmac.owasp-juice.shop"},{"uri":"http://penguin.termina.linux.test:3000","proxy":"https://localchromeos.owasp-juice.shop"},{"uri":"http://penguin.termina.linux.test:4200","proxy":"https://localchromeos.owasp-juice.shop"}]}},"challenges":{"showSolvedNotifications":true,"showHints":true,"showMitigations":true,"codingChallengesEnabled":"solved","restrictToTutorialsFirst":false,"overwriteUrlForProductTamperingChallenge":"https://owasp.slack.com","xssBonusPayload":"<iframe width=\"100%\" height=\"166\" scrolling=\"no\" frameborder=\"no\" allow=\"autoplay\" src=\"https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/771984076&color=%23ff5500&auto_play=true&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true\"></iframe>","safetyMode":"auto","csafHashValue":"7e7ce7c65db3bf0625fcea4573d25cff41f2f7e3474f2c74334b14fc65bb4fd26af802ad17a3a03bf0eee6827a00fb8f7905f338c31b5e6ea9cb31620242e843","metricsIgnoredUserAgents":["Prometheus","Alloy","promscrape","otelcol"]},"hackingInstructor":{"isEnabled":true,"avatarImage":"JuicyBot.png","hintPlaybackSpeed":"normal"},"products":[{"name":"Apple Juice (1000ml)","price":1.99,"deluxePrice":0.99,"limitPerUser":5,"description":"The all-time classic.","image":"apple_juice.jpg","reviews":[{"text":"One of my favorites!","author":"admin"},{"text":"Great! We'll have an apple party. Everyone brings an apple and - STUFFS IT DOWN EACH OTHER'S THROAT!","author":"basil"}]},{"name":"Orange Juice (1000ml)","description":"Made from oranges hand-picked by Uncle Dittmeyer.","price":2.99,"deluxePrice":2.49,"image":"orange_juice.jpg","reviews":[{"text":"y0ur f1r3wall needs m0r3 musc13","author":"uvogin"}]},{"name":"Eggfruit Juice (500ml)","description":"Now with even more exotic flavour.","price":8.99,"image":"eggfruit_juice.jpg","reviews":[{"text":"I bought it, would buy again. 5/7","author":"admin"}]},{"name":"Raspberry Juice (1000ml)","description":"Made from blended Raspberry Pi, water and sugar.","price":4.99,"image":"raspberry_juice.jpg"},{"name":"Lemon Juice (500ml)","description":"Sour but full of vitamins.","price":2.99,"deluxePrice":1.99,"limitPerUser":5,"image":"lemon_juice.jpg"},{"name":"Banana Juice (1000ml)","description":"Monkeys love it the most.","price":1.99,"image":"banana_juice.jpg","reviews":[{"text":"Fry liked it too.","author":"bender"}]},{"name":"OWASP Juice Shop T-Shirt","description":"Real fans wear it 24/7!","price":22.49,"limitPerUser":5,"image":"fan_shirt.jpg"},{"name":"OWASP Juice Shop CTF Girlie-Shirt","description":"For serious Capture-the-Flag heroines only!","price":22.49,"image":"fan_girlie.jpg"},{"name":"OWASP SSL Advanced Forensic Tool (O-Saft)","description":"O-Saft is an easy to use tool to show information about SSL certificate and tests the SSL connection according given list of ciphers and various SSL configurations.","price":0.01,"image":"orange_juice.jpg","urlForProductTamperingChallenge":"https://www.owasp.org/index.php/O-Saft"},{"name":"Christmas Super-Surprise-Box (2014 Edition)","description":"Contains a random selection of 10 bottles (each 500ml) of our tastiest juices and an extra fan shirt for an unbeatable price!","price":29.99,"image":"undefined.jpg","useForChristmasSpecialChallenge":true},{"name":"Rippertuer Special Juice","description":"Contains a magical collection of the rarest fruits gathered from all around the world, like Cherymoya Annona cherimola, Jabuticaba Myrciaria cauliflora, Bael Aegle marmelos... and others, at an unbelievable price! <br/><span style=\"color:red;\">This item has been made unavailable because of lack of safety standards.</span>","price":16.99,"image":"undefined.jpg","keywordsForPastebinDataLeakChallenge":["hueteroneel","eurogium edule"]},{"name":"OWASP Juice Shop Sticker (2015/2016 design)","description":"Die-cut sticker with the official 2015/2016 logo. By now this is a rare collectors item. <em>Out of stock!</em>","price":999.99,"image":"sticker.png","deletedDate":"2017-04-28"},{"name":"OWASP Juice Shop Iron-Ons (16pcs)","description":"Upgrade your clothes with washer safe <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">iron-ons</a> of the OWASP Juice Shop or CTF Extension logo!","price":14.99,"image":"iron-on.jpg"},{"name":"OWASP Juice Shop Magnets (16pcs)","description":"Your fridge will be even cooler with these OWASP Juice Shop or CTF Extension logo <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">magnets</a>!","price":15.99,"image":"magnets.jpg"},{"name":"OWASP Juice Shop Sticker Page","description":"Massive decoration opportunities with these OWASP Juice Shop or CTF Extension <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">sticker pages</a>! Each page has 16 stickers on it.","price":9.99,"image":"sticker_page.jpg"},{"name":"OWASP Juice Shop Sticker Single","description":"Super high-quality vinyl <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">sticker single</a> with the OWASP Juice Shop or CTF Extension logo! The ultimate laptop decal!","price":4.99,"image":"sticker_single.jpg"},{"name":"OWASP Juice Shop Temporary Tattoos (16pcs)","description":"Get one of these <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">temporary tattoos</a> to proudly wear the OWASP Juice Shop or CTF Extension logo on your skin! If you tweet a photo of yourself with the tattoo, you get a couple of our stickers for free! Please mention <a href=\"https://twitter.com/owasp_juiceshop\" target=\"_blank\"><code>@owasp_juiceshop</code></a> in your tweet!","price":14.99,"image":"tattoo.jpg","reviews":[{"text":"I straight-up gots nuff props fo'these tattoos!","author":"rapper"}]},{"name":"OWASP Juice Shop Mug","description":"Black mug with regular logo on one side and CTF logo on the other! Your colleagues will envy you!","price":21.99,"image":"fan_mug.jpg"},{"name":"OWASP Juice Shop Hoodie","description":"Mr. Robot-style apparel. But in black. And with logo.","price":49.99,"image":"fan_hoodie.jpg"},{"name":"OWASP Juice Shop-CTF Velcro Patch","description":"4x3.5\" embroidered patch with velcro backside. The ultimate decal for every tactical bag or backpack!","price":2.92,"quantity":5,"limitPerUser":5,"image":"velcro-patch.jpg","reviews":[{"text":"This thang would look phat on Bobby's jacked fur coat!","author":"rapper"},{"text":"Looks so much better on my uniform than the boring Starfleet symbol.","author":"jim"}]},{"name":"Woodruff Syrup \"Forest Master X-Treme\"","description":"Harvested and manufactured in the Black Forest, Germany. Can cause hyperactive behavior in children. Can cause permanent green tongue when consumed undiluted.","price":6.99,"image":"woodruff_syrup.jpg"},{"name":"Green Smoothie","description":"Looks poisonous but is actually very good for your health! Made from green cabbage, spinach, kiwi and grass.","price":1.99,"image":"green_smoothie.jpg","reviews":[{"text":"Fresh out of a replicator.","author":"jim"}]},{"name":"Quince Juice (1000ml)","description":"Juice of the <em>Cydonia oblonga</em> fruit. Not exactly sweet but rich in Vitamin C.","price":4.99,"image":"quince.jpg"},{"name":"Apple Pomace","description":"Finest pressings of apples. Allergy disclaimer: Might contain traces of worms. Can be <a href=\"/#recycle\">sent back to us</a> for recycling.","price":0.89,"limitPerUser":5,"image":"apple_pressings.jpg"},{"name":"Fruit Press","description":"Fruits go in. Juice comes out. Pomace you can send back to us for recycling purposes.","price":89.99,"image":"fruit_press.jpg"},{"name":"OWASP Juice Shop Logo (3D-printed)","description":"This rare item was designed and handcrafted in Sweden. This is why it is so incredibly expensive despite its complete lack of purpose.","price":99.99,"image":"3d_keychain.jpg","fileForRetrieveBlueprintChallenge":"JuiceShop.stl","exifForBlueprintChallenge":["OpenSCAD"]},{"name":"Juice Shop Artwork","description":"Unique masterpiece painted with different kinds of juice on 90g/m² lined paper.","price":278.74,"quantity":0,"image":"artwork.jpg","deletedDate":"2020-12-24"},{"name":"Global OWASP WASPY Award 2017 Nomination","description":"Your chance to nominate up to three quiet pillars of the OWASP community ends 2017-06-30! <a href=\"https://www.owasp.org/index.php/WASPY_Awards_2017\">Nominate now!</a>","price":0.03,"image":"waspy.png","deletedDate":"2017-07-01"},{"name":"Strawberry Juice (500ml)","description":"Sweet & tasty!","price":3.99,"image":"strawberry_juice.jpeg"},{"name":"Carrot Juice (1000ml)","description":"As the old German saying goes: \"Carrots are good for the eyes. Or has anyone ever seen a rabbit with glasses?\"","price":2.99,"image":"carrot_juice.jpeg","reviews":[{"text":"0 st4rs f0r 7h3 h0rr1bl3 s3cur17y","author":"uvogin"}]},{"name":"OWASP Juice Shop Sweden Tour 2017 Sticker Sheet (Special Edition)","description":"10 sheets of Sweden-themed stickers with 15 stickers on each.","price":19.1,"image":"stickersheet_se.png","deletedDate":"2017-09-20"},{"name":"Pwning OWASP Juice Shop","description":"<em>The official Companion Guide</em> by Björn Kimminich available <a href=\"https://leanpub.com/juice-shop\">for free on LeanPub</a> and also <a href=\"https://pwning.owasp-juice.shop\">readable online</a>!","price":5.99,"image":"cover_small.jpg","reviews":[{"text":"Even more interesting than watching Interdimensional Cable!","author":"morty"}]},{"name":"Melon Bike (Comeback-Product 2018 Edition)","description":"The wheels of this bicycle are made from real water melons. You might not want to ride it up/down the curb too hard.","price":2999,"quantity":3,"limitPerUser":1,"image":"melon_bike.jpeg"},{"name":"OWASP Juice Shop Coaster (10pcs)","description":"Our 95mm circle coasters are printed in full color and made from thick, premium coaster board.","price":19.99,"quantity":0,"image":"coaster.jpg"},{"name":"OWASP Snakes and Ladders - Web Applications","description":"This amazing web application security awareness board game is <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1969196030\">available for Tabletop Simulator on Steam Workshop</a> now!","price":0.01,"quantity":8,"image":"snakes_ladders.jpg","reviews":[{"text":"Wait for a 10$ Steam sale of Tabletop Simulator!","author":"bjoernOwasp"}]},{"name":"OWASP Snakes and Ladders - Mobile Apps","description":"This amazing mobile app security awareness board game is <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1970691216\">available for Tabletop Simulator on Steam Workshop</a> now!","price":0.01,"quantity":0,"image":"snakes_ladders_m.jpg","reviews":[{"text":"Here yo' learn how tha fuck ta not show yo' goddamn phone on camera!","author":"rapper"}]},{"name":"OWASP Juice Shop Holographic Sticker","description":"Die-cut holographic sticker. Stand out from those 08/15-sticker-covered laptops with this shiny beacon of 80's coolness!","price":2,"quantity":0,"image":"holo_sticker.png","reviews":[{"text":"Rad, dude!","author":"rapper"},{"text":"Looks spacy on Bones' new tricorder!","author":"jim"},{"text":"Will put one on the Planet Express ship's bumper!","author":"bender"}]},{"name":"OWASP Juice Shop \"King of the Hill\" Facemask","description":"Facemask with compartment for filter from 50% cotton and 50% polyester.","price":13.49,"quantity":0,"limitPerUser":1,"image":"fan_facemask.jpg","reviews":[{"text":"K33p5 y0ur ju1cy 5plu773r 70 y0ur53lf!","author":"uvogin"},{"text":"Puny mask for puny human weaklings!","author":"bender"}]},{"name":"Juice Shop Adversary Trading Card (Common)","description":"Common rarity \"Juice Shop\" card for the <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSecLEakawSQ56lBe2JOSbFwFYrKDCIN7Yd3iHFdQc5z8ApwdQ/viewform\">Adversary Trading Cards</a> CCG.","price":2.99,"deluxePrice":0.99,"deletedDate":"2020-11-30","limitPerUser":5,"image":"ccg_common.png","reviews":[{"text":"Ooooh, puny human playing Mau Mau, now?","author":"bender"}]},{"name":"Juice Shop Adversary Trading Card (Super Rare)","description":"Super rare \"Juice Shop\" card with holographic foil-coating for the <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSecLEakawSQ56lBe2JOSbFwFYrKDCIN7Yd3iHFdQc5z8ApwdQ/viewform\">Adversary Trading Cards</a> CCG.","price":99.99,"deluxePrice":69.99,"deletedDate":"2020-11-30","quantity":2,"limitPerUser":1,"image":"ccg_foil.png","reviews":[{"text":"Mau Mau with bling-bling? Humans are so pathetic!","author":"bender"}]},{"name":"Juice Shop \"Permafrost\" 2020 Edition","description":"Exact version of <a href=\"https://github.com/juice-shop/juice-shop/releases/tag/v9.3.1-PERMAFROST\">OWASP Juice Shop that was archived on 02/02/2020</a> by the GitHub Archive Program and ultimately went into the <a href=\"https://github.blog/2020-07-16-github-archive-program-the-journey-of-the-worlds-open-source-code-to-the-arctic\">Arctic Code Vault</a> on July 8. 2020 where it will be safely stored for at least 1000 years.","price":9999.99,"quantity":1,"limitPerUser":1,"image":"permafrost.jpg","reviews":[{"text":"🧊 Let it go, let it go 🎶 Can't hold it back anymore 🎶 Let it go, let it go 🎶 Turn away and slam the door ❄️","author":"rapper"}]},{"name":"Best Juice Shop Salesman Artwork","description":"Unique digital painting depicting Stan, our most qualified and almost profitable salesman. He made a succesful carreer in selling used ships, coffins, krypts, crosses, real estate, life insurance, restaurant supplies, voodoo enhanced asbestos and courtroom souvenirs before <em>finally</em> adding his expertise to the Juice Shop marketing team.","price":5000,"quantity":1,"image":"artwork2.jpg","reviews":[{"text":"I'd stand on my head to make you a deal for this piece of art.","author":"stan"},{"text":"Just when my opinion of humans couldn't get any lower, along comes Stan...","author":"bender"}]},{"name":"OWASP Juice Shop Card (non-foil)","description":"Mythic rare <small><em>(obviously...)</em></small> card \"OWASP Juice Shop\" with three distinctly useful abilities. Alpha printing, mint condition. A true collectors piece to own!","price":1000,"quantity":3,"limitPerUser":1,"image":"card_alpha.jpg","reviews":[{"text":"DO NOT PLAY WITH THIS! Double-sleeve, then put it in the GitHub Arctic Vault for perfect preservation and boost of secondary market value!","author":"accountant"}]},{"name":"20th Anniversary Celebration Ticket","description":"Get your <a href=\"https://20thanniversary.owasp.org/\" target=\"_blank\">free 🎫 for OWASP 20th Anniversary Celebration</a> online conference! Hear from world renowned keynotes and special speakers, network with your peers and interact with our event sponsors. With an anticipated 10k+ attendees from around the world, you will not want to miss this live on-line event!","price":1e-20,"deletedDate":"2021-09-25","limitPerUser":1,"image":"20th.jpeg","reviews":[{"text":"I'll be there! Will you, too?","author":"bjoernOwasp"}]},{"name":"OWASP Juice Shop LEGO™ Tower","description":"Want to host a Juice Shop CTF in style? Build <a href=\"https://github.com/OWASP/owasp-swag/blob/master/projects/juice-shop/lego/OWASP%20JuiceShop%20Pi-server%201.2.pdf\" target=\"_blank\">your own LEGO™ tower</a> which holds four Raspberry Pi 4 models with PoE HAT modules <a href=\"https://github.com/juice-shop/multi-juicer/blob/main/guides/raspberry-pi/raspberry-pi.md\" target=\"_blank\">running a MultiJuicer Kubernetes cluster</a>! Wire to a switch and connect to your network to have an out-of-the-box ready CTF up in no time!","price":799,"quantity":3,"limitPerUser":1,"image":"lego_case.jpg","reviews":[{"text":"Check out the /#/photo-wall for some impressions of the assembly process!","author":"bjoernOwasp"}]},{"name":"DSOMM & Juice Shop User Day Ticket","description":"You are going to the OWASP Global AppSec San Francisco 2024? <a href=\"https://www.eventbrite.com/e/owasp-global-appsec-san-francisco-2024-tickets-723699172707\" target=\"_blank\">Get a ticket<sup>*</sup></a> for this amazing side event as well! Check the juice-packed agenda <a href=\"https://owasp.org/www-project-juice-shop/#div-userday2024\" target=\"_blank\">here</a> for all the details!<br><br><small><small><sup>*</sup>=scroll down to <strong>Elevate: DSOMM and Juice Shop User Day (Sept. 25)</strong> after clicking <em>Get Tickets</em> on Eventbrite. Ticket price set to only covers fees for room, AV, and catering throughout the day.</small></small>","price":55.2,"deletedDate":"2024-09-26","limitPerUser":1,"image":"user_day_ticket.png","reviews":[{"text":"The DSOMM Live Assessment session will even use Juice Shop as its \"real-world\" example!","author":"timo"},{"text":"We will showcase the amazing MultiJuicer Lego Tower at this event!","author":"jannik"}]},{"name":"Pineapple Juice (1000ml)","description":"Tropical refreshment from the finest sun-ripened pineapples.","price":2.99,"image":"pineapple_juice.png"},{"name":"Melon Juice (1000ml)","description":"Refreshing and sweet juice made from ripe melons.","price":2.49,"image":"melon_juice.png"},{"name":"Grape Juice (1000ml)","description":"Deep purple and full of antioxidants from selected grapes.","price":2.99,"image":"grape_juice.png"},{"name":"Dragonfruit Juice (500ml)","description":"Exotic and vibrant juice made from dragonfruit.","price":3.99,"image":"dragonfruit_juice.png"},{"name":"Berry Juice (1000ml)","description":"A delicious blend of fresh forest berries.","price":3.49,"image":"berry_juice.png"},{"name":"Basil Smoothie","description":"A unique blend of fresh basil and ginger for a healthy kick.","price":2.99,"image":"basil_smoothie.png","reviews":[{"text":"(ง'̀-'́)ง","author":"basil"}]},{"name":"Bragă (500ml)","description":"Traditional Balkan drink made from fermented millet. Lightly sweet-sour, refreshing, and naturally energizing.","price":2.49,"image":"braga.jpg"},{"name":"Elderflower Cordial (500ml)","description":"Floral and fragrant soft drink made from elderflowers. Traditionally enjoyed chilled.","price":3.29,"image":"elderflower_cordial.jpg"},{"name":"Sea Buckthorn Juice (500ml)","description":"Tangy and slightly sour juice, extremely rich in Vitamin C and antioxidants.","price":3.99,"image":"sea_buckthorn_juice.jpg"},{"name":"Pomegranate Drink (500ml)","description":"A sweet and tart refreshment inspired by classic grenadine flavors.","price":4.49,"image":"pomegranate_drink.jpg"}],"memories":[{"image":"magn(et)ificent!-1571814229653.jpg","caption":"Magn(et)ificent!","user":"bjoernGoogle"},{"image":"my-rare-collectors-item!-[̲̅$̲̅(̲̅-͡°-͜ʖ-͡°̲̅)̲̅$̲̅]-1572603645543.jpg","caption":"My rare collectors item! [̲̅$̲̅(̲̅ ͡° ͜ʖ ͡°̲̅)̲̅$̲̅]","user":"bjoernGoogle"},{"image":"favorite-hiking-place.png","caption":"I love going hiking here...","geoStalkingMetaSecurityQuestion":14,"geoStalkingMetaSecurityAnswer":"Daniel Boone National Forest"},{"image":"IMG_4253.jpg","caption":"My old workplace...","geoStalkingVisualSecurityQuestion":10,"geoStalkingVisualSecurityAnswer":"ITsec"},{"image":"BeeHaven.png","caption":"Welcome to the Bee Haven (/#/bee-haven)🐝","user":"evm"},{"image":"sorted-the-pieces,-starting-assembly-process-1721152307290.jpg","caption":"Sorted the pieces, starting assembly process...","user":"bjoernOwasp"},{"image":"building-something-literally-bottom-up-1721152342603.jpg","caption":"Building something literally bottom up...","user":"bjoernOwasp"},{"image":"putting-in-the-hardware-1721152366854.jpg","caption":"Putting in the hardware...","user":"bjoernOwasp"},{"image":"everything-up-and-running!-1721152385146.jpg","caption":"Everything up and running!","user":"bjoernOwasp"}],"ctf":{"showFlagsInNotifications":false,"showCountryDetailsInNotifications":"none","countryMapping":null,"systemWideNotifications":{"url":null,"pollFrequencySeconds":null}}}}
          - - -
          Evidence
          192.168.99.100:3000
          Solution -

          Remove the private IP address from the HTTP response body. For comments, use JSP/ASP/PHP comment instead of HTML/JavaScript comment which can be seen by client browsers.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - X-Content-Type-Options Header Missing (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvkX-Q0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

          -
          Other info -

          This issue still applies to error type pages (401, 403, 500, etc.) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

          - -

          At "High" threshold this scan rule will not alert on client or server error responses.

          -
          Request
          - Request line and header section (292 bytes) - -
          GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvkX-Q0 HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (230 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/plain; charset=UTF-8
          -Content-Length: 96
          -Date: Thu, 28 May 2026 12:21:00 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (96 bytes) - -
          0{"sid":"KZ3HJUr0aCv_HSEPAAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
          - - -
          Parameter
          x-content-type-options
          Solution -

          Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

          - -

          If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  8. - -
  9. -

    - Risk=Low, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Timestamp Disclosure - Unix (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A timestamp was disclosed by the application/web server. - Unix

          -
          Other info -

          1666666667, which evaluates to: 2022-10-24 22:57:47.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 12:13:04 GMT
          -ETag: W/"26af-19e6e80a1b5"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 12:19:28 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          1666666667
          Solution -

          Manually confirm that the timestamp data is not sensitive, and that the data cannot be aggregated to disclose exploitable patterns.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  10. - - - - - - -
  11. -

    - Risk=Informational, Confidence=Medium (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Modern Web Application (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The application appears to be a modern web application. If you need to explore it automatically then the Ajax Spider may well be more effective than the standard one.

          -
          Other info -

          No links have been found while there are scripts, which is an indication that this is a modern web application.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 12:13:04 GMT
          -ETag: W/"26af-19e6e80a1b5"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 12:19:28 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          Solution -

          This is an informational alert and so no changes are required.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  12. - - - -
-
- -
-

Appendix

- -
-

Alert Types

-

This section contains additional information on the types of alerts in the report.

-
    -
  1. -

    SQL Injection

    - - - - - - - - - - - - - - - - - -
    Source - - raised by an active scanner (SQL Injection) - -
    CWE ID89
    WASC ID19
    Reference -
      -
    1. https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
    2. -
    -
    -
  2. -
  3. -

    Content Security Policy (CSP) Header Not Set

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Content Security Policy (CSP) Header Not Set) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP
    2. -
    3. https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html
    4. -
    5. https://www.w3.org/TR/CSP/
    6. -
    7. https://w3c.github.io/webappsec-csp/
    8. -
    9. https://web.dev/articles/csp
    10. -
    11. https://caniuse.com/#feat=contentsecuritypolicy
    12. -
    13. https://content-security-policy.com/
    14. -
    -
    -
  4. -
  5. -

    Cross-Domain Misconfiguration

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Cross-Domain Misconfiguration) - -
    CWE ID264
    WASC ID14
    Reference -
      -
    1. https://vulncat.fortify.com/en/detail?category=HTML5&subcategory=Overly%20Permissive%20CORS%20Policy
    2. -
    -
    -
  6. -
  7. -

    Missing Anti-clickjacking Header

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Anti-clickjacking Header) - -
    CWE ID1021
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options
    2. -
    -
    -
  8. -
  9. -

    Session ID in URL Rewrite

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Session ID in URL Rewrite) - -
    CWE ID598
    WASC ID13
    Reference -
      -
    1. https://seclists.org/webappsec/2002/q4/111
    2. -
    -
    -
  10. -
  11. -

    Private IP Disclosure

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Private IP Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://datatracker.ietf.org/doc/html/rfc1918
    2. -
    -
    -
  12. -
  13. -

    Timestamp Disclosure - Unix

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Timestamp Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://cwe.mitre.org/data/definitions/200.html
    2. -
    -
    -
  14. -
  15. -

    X-Content-Type-Options Header Missing

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (X-Content-Type-Options Header Missing) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/compatibility/gg622941(v=vs.85)
    2. -
    3. https://owasp.org/www-community/Security_Headers
    4. -
    -
    -
  16. -
  17. -

    Modern Web Application

    - - - - - - - - -
    Source - - raised by a passive scanner (Modern Web Application) - -
    -
  18. -
-
-
- -
- - - - - diff --git a/TestesRealizados1/Dev&Standard/normalize/LICENSE.md b/TestesRealizados1/Dev&Standard/normalize/LICENSE.md deleted file mode 100644 index 43b5ddc..0000000 --- a/TestesRealizados1/Dev&Standard/normalize/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# The MIT License (MIT) - -Copyright © Nicolas Gallagher and Jonathan Neal - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/TestesRealizados1/Dev&Standard/normalize/normalize.css b/TestesRealizados1/Dev&Standard/normalize/normalize.css deleted file mode 100644 index 192eb9c..0000000 --- a/TestesRealizados1/Dev&Standard/normalize/normalize.css +++ /dev/null @@ -1,349 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} diff --git a/TestesRealizados1/Dev&Standard/themes/original/colors.css b/TestesRealizados1/Dev&Standard/themes/original/colors.css deleted file mode 100644 index fd3b963..0000000 --- a/TestesRealizados1/Dev&Standard/themes/original/colors.css +++ /dev/null @@ -1,139 +0,0 @@ -body { - background-color: #306aa0; - background-image: radial-gradient(circle at top left, #fff 0%, #8ce1d6 15em, #306aa0 100em, #386095 100%); -} - -main, footer { - background-color: #fff; -} - -header { - background-color: #00549e; - color: #fff; -} - -a:link { - color: #004380; -} - -a:visited { - color: #770d67; -} - -a:focus { - background-color: #ffd54d; -} - -a:hover { - background-color: #ffd54d; -} - -a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -header a:link { - color: #f2f7fd; -} - -header a:visited { - color: #f2b5e9; -} - -header a:focus { - background-color: #ffd54d; - color: #004380; -} - -header a:hover { - background-color: #ffd54d; - color: #004380; -} - -header a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #fff6db; -} - -summary:focus { - background-color: #ffd54d; -} - -summary:hover { - background-color: #ffd54d; -} - -summary:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -h2, h3, h4, h5, h6 { - color: #00549e; -} - -.risk-level, .confidence-level { - color: #00549e; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - color: #00549e; -} - -.risk-confidence-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - color: #00549e; -} - -.site-risk-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.alert-type-counts-table > tbody > tr { - border-bottom-color: #00549e; -} - -.alert-type-counts-table th[scope="col"] { - background-color: #00549e; - color: #fff; -} - -.alert-type-counts-table th[scope="col"] { - border-left-color: #fff; -} - -.alerts-table th, .alert-types-table th { - background-color: #306aa0; - color: #fff; -} - -.additional-info-percentages { - color: #00549e; -} - -.insights-table > tbody > tr { - border-bottom-color: #00549e; -} - -.insights-table th[scope="col"] { - background-color: #00549e; - border-left-color: #fff; - color: #fff; -} diff --git a/TestesRealizados1/Dev&Standard/themes/original/main.css b/TestesRealizados1/Dev&Standard/themes/original/main.css deleted file mode 100644 index 050bd3f..0000000 --- a/TestesRealizados1/Dev&Standard/themes/original/main.css +++ /dev/null @@ -1,417 +0,0 @@ -*, *::after, *::before { - box-sizing: border-box; -} - -h1, h2, h3, h4, h5, h6 { - margin: 0; - padding: 0; -} - -pre, ul { - margin: 0; -} - -ol { - list-style-type: none; -} - -h1 { - font-size: 3em; -} - -h2 { - font-size: 2em; -} - -h3, h4, h5, h6 { - font-size: 1em; -} - -html { - box-sizing: border-box; - font-family: Verdana, sans-serif; - line-height: 1.5; -} - -body { - margin: 1.5em 0; -} - -@media screen and (min-width: 50em) { - body { - margin: 1.5em 2ch; - padding: 1.5em 2ch; - } -} - -a:active, header a:active { - outline-style: solid; -} - -header, main { - margin: 0 auto; - max-width: 90ch; - padding: 1.5em 4ch; -} - -header { - border-radius: .25em .25em 0 0; -} - -main { - border-radius: 0 0 .25em .25em; -} - -summary { - cursor: pointer; -} - -.contents { - margin-top: 1.5em; -} - -main > section { - margin-bottom: 4.5em; -} - -.about-this-report > section { - margin-bottom: 3em; -} - -.summaries section { - margin-bottom: 3em; -} - -h2 { - margin-bottom: .75em; -} - -h3 { - margin-bottom: 1.5em; -} - -h4 { - margin-bottom: 1.5em; -} - -.report-parameters--container h4 { - margin-top: 1.5em; -} - -p { - margin: 1.5em 0; -} - -p:first-of-type { - margin-top: 0; -} - -p:last-of-type { - margin-bottom: 0; -} - -.contents li, .alerts li, .alert-types > ol > li { - margin-top: 1.5em; -} - -.alert-types h4 { - margin-bottom: 0; -} - -a { - border-radius: .125em; -} - -caption { - margin-bottom: 1.5em; - text-align: left; -} - -code, .request-method-n-url { - overflow-wrap: anywhere; - white-space: break-spaces; -} - -table { - border-collapse: collapse; -} - -.report-description--container, .report-parameters--container { - margin-left: 2ch; - padding: 0 2ch; -} - -.about-this-report h3, .summaries h3, .appendix h3 { - border-bottom: .05em solid; -} - -.alerts h4 { - text-align: center; -} - -.alerts ol { - padding-left: 0; -} - -.alerts--site-li { - border: .05em solid; - border-radius: .25em; - margin-left: 2ch; - padding: 1.5em 3ch; -} - -.contents ol { - list-style-position: inside; - list-style-type: square; - padding-left: 4ch; -} - -.contexts-list, .sites-list { - list-style-type: square; -} - -.risk-confidence-counts-table { - width: 100%; -} - -.risk-confidence-counts-table tr { - height: 4.5em; -} - -.risk-confidence-counts-table thead > tr { - height: 3em; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table th[scope="rowgroup"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.risk-confidence-counts-table th[scope="row"] { - padding-right: 5%; -} - -@media screen and (max-width: 50em) { - .risk-confidence-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.risk-confidence-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.risk-confidence-counts-table > tbody > tr { - border-top: .05em solid; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table td { - vertical-align: top; -} - -.risk-confidence-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.risk-confidence-counts-table td, .risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - text-align: right; -} - -.site-risk-counts-table { - width: 100%; -} - -.site-risk-counts-table tr { - height: 4.5em; -} - -.site-risk-counts-table thead > tr:first-of-type { - height: 3em; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table th[scope="col"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.site-risk-counts-table th[scope="row"] { - padding-right: 1%; -} - -@media screen and (max-width: 50em) { - .site-risk-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.site-risk-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.site-risk-counts-table > tbody > tr { - border-top: .05em solid; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table td { - vertical-align: top; -} - -.site-risk-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.site-risk-counts-table td, .site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - text-align: right; -} - -.alert-type-counts-table { - width: 100%; -} - -.alert-type-counts-table th, .alert-type-counts-table td { - padding: 0 1rem; - text-align: left; - vertical-align: top; -} - -.alert-type-counts-table td:nth-last-of-type(2) { - padding-left: 1.5rem; -} - -.alert-type-counts-table > tbody > tr { - border-bottom: 0.05em dotted; -} - -.alert-type-counts-table th[scope="col"] { - border-left: 1rem solid; -} - -.alert-type-counts-table th[scope="col"]:first-of-type { - border-left: 0; -} - -.alert-type-counts-table th[scope="col"]:last-of-type, .alert-type-counts-table td:last-of-type { - text-align: right; -} - -.alert-type-counts-table th[scope="col"], .alert-type-counts-table th[scope="row"] { - font-weight: normal; -} - -.alert-type-counts-table th[scope="row"], .alert-type-counts-table td { - padding-bottom: 1.5em; -} - -.alert-type-counts-table thead > th:first-of-type { - width: 45%; -} - -.alerts-table, .alert-types-table, .insights-table { - border-collapse: separate; - border-spacing: 2ch 1.5em; - width: 100%; -} - -.alerts-table th, .alerts-table td, .alert-types-table th, .alert-types-table td, .insights-table td, .insights-table th { - vertical-align: top; -} - -.alerts-table td, .alert-types-table td, .insights-table td { - overflow-wrap: anywhere; -} - -.alerts-table th, .alert-types-table th, .insights-table th { - padding: 0 1ch; -} - -.alerts-table td, .alert-types-table td { - padding: 0 2ch; -} - -.insights-table td { - padding: 0 1ch; -} - -.alerts-table summary { - margin-bottom: 1.5em; -} - -.alert-tags-list { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-tags-list > li { - margin-top: 0; -} - -.request-body, .response-body { - margin-top: 1.5em; -} - -.request-method-n-url { - margin-bottom: 0; -} - -.alert-types-table { - padding-top: 0; -} - -.alert-types-table th { - width: 20%; -} - -.alert-types-table ol { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-types-table li:not(:first-of-type) { - margin-top: 1.5em; -} - -p.alert-types-intro { - margin-bottom: 3em; -} - -.zap-logo { - height: 1em; - margin-right: .25ch; - width: 1em; -} - -h1, h2 { - font-family: Georgia, serif; -} - -.risk-level, .confidence-level, .included-risk-codes, .included-confidence-codes, .additional-info-percentages { - font-family: monospace, monospace; -} - -.context, .site, .request-method-n-url { - font-family: monospace, monospace; -} diff --git a/TestesRealizados1/Dev&Standard/zap32x32.png b/TestesRealizados1/Dev&Standard/zap32x32.png deleted file mode 100644 index 9c1019ffb2ad500434d78f20f5a624bd660e6735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1933 zcmV;82Xgp{P)LZ&X_*%IgUcU=kqE(b z4NRzXHHacGqA;V7EOd-rLRUsK6M0)>lNA+QA(1s>0WooNopVsi`f~3%&(A;3?F-PB zvOj!oo}80&pL3q?@9q2jJ@8;-E^rih7x)VQ$FTzF0Ce^0)w*%xMg@9CT^);$`@`-S z|D^%X0-G{2GScem>Zq-)#c><}&YnG+{?@;fz2@5u5&VQI{0HC&b5Eb8v=CMzq8Xh{uDUJ;6-8cvHPPw(V1AXlBMlio^B!;`1mR7lQz6stN1n` zVSRiJ3Jh}IHmwUh{p952jC=DbQ>IW{T+Bm{EyTg%86hH)s*G@RBZ6ZD zR~$s-xgh|tIK<*bMohZnrPKSTebm&{(An8JZUCD%Zw|w-XamM3aZ{E@QkJ_Sh=4&b zVlZMR6MN-LA+KI)MxOZY4_$EN7gpcl|GBy+*}SFI&@zE+1c5&ojb?% zH-610omUXmkc0pc4MCuY3JRI#ep;zPz!%CkF{7fMRjXD}R#rwLkr?x}`Sa(qYu7G1 z4zIhf6b}b*b0|Z?2bxNbAlb*&-!+hzmq$fKMaqhiM-T+Gw6t*h_U({ddb?6-2&w|A zpn{45bPqNps$5aDKvhCrw+1VURUz5a1;EaoJE^Lw8q=z_wl+#jOPTPwnarrD$C>b1 zeBZ~~fqr423P90ogC0=PH?8Vm*#v}(0|k?r!xzizShj2#GiT1Ey}f-@07XSb?AWn` zo)51w@$*j*Sf2pBs|*LhoR?u5{SD7JEun@R9Ak(IM2sO~gs2fb$L0Oj{d{ntiOR}K z4jw#6R#w)CK$a|7Ld#z-Gd=bqy@><~t0b(&SH%x3{Wghj{ro$E>8w7|8!?eI&lp@s zaK#WcLS%r`jo>*Bw)ZCgII)AS>wjbG)~z%&G>ix$H+M2U56vZe;WP9n69iWA)shSX z`fak)9$cP#M-^Drp9UIWRk0R)RT8QshN)UI2q2optfzJ|r}}xe?|y;IjENjOcI+Mi z7cX9-`|VS7cbpDGkWxfn15~wP#HQ4&KGGL8Zqzd_CM6=?Fb}vQxI!o{fa9gn`BpRU zy|It{{Ct|4nwT|f*5LO}o;*oeSs7W&e}iV^hCM-${BO{>Jm(%YOnIR)X)V55tW|8v z^2ET^D*YDvtkSPaPoj^^$IF?s{&lVgQFL zf4TNCRPNcLzb)TB`ne$0!%HlF+%?X3TygP?!H8f?C?W&GVvG#277}_4P&Z27wKi^_ z`UMY9O6QgM5f&|4M0R!--M6}buJEI=4km*jh{gB1;;i$G!4U@|f*8RtASQ%eXNt)N z2*#qQRjl#oYmeiff0@FG0rvrUs1Grl_V)4yJq|S&*HyA`hPcY4iwPqM T`!Z{P00000NkvXXu0mjf{kVU6 diff --git a/TestesRealizados1/Pen&Test/Pen&Test.html b/TestesRealizados1/Pen&Test/Pen&Test.html deleted file mode 100644 index 0dc6962..0000000 --- a/TestesRealizados1/Pen&Test/Pen&Test.html +++ /dev/null @@ -1,2794 +0,0 @@ - - - - - -ZAP by Checkmarx Scanning Report - - - - - -
-

ZAP by Checkmarx Scanning Report

-

- Generated with ZAP - on Thu 28 May 2026, at 08:58:18 -

-

ZAP Version: 2.17.0

-

- ZAP by Checkmarx -

-
- -
- -
-

Contents

- -
- -
-

About This Report

- - - -
-

Report Parameters

-
-

Contexts

- - -

No contexts were selected, so all contexts were included by default.

- - -

Sites

- -

The following sites were included:

-
    -
  • http://20.60.0.1:3000
  • -
- -

(If no sites were selected, all sites were included by default.)

-

An included site must also be within one of the included contexts for its data to be included in the report.

- -

Risk levels

-

- Included: - - High, Medium, Low, Informational -

-

- Excluded: - None - -

- -

Confidence levels

-

- Included: - - - User Confirmed, High, Medium, Low -

-

- Excluded: - - - User Confirmed, High, Medium, Low, False Positive -

-
-
-
- - -
- -
- -
-

Summaries

- -
-

Alert Counts by Risk and Confidence

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts for each level of risk and confidence included in the report.

-

(The percentages in brackets represent the count as a percentage of the total number of alerts included in the report, rounded to one decimal place.)

-
Confidence
User ConfirmedHighMediumLowTotal
RiskHigh0
(0.0%)
0
(0.0%)
0
(0.0%)
1
(10.0%)
1
(10.0%)
Medium0
(0.0%)
2
(20.0%)
2
(20.0%)
0
(0.0%)
4
(40.0%)
Low0
(0.0%)
0
(0.0%)
2
(20.0%)
1
(10.0%)
3
(30.0%)
Informational0
(0.0%)
0
(0.0%)
2
(20.0%)
0
(0.0%)
2
(20.0%)
Total0
(0.0%)
2
(20.0%)
6
(60.0%)
2
(20.0%)
10
(100%)
-
- -
-

Alert Counts by Site and Risk

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows, for each site for which one or more alerts were raised, the number of alerts raised at each risk level.

-

Alerts with a confidence level of "False Positive" have been excluded from these counts.

-

(The numbers in brackets are the number of alerts raised for the site at or above that risk level.)

-
Risk
- High
(= High) -
- Medium
(>= Medium) -
- Low
(>= Low) -
- Informational
(>= Informational) -
Sitehttp://20.60.0.1:30001
(1)
4
(5)
3
(8)
2
(10)
-
- -
-

Alert Counts by Alert Type

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts of each alert type, together with the alert type's risk level.

-

(The percentages in brackets represent each count as a percentage, rounded to one decimal place, of the total number of alerts included in this report.)

-
Alert typeRiskCount
SQL InjectionHigh1
(10.0%)
Content Security Policy (CSP) Header Not SetMedium5
(50.0%)
Cross-Domain MisconfigurationMedium5
(50.0%)
Missing Anti-clickjacking HeaderMedium3
(30.0%)
Session ID in URL RewriteMedium5
(50.0%)
Private IP DisclosureLow1
(10.0%)
Timestamp Disclosure - UnixLow5
(50.0%)
X-Content-Type-Options Header MissingLow5
(50.0%)
Modern Web ApplicationInformational5
(50.0%)
User Agent FuzzerInformational5
(50.0%)
Total10
-
- -
-

Insights

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows information that is likely to be very relevant to you, but which is not related to vulnerabilities, or potentially even related to the application in question.

-
LevelReasonSiteDescriptionStatistic
-
Medium
-
-
Exceeded Low
-
-
-
-
Percentage of memory used
-
-
93
-
-
Low
-
-
Warning
-
-
-
-
ZAP errors logged - see the zap.log file for details
-
-
381
-
-
Low
-
-
Warning
-
-
-
-
ZAP warnings logged - see the zap.log file for details
-
-
62
-
-
Low
-
-
Exceeded High
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 4xx
-
-
53 %
-
-
Info
-
-
Informational
-
-
-
-
Percentage of network failures
-
-
3 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 1xx
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 2xx
-
-
50 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 3xx
-
-
3 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 5xx
-
-
3 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/javascript
-
-
9 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/json
-
-
4 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/octet-stream
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/jpeg
-
-
6 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/png
-
-
3 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/x-icon
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/css
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/html
-
-
66 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/markdown
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/plain
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method GET
-
-
98 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method POST
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Count of total endpoints
-
-
171
-
-
Info
-
-
Exceeded Low
-
-
http://20.60.0.1:3000
-
-
Percentage of slow responses
-
-
14 %
-
-
-
- -
-

Alerts

-
    - - - - - - - - -
  1. -

    - Risk=High, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - SQL Injection (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/products/search?q=%27%28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          SQL injection may be possible.

          -
          Request
          - Request line and header section (307 bytes) - -
          GET http://20.60.0.1:3000/rest/products/search?q=%27%28 HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (362 bytes) - -
          HTTP/1.1 500 Internal Server Error
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 12:39:56 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -content-length: 309
          -
          -
          - - -
          - Response body (309 bytes) - -
          {
          -  "error": {
          -    "message": "SQLITE_ERROR: near \"(\": syntax error",
          -    "stack": "Error: SQLITE_ERROR: near \"(\": syntax error",
          -    "errno": 1,
          -    "code": "SQLITE_ERROR",
          -    "sql": "SELECT * FROM Products WHERE ((name LIKE '%'(%' OR description LIKE '%'(%') AND deletedAt IS NULL) ORDER BY name"
          -  }
          -}
          - - -
          Parameter
          q
          Attack
          '(
          Evidence
          HTTP/1.1 500 Internal Server Error
          Solution -

          Do not trust client side input, even if there is client side validation in place.

          - -

          In general, type check all data on the server side.

          - -

          If the application uses JDBC, use PreparedStatement or CallableStatement, with parameters passed by '?'

          - -

          If the application uses ASP, use ADO Command Objects with strong type checking and parameterized queries.

          - -

          If database Stored Procedures can be used, use them.

          - -

          Do *not* concatenate strings into queries in the stored procedure, or use 'exec', 'exec immediate', or equivalent functionality!

          - -

          Do not create dynamic SQL queries using simple string concatenation.

          - -

          Escape all data received from the client.

          - -

          Apply an 'allow list' of allowed characters, or a 'deny list' of disallowed characters in user input.

          - -

          Apply the principle of least privilege by using the least privileged database user possible.

          - -

          In particular, avoid using the 'sa' or 'db-owner' database users. This does not eliminate SQL injection, but minimizes its impact.

          - -

          Grant the minimum database access that is necessary for the application.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  2. - - - - -
  3. -

    - Risk=Medium, Confidence=High (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Content Security Policy (CSP) Header Not Set (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware. CSP provides a set of standard HTTP headers that allow website owners to declare approved sources of content that browsers should be allowed to load on that page — covered types are JavaScript, CSS, HTML frames, fonts, images and embeddable objects such as Java applets, ActiveX, audio and video files.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 12:33:00 GMT
          -ETag: W/"26af-19e6e92e42d"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 12:35:31 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Solution -

          Ensure that your web server, application server, load balancer, etc. is configured to set the Content-Security-Policy header.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - Session ID in URL Rewrite (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvkbSE6&sid=nEG8pvOYamU1m7K1AAAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          URL rewrite is used to track user session ID. The session ID may be disclosed via cross-site referer header. In addition, the session ID might be stored in browser history or server logs.

          -
          Request
          - Request line and header section (317 bytes) - -
          GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvkbSE6&sid=nEG8pvOYamU1m7K1AAAA HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (231 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/plain; charset=UTF-8
          -Content-Length: 612
          -Date: Thu, 28 May 2026 12:36:09 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (612 bytes) - -
          40{"sid":"f2XAKT1guDtHCa8WAAAB"}42["server started"]42["challenge solved",{"key":"directoryListingChallenge","name":"Confidential Document","challenge":"Confidential Document (Access a confidential document.)","flag":"8d2072c6b0a455608ca1a293dc0c9579883fc6a5","hidden":false,"isRestore":false,"codingChallenge":true}]42["challenge solved",{"key":"errorHandlingChallenge","name":"Error Handling","challenge":"Error Handling (Provoke an error that is neither very gracefully nor consistently handled.)","flag":"9c297196ecf8890bc1e900fcf3aebae8c9f9880a","hidden":false,"isRestore":false,"codingChallenge":false}]
          - - -
          Parameter
          sid
          Evidence
          nEG8pvOYamU1m7K1AAAA
          Solution -

          For secure content, put session ID in a cookie. To be even more secure consider using a combination of cookie and URL rewrite.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  4. - -
  5. -

    - Risk=Medium, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Cross-Domain Misconfiguration (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Web browser data loading may be possible, due to a Cross Origin Resource Sharing (CORS) misconfiguration on the web server.

          -
          Other info -

          The CORS misconfiguration on the web server permits cross-domain read requests from arbitrary third party domains, using unauthenticated APIs on this domain. Web browser implementations do not permit arbitrary third parties to read the response from authenticated APIs, however. This reduces the risk somewhat. This misconfiguration could be used by an attacker to access data that is available in an unauthenticated manner, but which uses some other form of security, such as IP address white-listing.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 12:33:00 GMT
          -ETag: W/"26af-19e6e92e42d"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 12:35:31 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          Access-Control-Allow-Origin: *
          Solution -

          Ensure that sensitive data is not available in an unauthenticated manner (using IP address white-listing, for instance).

          - -

          Configure the "Access-Control-Allow-Origin" HTTP header to a more restrictive set of domains, or remove all CORS headers entirely, to allow the web browser to enforce the Same Origin Policy (SOP) in a more restrictive manner.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - Missing Anti-clickjacking Header (1) -
        -
          -
        1. - - POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvkbSE4&sid=nEG8pvOYamU1m7K1AAAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The response does not protect against 'ClickJacking' attacks. It should include either Content-Security-Policy with 'frame-ancestors' directive or X-Frame-Options.

          -
          Request
          - Request line and header section (408 bytes) - -
          POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvkbSE4&sid=nEG8pvOYamU1m7K1AAAA HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Content-type: text/plain;charset=UTF-8
          -Content-Length: 2
          -Origin: http://20.60.0.1:3000
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (2 bytes) - -
          40
          - - -
          Response
          - Status line and header section (213 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/html
          -Content-Length: 2
          -Date: Thu, 28 May 2026 12:36:09 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (2 bytes) - -
          ok
          - - -
          Parameter
          x-frame-options
          Solution -

          Modern Web browsers support the Content-Security-Policy and X-Frame-Options HTTP headers. Ensure one of them is set on all web pages returned by your site/app.

          - -

          If you expect the page to be framed only by pages on your server (e.g. it's part of a FRAMESET) then you'll want to use SAMEORIGIN, otherwise if you never expect the page to be framed, you should use DENY. Alternatively consider implementing Content Security Policy's "frame-ancestors" directive.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  6. - - - - - - - - -
  7. -

    - Risk=Low, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Private IP Disclosure (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/admin/application-configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A private IP (such as 10.x.x.x, 172.x.x.x, 192.168.x.x) or an Amazon EC2 private hostname (for example, ip-10-0-56-78) has been found in the HTTP response body. This information might be helpful for further attacks targeting internal systems.

          -
          Other info -

          192.168.99.100:3000

          - -

          192.168.99.100:4200

          -
          Request
          - Request line and header section (314 bytes) - -
          GET http://20.60.0.1:3000/rest/admin/application-configuration HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (389 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Content-Length: 23513
          -ETag: W/"5bd9-reVonwE2GOcMzw2LpzIkSqyB2OE"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 12:36:08 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (23513 bytes) - -
          {"config":{"server":{"port":3000,"basePath":"","baseUrl":"http://localhost:3000"},"application":{"domain":"juice-sh.op","name":"OWASP Juice Shop","logo":"JuiceShop_Logo.png","favicon":"favicon_js.ico","theme":"bluegrey-lightgreen","showVersionNumber":true,"showGitHubLinks":true,"localBackupEnabled":true,"numberOfRandomFakeUsers":0,"altcoinName":"Juicycoin","privacyContactEmail":"donotreply@owasp-juice.shop","customMetricsPrefix":"juiceshop","chatBot":{"name":"Juicy the Smart Assistant","avatar":"JuicyChatBot.png","model":"gemma4:e4b","llmMaxRetries":2,"sampleQuestions":["CHATBOT_PROMPT_RECOMMENDATION_SUMMER_PARTY","CHATBOT_PROMPT_RECOMMENDATION_POPULAR","CHATBOT_PROMPT_RECOMMENDATION_SUGAR_FREE","CHATBOT_PROMPT_RECOMMENDATION_START_DAY","CHATBOT_PROMPT_RECOMMENDATION_SEASONAL"]},"social":{"blueSkyUrl":"https://bsky.app/profile/owasp-juice.shop","mastodonUrl":"https://fosstodon.org/@owasp_juiceshop","twitterUrl":"https://twitter.com/owasp_juiceshop","facebookUrl":"https://www.facebook.com/owasp.juiceshop","slackUrl":"https://owasp.org/slack/invite","redditUrl":"https://www.reddit.com/r/owasp_juiceshop","pressKitUrl":"https://github.com/OWASP/owasp-swag/tree/master/projects/juice-shop","nftUrl":"https://opensea.io/collection/juice-shop","questionnaireUrl":null},"recyclePage":{"topProductImage":"fruit_press.jpg","bottomProductImage":"apple_pressings.jpg"},"welcomeBanner":{"showOnFirstStart":true,"title":"Welcome to OWASP Juice Shop!","message":"<p>Being a web application with a vast number of intended security vulnerabilities, the <strong>OWASP Juice Shop</strong> is supposed to be the opposite of a best practice or template application for web developers: It is an awareness, training, demonstration and exercise tool for security risks in modern web applications. The <strong>OWASP Juice Shop</strong> is an open-source project hosted by the non-profit <a href='https://owasp.org' target='_blank'>Open Worldwide Application Security Project (OWASP)</a> and is developed and maintained by volunteers. Check out the link below for more information and documentation on the project.</p><h1><a href='https://owasp-juice.shop' target='_blank'>https://owasp-juice.shop</a></h1>"},"cookieConsent":{"message":"This website uses fruit cookies to ensure you get the juiciest tracking experience.","dismissText":"Me want it!","linkText":"But me wait!","linkUrl":"https://www.youtube.com/watch?v=9PnbKL3wuH4"},"securityTxt":{"contact":"mailto:donotreply@owasp-juice.shop","encryption":"https://keybase.io/bkimminich/pgp_keys.asc?fingerprint=19c01cb7157e4645e9e2c863062a85a8cbfbdcda","acknowledgements":"/#/score-board","hiring":"/#/jobs","csaf":"/.well-known/csaf/provider-metadata.json"},"promotion":{"video":"owasp_promo.mp4","subtitles":"owasp_promo.vtt"},"easterEggPlanet":{"name":"Orangeuze","overlayMap":"orangemap2k.avif"},"googleOauth":{"clientId":"1005568560502-6hm16lef8oh46hr2d98vf2ohlnj4nfhq.apps.googleusercontent.com","authorizedRedirects":[{"uri":"https://demo.owasp-juice.shop"},{"uri":"https://juice-shop.herokuapp.com"},{"uri":"https://preview.owasp-juice.shop"},{"uri":"https://juice-shop-staging.herokuapp.com"},{"uri":"https://juice-shop.wtf"},{"uri":"http://localhost:3000","proxy":"https://local3000.owasp-juice.shop"},{"uri":"http://127.0.0.1:3000","proxy":"https://local3000.owasp-juice.shop"},{"uri":"http://localhost:4200","proxy":"https://local4200.owasp-juice.shop"},{"uri":"http://127.0.0.1:4200","proxy":"https://local4200.owasp-juice.shop"},{"uri":"http://192.168.99.100:3000","proxy":"https://localmac.owasp-juice.shop"},{"uri":"http://192.168.99.100:4200","proxy":"https://localmac.owasp-juice.shop"},{"uri":"http://penguin.termina.linux.test:3000","proxy":"https://localchromeos.owasp-juice.shop"},{"uri":"http://penguin.termina.linux.test:4200","proxy":"https://localchromeos.owasp-juice.shop"}]}},"challenges":{"showSolvedNotifications":true,"showHints":true,"showMitigations":true,"codingChallengesEnabled":"solved","restrictToTutorialsFirst":false,"overwriteUrlForProductTamperingChallenge":"https://owasp.slack.com","xssBonusPayload":"<iframe width=\"100%\" height=\"166\" scrolling=\"no\" frameborder=\"no\" allow=\"autoplay\" src=\"https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/771984076&color=%23ff5500&auto_play=true&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true\"></iframe>","safetyMode":"auto","csafHashValue":"7e7ce7c65db3bf0625fcea4573d25cff41f2f7e3474f2c74334b14fc65bb4fd26af802ad17a3a03bf0eee6827a00fb8f7905f338c31b5e6ea9cb31620242e843","metricsIgnoredUserAgents":["Prometheus","Alloy","promscrape","otelcol"]},"hackingInstructor":{"isEnabled":true,"avatarImage":"JuicyBot.png","hintPlaybackSpeed":"normal"},"products":[{"name":"Apple Juice (1000ml)","price":1.99,"deluxePrice":0.99,"limitPerUser":5,"description":"The all-time classic.","image":"apple_juice.jpg","reviews":[{"text":"One of my favorites!","author":"admin"},{"text":"Great! We'll have an apple party. Everyone brings an apple and - STUFFS IT DOWN EACH OTHER'S THROAT!","author":"basil"}]},{"name":"Orange Juice (1000ml)","description":"Made from oranges hand-picked by Uncle Dittmeyer.","price":2.99,"deluxePrice":2.49,"image":"orange_juice.jpg","reviews":[{"text":"y0ur f1r3wall needs m0r3 musc13","author":"uvogin"}]},{"name":"Eggfruit Juice (500ml)","description":"Now with even more exotic flavour.","price":8.99,"image":"eggfruit_juice.jpg","reviews":[{"text":"I bought it, would buy again. 5/7","author":"admin"}]},{"name":"Raspberry Juice (1000ml)","description":"Made from blended Raspberry Pi, water and sugar.","price":4.99,"image":"raspberry_juice.jpg"},{"name":"Lemon Juice (500ml)","description":"Sour but full of vitamins.","price":2.99,"deluxePrice":1.99,"limitPerUser":5,"image":"lemon_juice.jpg"},{"name":"Banana Juice (1000ml)","description":"Monkeys love it the most.","price":1.99,"image":"banana_juice.jpg","reviews":[{"text":"Fry liked it too.","author":"bender"}]},{"name":"OWASP Juice Shop T-Shirt","description":"Real fans wear it 24/7!","price":22.49,"limitPerUser":5,"image":"fan_shirt.jpg"},{"name":"OWASP Juice Shop CTF Girlie-Shirt","description":"For serious Capture-the-Flag heroines only!","price":22.49,"image":"fan_girlie.jpg"},{"name":"OWASP SSL Advanced Forensic Tool (O-Saft)","description":"O-Saft is an easy to use tool to show information about SSL certificate and tests the SSL connection according given list of ciphers and various SSL configurations.","price":0.01,"image":"orange_juice.jpg","urlForProductTamperingChallenge":"https://www.owasp.org/index.php/O-Saft"},{"name":"Christmas Super-Surprise-Box (2014 Edition)","description":"Contains a random selection of 10 bottles (each 500ml) of our tastiest juices and an extra fan shirt for an unbeatable price!","price":29.99,"image":"undefined.jpg","useForChristmasSpecialChallenge":true},{"name":"Rippertuer Special Juice","description":"Contains a magical collection of the rarest fruits gathered from all around the world, like Cherymoya Annona cherimola, Jabuticaba Myrciaria cauliflora, Bael Aegle marmelos... and others, at an unbelievable price! <br/><span style=\"color:red;\">This item has been made unavailable because of lack of safety standards.</span>","price":16.99,"image":"undefined.jpg","keywordsForPastebinDataLeakChallenge":["hueteroneel","eurogium edule"]},{"name":"OWASP Juice Shop Sticker (2015/2016 design)","description":"Die-cut sticker with the official 2015/2016 logo. By now this is a rare collectors item. <em>Out of stock!</em>","price":999.99,"image":"sticker.png","deletedDate":"2017-04-28"},{"name":"OWASP Juice Shop Iron-Ons (16pcs)","description":"Upgrade your clothes with washer safe <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">iron-ons</a> of the OWASP Juice Shop or CTF Extension logo!","price":14.99,"image":"iron-on.jpg"},{"name":"OWASP Juice Shop Magnets (16pcs)","description":"Your fridge will be even cooler with these OWASP Juice Shop or CTF Extension logo <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">magnets</a>!","price":15.99,"image":"magnets.jpg"},{"name":"OWASP Juice Shop Sticker Page","description":"Massive decoration opportunities with these OWASP Juice Shop or CTF Extension <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">sticker pages</a>! Each page has 16 stickers on it.","price":9.99,"image":"sticker_page.jpg"},{"name":"OWASP Juice Shop Sticker Single","description":"Super high-quality vinyl <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">sticker single</a> with the OWASP Juice Shop or CTF Extension logo! The ultimate laptop decal!","price":4.99,"image":"sticker_single.jpg"},{"name":"OWASP Juice Shop Temporary Tattoos (16pcs)","description":"Get one of these <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">temporary tattoos</a> to proudly wear the OWASP Juice Shop or CTF Extension logo on your skin! If you tweet a photo of yourself with the tattoo, you get a couple of our stickers for free! Please mention <a href=\"https://twitter.com/owasp_juiceshop\" target=\"_blank\"><code>@owasp_juiceshop</code></a> in your tweet!","price":14.99,"image":"tattoo.jpg","reviews":[{"text":"I straight-up gots nuff props fo'these tattoos!","author":"rapper"}]},{"name":"OWASP Juice Shop Mug","description":"Black mug with regular logo on one side and CTF logo on the other! Your colleagues will envy you!","price":21.99,"image":"fan_mug.jpg"},{"name":"OWASP Juice Shop Hoodie","description":"Mr. Robot-style apparel. But in black. And with logo.","price":49.99,"image":"fan_hoodie.jpg"},{"name":"OWASP Juice Shop-CTF Velcro Patch","description":"4x3.5\" embroidered patch with velcro backside. The ultimate decal for every tactical bag or backpack!","price":2.92,"quantity":5,"limitPerUser":5,"image":"velcro-patch.jpg","reviews":[{"text":"This thang would look phat on Bobby's jacked fur coat!","author":"rapper"},{"text":"Looks so much better on my uniform than the boring Starfleet symbol.","author":"jim"}]},{"name":"Woodruff Syrup \"Forest Master X-Treme\"","description":"Harvested and manufactured in the Black Forest, Germany. Can cause hyperactive behavior in children. Can cause permanent green tongue when consumed undiluted.","price":6.99,"image":"woodruff_syrup.jpg"},{"name":"Green Smoothie","description":"Looks poisonous but is actually very good for your health! Made from green cabbage, spinach, kiwi and grass.","price":1.99,"image":"green_smoothie.jpg","reviews":[{"text":"Fresh out of a replicator.","author":"jim"}]},{"name":"Quince Juice (1000ml)","description":"Juice of the <em>Cydonia oblonga</em> fruit. Not exactly sweet but rich in Vitamin C.","price":4.99,"image":"quince.jpg"},{"name":"Apple Pomace","description":"Finest pressings of apples. Allergy disclaimer: Might contain traces of worms. Can be <a href=\"/#recycle\">sent back to us</a> for recycling.","price":0.89,"limitPerUser":5,"image":"apple_pressings.jpg"},{"name":"Fruit Press","description":"Fruits go in. Juice comes out. Pomace you can send back to us for recycling purposes.","price":89.99,"image":"fruit_press.jpg"},{"name":"OWASP Juice Shop Logo (3D-printed)","description":"This rare item was designed and handcrafted in Sweden. This is why it is so incredibly expensive despite its complete lack of purpose.","price":99.99,"image":"3d_keychain.jpg","fileForRetrieveBlueprintChallenge":"JuiceShop.stl","exifForBlueprintChallenge":["OpenSCAD"]},{"name":"Juice Shop Artwork","description":"Unique masterpiece painted with different kinds of juice on 90g/m² lined paper.","price":278.74,"quantity":0,"image":"artwork.jpg","deletedDate":"2020-12-24"},{"name":"Global OWASP WASPY Award 2017 Nomination","description":"Your chance to nominate up to three quiet pillars of the OWASP community ends 2017-06-30! <a href=\"https://www.owasp.org/index.php/WASPY_Awards_2017\">Nominate now!</a>","price":0.03,"image":"waspy.png","deletedDate":"2017-07-01"},{"name":"Strawberry Juice (500ml)","description":"Sweet & tasty!","price":3.99,"image":"strawberry_juice.jpeg"},{"name":"Carrot Juice (1000ml)","description":"As the old German saying goes: \"Carrots are good for the eyes. Or has anyone ever seen a rabbit with glasses?\"","price":2.99,"image":"carrot_juice.jpeg","reviews":[{"text":"0 st4rs f0r 7h3 h0rr1bl3 s3cur17y","author":"uvogin"}]},{"name":"OWASP Juice Shop Sweden Tour 2017 Sticker Sheet (Special Edition)","description":"10 sheets of Sweden-themed stickers with 15 stickers on each.","price":19.1,"image":"stickersheet_se.png","deletedDate":"2017-09-20"},{"name":"Pwning OWASP Juice Shop","description":"<em>The official Companion Guide</em> by Björn Kimminich available <a href=\"https://leanpub.com/juice-shop\">for free on LeanPub</a> and also <a href=\"https://pwning.owasp-juice.shop\">readable online</a>!","price":5.99,"image":"cover_small.jpg","reviews":[{"text":"Even more interesting than watching Interdimensional Cable!","author":"morty"}]},{"name":"Melon Bike (Comeback-Product 2018 Edition)","description":"The wheels of this bicycle are made from real water melons. You might not want to ride it up/down the curb too hard.","price":2999,"quantity":3,"limitPerUser":1,"image":"melon_bike.jpeg"},{"name":"OWASP Juice Shop Coaster (10pcs)","description":"Our 95mm circle coasters are printed in full color and made from thick, premium coaster board.","price":19.99,"quantity":0,"image":"coaster.jpg"},{"name":"OWASP Snakes and Ladders - Web Applications","description":"This amazing web application security awareness board game is <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1969196030\">available for Tabletop Simulator on Steam Workshop</a> now!","price":0.01,"quantity":8,"image":"snakes_ladders.jpg","reviews":[{"text":"Wait for a 10$ Steam sale of Tabletop Simulator!","author":"bjoernOwasp"}]},{"name":"OWASP Snakes and Ladders - Mobile Apps","description":"This amazing mobile app security awareness board game is <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1970691216\">available for Tabletop Simulator on Steam Workshop</a> now!","price":0.01,"quantity":0,"image":"snakes_ladders_m.jpg","reviews":[{"text":"Here yo' learn how tha fuck ta not show yo' goddamn phone on camera!","author":"rapper"}]},{"name":"OWASP Juice Shop Holographic Sticker","description":"Die-cut holographic sticker. Stand out from those 08/15-sticker-covered laptops with this shiny beacon of 80's coolness!","price":2,"quantity":0,"image":"holo_sticker.png","reviews":[{"text":"Rad, dude!","author":"rapper"},{"text":"Looks spacy on Bones' new tricorder!","author":"jim"},{"text":"Will put one on the Planet Express ship's bumper!","author":"bender"}]},{"name":"OWASP Juice Shop \"King of the Hill\" Facemask","description":"Facemask with compartment for filter from 50% cotton and 50% polyester.","price":13.49,"quantity":0,"limitPerUser":1,"image":"fan_facemask.jpg","reviews":[{"text":"K33p5 y0ur ju1cy 5plu773r 70 y0ur53lf!","author":"uvogin"},{"text":"Puny mask for puny human weaklings!","author":"bender"}]},{"name":"Juice Shop Adversary Trading Card (Common)","description":"Common rarity \"Juice Shop\" card for the <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSecLEakawSQ56lBe2JOSbFwFYrKDCIN7Yd3iHFdQc5z8ApwdQ/viewform\">Adversary Trading Cards</a> CCG.","price":2.99,"deluxePrice":0.99,"deletedDate":"2020-11-30","limitPerUser":5,"image":"ccg_common.png","reviews":[{"text":"Ooooh, puny human playing Mau Mau, now?","author":"bender"}]},{"name":"Juice Shop Adversary Trading Card (Super Rare)","description":"Super rare \"Juice Shop\" card with holographic foil-coating for the <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSecLEakawSQ56lBe2JOSbFwFYrKDCIN7Yd3iHFdQc5z8ApwdQ/viewform\">Adversary Trading Cards</a> CCG.","price":99.99,"deluxePrice":69.99,"deletedDate":"2020-11-30","quantity":2,"limitPerUser":1,"image":"ccg_foil.png","reviews":[{"text":"Mau Mau with bling-bling? Humans are so pathetic!","author":"bender"}]},{"name":"Juice Shop \"Permafrost\" 2020 Edition","description":"Exact version of <a href=\"https://github.com/juice-shop/juice-shop/releases/tag/v9.3.1-PERMAFROST\">OWASP Juice Shop that was archived on 02/02/2020</a> by the GitHub Archive Program and ultimately went into the <a href=\"https://github.blog/2020-07-16-github-archive-program-the-journey-of-the-worlds-open-source-code-to-the-arctic\">Arctic Code Vault</a> on July 8. 2020 where it will be safely stored for at least 1000 years.","price":9999.99,"quantity":1,"limitPerUser":1,"image":"permafrost.jpg","reviews":[{"text":"🧊 Let it go, let it go 🎶 Can't hold it back anymore 🎶 Let it go, let it go 🎶 Turn away and slam the door ❄️","author":"rapper"}]},{"name":"Best Juice Shop Salesman Artwork","description":"Unique digital painting depicting Stan, our most qualified and almost profitable salesman. He made a succesful carreer in selling used ships, coffins, krypts, crosses, real estate, life insurance, restaurant supplies, voodoo enhanced asbestos and courtroom souvenirs before <em>finally</em> adding his expertise to the Juice Shop marketing team.","price":5000,"quantity":1,"image":"artwork2.jpg","reviews":[{"text":"I'd stand on my head to make you a deal for this piece of art.","author":"stan"},{"text":"Just when my opinion of humans couldn't get any lower, along comes Stan...","author":"bender"}]},{"name":"OWASP Juice Shop Card (non-foil)","description":"Mythic rare <small><em>(obviously...)</em></small> card \"OWASP Juice Shop\" with three distinctly useful abilities. Alpha printing, mint condition. A true collectors piece to own!","price":1000,"quantity":3,"limitPerUser":1,"image":"card_alpha.jpg","reviews":[{"text":"DO NOT PLAY WITH THIS! Double-sleeve, then put it in the GitHub Arctic Vault for perfect preservation and boost of secondary market value!","author":"accountant"}]},{"name":"20th Anniversary Celebration Ticket","description":"Get your <a href=\"https://20thanniversary.owasp.org/\" target=\"_blank\">free 🎫 for OWASP 20th Anniversary Celebration</a> online conference! Hear from world renowned keynotes and special speakers, network with your peers and interact with our event sponsors. With an anticipated 10k+ attendees from around the world, you will not want to miss this live on-line event!","price":1e-20,"deletedDate":"2021-09-25","limitPerUser":1,"image":"20th.jpeg","reviews":[{"text":"I'll be there! Will you, too?","author":"bjoernOwasp"}]},{"name":"OWASP Juice Shop LEGO™ Tower","description":"Want to host a Juice Shop CTF in style? Build <a href=\"https://github.com/OWASP/owasp-swag/blob/master/projects/juice-shop/lego/OWASP%20JuiceShop%20Pi-server%201.2.pdf\" target=\"_blank\">your own LEGO™ tower</a> which holds four Raspberry Pi 4 models with PoE HAT modules <a href=\"https://github.com/juice-shop/multi-juicer/blob/main/guides/raspberry-pi/raspberry-pi.md\" target=\"_blank\">running a MultiJuicer Kubernetes cluster</a>! Wire to a switch and connect to your network to have an out-of-the-box ready CTF up in no time!","price":799,"quantity":3,"limitPerUser":1,"image":"lego_case.jpg","reviews":[{"text":"Check out the /#/photo-wall for some impressions of the assembly process!","author":"bjoernOwasp"}]},{"name":"DSOMM & Juice Shop User Day Ticket","description":"You are going to the OWASP Global AppSec San Francisco 2024? <a href=\"https://www.eventbrite.com/e/owasp-global-appsec-san-francisco-2024-tickets-723699172707\" target=\"_blank\">Get a ticket<sup>*</sup></a> for this amazing side event as well! Check the juice-packed agenda <a href=\"https://owasp.org/www-project-juice-shop/#div-userday2024\" target=\"_blank\">here</a> for all the details!<br><br><small><small><sup>*</sup>=scroll down to <strong>Elevate: DSOMM and Juice Shop User Day (Sept. 25)</strong> after clicking <em>Get Tickets</em> on Eventbrite. Ticket price set to only covers fees for room, AV, and catering throughout the day.</small></small>","price":55.2,"deletedDate":"2024-09-26","limitPerUser":1,"image":"user_day_ticket.png","reviews":[{"text":"The DSOMM Live Assessment session will even use Juice Shop as its \"real-world\" example!","author":"timo"},{"text":"We will showcase the amazing MultiJuicer Lego Tower at this event!","author":"jannik"}]},{"name":"Pineapple Juice (1000ml)","description":"Tropical refreshment from the finest sun-ripened pineapples.","price":2.99,"image":"pineapple_juice.png"},{"name":"Melon Juice (1000ml)","description":"Refreshing and sweet juice made from ripe melons.","price":2.49,"image":"melon_juice.png"},{"name":"Grape Juice (1000ml)","description":"Deep purple and full of antioxidants from selected grapes.","price":2.99,"image":"grape_juice.png"},{"name":"Dragonfruit Juice (500ml)","description":"Exotic and vibrant juice made from dragonfruit.","price":3.99,"image":"dragonfruit_juice.png"},{"name":"Berry Juice (1000ml)","description":"A delicious blend of fresh forest berries.","price":3.49,"image":"berry_juice.png"},{"name":"Basil Smoothie","description":"A unique blend of fresh basil and ginger for a healthy kick.","price":2.99,"image":"basil_smoothie.png","reviews":[{"text":"(ง'̀-'́)ง","author":"basil"}]},{"name":"Bragă (500ml)","description":"Traditional Balkan drink made from fermented millet. Lightly sweet-sour, refreshing, and naturally energizing.","price":2.49,"image":"braga.jpg"},{"name":"Elderflower Cordial (500ml)","description":"Floral and fragrant soft drink made from elderflowers. Traditionally enjoyed chilled.","price":3.29,"image":"elderflower_cordial.jpg"},{"name":"Sea Buckthorn Juice (500ml)","description":"Tangy and slightly sour juice, extremely rich in Vitamin C and antioxidants.","price":3.99,"image":"sea_buckthorn_juice.jpg"},{"name":"Pomegranate Drink (500ml)","description":"A sweet and tart refreshment inspired by classic grenadine flavors.","price":4.49,"image":"pomegranate_drink.jpg"}],"memories":[{"image":"magn(et)ificent!-1571814229653.jpg","caption":"Magn(et)ificent!","user":"bjoernGoogle"},{"image":"my-rare-collectors-item!-[̲̅$̲̅(̲̅-͡°-͜ʖ-͡°̲̅)̲̅$̲̅]-1572603645543.jpg","caption":"My rare collectors item! [̲̅$̲̅(̲̅ ͡° ͜ʖ ͡°̲̅)̲̅$̲̅]","user":"bjoernGoogle"},{"image":"favorite-hiking-place.png","caption":"I love going hiking here...","geoStalkingMetaSecurityQuestion":14,"geoStalkingMetaSecurityAnswer":"Daniel Boone National Forest"},{"image":"IMG_4253.jpg","caption":"My old workplace...","geoStalkingVisualSecurityQuestion":10,"geoStalkingVisualSecurityAnswer":"ITsec"},{"image":"BeeHaven.png","caption":"Welcome to the Bee Haven (/#/bee-haven)🐝","user":"evm"},{"image":"sorted-the-pieces,-starting-assembly-process-1721152307290.jpg","caption":"Sorted the pieces, starting assembly process...","user":"bjoernOwasp"},{"image":"building-something-literally-bottom-up-1721152342603.jpg","caption":"Building something literally bottom up...","user":"bjoernOwasp"},{"image":"putting-in-the-hardware-1721152366854.jpg","caption":"Putting in the hardware...","user":"bjoernOwasp"},{"image":"everything-up-and-running!-1721152385146.jpg","caption":"Everything up and running!","user":"bjoernOwasp"}],"ctf":{"showFlagsInNotifications":false,"showCountryDetailsInNotifications":"none","countryMapping":null,"systemWideNotifications":{"url":null,"pollFrequencySeconds":null}}}}
          - - -
          Evidence
          192.168.99.100:3000
          Solution -

          Remove the private IP address from the HTTP response body. For comments, use JSP/ASP/PHP comment instead of HTML/JavaScript comment which can be seen by client browsers.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - X-Content-Type-Options Header Missing (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvkbS2E - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

          -
          Other info -

          This issue still applies to error type pages (401, 403, 500, etc.) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

          - -

          At "High" threshold this scan rule will not alert on client or server error responses.

          -
          Request
          - Request line and header section (292 bytes) - -
          GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvkbS2E HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (230 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/plain; charset=UTF-8
          -Content-Length: 96
          -Date: Thu, 28 May 2026 12:36:08 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (96 bytes) - -
          0{"sid":"nEG8pvOYamU1m7K1AAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
          - - -
          Parameter
          x-content-type-options
          Solution -

          Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

          - -

          If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  8. - -
  9. -

    - Risk=Low, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Timestamp Disclosure - Unix (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A timestamp was disclosed by the application/web server. - Unix

          -
          Other info -

          1666666667, which evaluates to: 2022-10-24 22:57:47.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 12:33:00 GMT
          -ETag: W/"26af-19e6e92e42d"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 12:35:31 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          1666666667
          Solution -

          Manually confirm that the timestamp data is not sensitive, and that the data cannot be aggregated to disclose exploitable patterns.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  10. - - - - - - -
  11. -

    - Risk=Informational, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Modern Web Application (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The application appears to be a modern web application. If you need to explore it automatically then the Ajax Spider may well be more effective than the standard one.

          -
          Other info -

          No links have been found while there are scripts, which is an indication that this is a modern web application.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 12:33:00 GMT
          -ETag: W/"26af-19e6e92e42d"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 12:35:31 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          Solution -

          This is an informational alert and so no changes are required.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - User Agent Fuzzer (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=websocket&sid=ORXVHK2iM9FnA7rnAAAI - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags -
            -
          • - CUSTOM_PAYLOADS = -
          • -
          • - POLICY_PENTEST = -
          • -
          • - SYSTEMIC -
          • -
          -
          Alert description -

          Check for differences in response based on fuzzed User Agent (eg. mobile sites, access as a Search Engine Crawler). Compares the response statuscode and the hashcode of the response body with the original response.

          -
          Request
          - Request line and header section (557 bytes) - -
          GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=websocket&sid=ORXVHK2iM9FnA7rnAAAI HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Sec-WebSocket-Version: 13
          -Origin: http://20.60.0.1:3000
          -Sec-WebSocket-Key: u649l9b9D6JhCVZVqb3H3w==
          -Connection: keep-alive, Upgrade
          -Cookie: language=en; continueCode=y1OzBZxNpnLrM5WmgEKv8XakQ7DA6LcQGJ6yOlV9Pow1jYqbz2eRB34oE5mM; welcomebanner_status=dismiss
          -Pragma: no-cache
          -Cache-Control: no-cache
          -Upgrade: websocket
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (92 bytes) - -
          HTTP/1.1 400 Bad Request
          -Connection: close
          -Content-type: text/html
          -Content-Length: 18
          -
          -
          - - -
          - Response body (18 bytes) - -
          Session ID unknown
          - - -
          Parameter
          Header User-Agent
          Attack
          Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  12. - - - -
-
- -
-

Appendix

- -
-

Alert Types

-

This section contains additional information on the types of alerts in the report.

-
    -
  1. -

    SQL Injection

    - - - - - - - - - - - - - - - - - -
    Source - - raised by an active scanner (SQL Injection) - -
    CWE ID89
    WASC ID19
    Reference -
      -
    1. https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
    2. -
    -
    -
  2. -
  3. -

    Content Security Policy (CSP) Header Not Set

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Content Security Policy (CSP) Header Not Set) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP
    2. -
    3. https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html
    4. -
    5. https://www.w3.org/TR/CSP/
    6. -
    7. https://w3c.github.io/webappsec-csp/
    8. -
    9. https://web.dev/articles/csp
    10. -
    11. https://caniuse.com/#feat=contentsecuritypolicy
    12. -
    13. https://content-security-policy.com/
    14. -
    -
    -
  4. -
  5. -

    Cross-Domain Misconfiguration

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Cross-Domain Misconfiguration) - -
    CWE ID264
    WASC ID14
    Reference -
      -
    1. https://vulncat.fortify.com/en/detail?category=HTML5&subcategory=Overly%20Permissive%20CORS%20Policy
    2. -
    -
    -
  6. -
  7. -

    Missing Anti-clickjacking Header

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Anti-clickjacking Header) - -
    CWE ID1021
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options
    2. -
    -
    -
  8. -
  9. -

    Session ID in URL Rewrite

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Session ID in URL Rewrite) - -
    CWE ID598
    WASC ID13
    Reference -
      -
    1. https://seclists.org/webappsec/2002/q4/111
    2. -
    -
    -
  10. -
  11. -

    Private IP Disclosure

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Private IP Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://datatracker.ietf.org/doc/html/rfc1918
    2. -
    -
    -
  12. -
  13. -

    Timestamp Disclosure - Unix

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Timestamp Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://cwe.mitre.org/data/definitions/200.html
    2. -
    -
    -
  14. -
  15. -

    X-Content-Type-Options Header Missing

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (X-Content-Type-Options Header Missing) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/compatibility/gg622941(v=vs.85)
    2. -
    3. https://owasp.org/www-community/Security_Headers
    4. -
    -
    -
  16. -
  17. -

    Modern Web Application

    - - - - - - - - -
    Source - - raised by a passive scanner (Modern Web Application) - -
    -
  18. -
  19. -

    User Agent Fuzzer

    - - - - - - - - - - - -
    Source - - raised by an active scanner (User Agent Fuzzer) - -
    Reference -
      -
    1. https://owasp.org/wstg
    2. -
    -
    -
  20. -
-
-
- -
- - - - - diff --git a/TestesRealizados1/Pen&Test/normalize/LICENSE.md b/TestesRealizados1/Pen&Test/normalize/LICENSE.md deleted file mode 100644 index 43b5ddc..0000000 --- a/TestesRealizados1/Pen&Test/normalize/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# The MIT License (MIT) - -Copyright © Nicolas Gallagher and Jonathan Neal - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/TestesRealizados1/Pen&Test/normalize/normalize.css b/TestesRealizados1/Pen&Test/normalize/normalize.css deleted file mode 100644 index 192eb9c..0000000 --- a/TestesRealizados1/Pen&Test/normalize/normalize.css +++ /dev/null @@ -1,349 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} diff --git a/TestesRealizados1/Pen&Test/themes/original/colors.css b/TestesRealizados1/Pen&Test/themes/original/colors.css deleted file mode 100644 index fd3b963..0000000 --- a/TestesRealizados1/Pen&Test/themes/original/colors.css +++ /dev/null @@ -1,139 +0,0 @@ -body { - background-color: #306aa0; - background-image: radial-gradient(circle at top left, #fff 0%, #8ce1d6 15em, #306aa0 100em, #386095 100%); -} - -main, footer { - background-color: #fff; -} - -header { - background-color: #00549e; - color: #fff; -} - -a:link { - color: #004380; -} - -a:visited { - color: #770d67; -} - -a:focus { - background-color: #ffd54d; -} - -a:hover { - background-color: #ffd54d; -} - -a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -header a:link { - color: #f2f7fd; -} - -header a:visited { - color: #f2b5e9; -} - -header a:focus { - background-color: #ffd54d; - color: #004380; -} - -header a:hover { - background-color: #ffd54d; - color: #004380; -} - -header a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #fff6db; -} - -summary:focus { - background-color: #ffd54d; -} - -summary:hover { - background-color: #ffd54d; -} - -summary:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -h2, h3, h4, h5, h6 { - color: #00549e; -} - -.risk-level, .confidence-level { - color: #00549e; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - color: #00549e; -} - -.risk-confidence-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - color: #00549e; -} - -.site-risk-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.alert-type-counts-table > tbody > tr { - border-bottom-color: #00549e; -} - -.alert-type-counts-table th[scope="col"] { - background-color: #00549e; - color: #fff; -} - -.alert-type-counts-table th[scope="col"] { - border-left-color: #fff; -} - -.alerts-table th, .alert-types-table th { - background-color: #306aa0; - color: #fff; -} - -.additional-info-percentages { - color: #00549e; -} - -.insights-table > tbody > tr { - border-bottom-color: #00549e; -} - -.insights-table th[scope="col"] { - background-color: #00549e; - border-left-color: #fff; - color: #fff; -} diff --git a/TestesRealizados1/Pen&Test/themes/original/main.css b/TestesRealizados1/Pen&Test/themes/original/main.css deleted file mode 100644 index 050bd3f..0000000 --- a/TestesRealizados1/Pen&Test/themes/original/main.css +++ /dev/null @@ -1,417 +0,0 @@ -*, *::after, *::before { - box-sizing: border-box; -} - -h1, h2, h3, h4, h5, h6 { - margin: 0; - padding: 0; -} - -pre, ul { - margin: 0; -} - -ol { - list-style-type: none; -} - -h1 { - font-size: 3em; -} - -h2 { - font-size: 2em; -} - -h3, h4, h5, h6 { - font-size: 1em; -} - -html { - box-sizing: border-box; - font-family: Verdana, sans-serif; - line-height: 1.5; -} - -body { - margin: 1.5em 0; -} - -@media screen and (min-width: 50em) { - body { - margin: 1.5em 2ch; - padding: 1.5em 2ch; - } -} - -a:active, header a:active { - outline-style: solid; -} - -header, main { - margin: 0 auto; - max-width: 90ch; - padding: 1.5em 4ch; -} - -header { - border-radius: .25em .25em 0 0; -} - -main { - border-radius: 0 0 .25em .25em; -} - -summary { - cursor: pointer; -} - -.contents { - margin-top: 1.5em; -} - -main > section { - margin-bottom: 4.5em; -} - -.about-this-report > section { - margin-bottom: 3em; -} - -.summaries section { - margin-bottom: 3em; -} - -h2 { - margin-bottom: .75em; -} - -h3 { - margin-bottom: 1.5em; -} - -h4 { - margin-bottom: 1.5em; -} - -.report-parameters--container h4 { - margin-top: 1.5em; -} - -p { - margin: 1.5em 0; -} - -p:first-of-type { - margin-top: 0; -} - -p:last-of-type { - margin-bottom: 0; -} - -.contents li, .alerts li, .alert-types > ol > li { - margin-top: 1.5em; -} - -.alert-types h4 { - margin-bottom: 0; -} - -a { - border-radius: .125em; -} - -caption { - margin-bottom: 1.5em; - text-align: left; -} - -code, .request-method-n-url { - overflow-wrap: anywhere; - white-space: break-spaces; -} - -table { - border-collapse: collapse; -} - -.report-description--container, .report-parameters--container { - margin-left: 2ch; - padding: 0 2ch; -} - -.about-this-report h3, .summaries h3, .appendix h3 { - border-bottom: .05em solid; -} - -.alerts h4 { - text-align: center; -} - -.alerts ol { - padding-left: 0; -} - -.alerts--site-li { - border: .05em solid; - border-radius: .25em; - margin-left: 2ch; - padding: 1.5em 3ch; -} - -.contents ol { - list-style-position: inside; - list-style-type: square; - padding-left: 4ch; -} - -.contexts-list, .sites-list { - list-style-type: square; -} - -.risk-confidence-counts-table { - width: 100%; -} - -.risk-confidence-counts-table tr { - height: 4.5em; -} - -.risk-confidence-counts-table thead > tr { - height: 3em; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table th[scope="rowgroup"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.risk-confidence-counts-table th[scope="row"] { - padding-right: 5%; -} - -@media screen and (max-width: 50em) { - .risk-confidence-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.risk-confidence-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.risk-confidence-counts-table > tbody > tr { - border-top: .05em solid; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table td { - vertical-align: top; -} - -.risk-confidence-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.risk-confidence-counts-table td, .risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - text-align: right; -} - -.site-risk-counts-table { - width: 100%; -} - -.site-risk-counts-table tr { - height: 4.5em; -} - -.site-risk-counts-table thead > tr:first-of-type { - height: 3em; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table th[scope="col"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.site-risk-counts-table th[scope="row"] { - padding-right: 1%; -} - -@media screen and (max-width: 50em) { - .site-risk-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.site-risk-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.site-risk-counts-table > tbody > tr { - border-top: .05em solid; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table td { - vertical-align: top; -} - -.site-risk-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.site-risk-counts-table td, .site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - text-align: right; -} - -.alert-type-counts-table { - width: 100%; -} - -.alert-type-counts-table th, .alert-type-counts-table td { - padding: 0 1rem; - text-align: left; - vertical-align: top; -} - -.alert-type-counts-table td:nth-last-of-type(2) { - padding-left: 1.5rem; -} - -.alert-type-counts-table > tbody > tr { - border-bottom: 0.05em dotted; -} - -.alert-type-counts-table th[scope="col"] { - border-left: 1rem solid; -} - -.alert-type-counts-table th[scope="col"]:first-of-type { - border-left: 0; -} - -.alert-type-counts-table th[scope="col"]:last-of-type, .alert-type-counts-table td:last-of-type { - text-align: right; -} - -.alert-type-counts-table th[scope="col"], .alert-type-counts-table th[scope="row"] { - font-weight: normal; -} - -.alert-type-counts-table th[scope="row"], .alert-type-counts-table td { - padding-bottom: 1.5em; -} - -.alert-type-counts-table thead > th:first-of-type { - width: 45%; -} - -.alerts-table, .alert-types-table, .insights-table { - border-collapse: separate; - border-spacing: 2ch 1.5em; - width: 100%; -} - -.alerts-table th, .alerts-table td, .alert-types-table th, .alert-types-table td, .insights-table td, .insights-table th { - vertical-align: top; -} - -.alerts-table td, .alert-types-table td, .insights-table td { - overflow-wrap: anywhere; -} - -.alerts-table th, .alert-types-table th, .insights-table th { - padding: 0 1ch; -} - -.alerts-table td, .alert-types-table td { - padding: 0 2ch; -} - -.insights-table td { - padding: 0 1ch; -} - -.alerts-table summary { - margin-bottom: 1.5em; -} - -.alert-tags-list { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-tags-list > li { - margin-top: 0; -} - -.request-body, .response-body { - margin-top: 1.5em; -} - -.request-method-n-url { - margin-bottom: 0; -} - -.alert-types-table { - padding-top: 0; -} - -.alert-types-table th { - width: 20%; -} - -.alert-types-table ol { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-types-table li:not(:first-of-type) { - margin-top: 1.5em; -} - -p.alert-types-intro { - margin-bottom: 3em; -} - -.zap-logo { - height: 1em; - margin-right: .25ch; - width: 1em; -} - -h1, h2 { - font-family: Georgia, serif; -} - -.risk-level, .confidence-level, .included-risk-codes, .included-confidence-codes, .additional-info-percentages { - font-family: monospace, monospace; -} - -.context, .site, .request-method-n-url { - font-family: monospace, monospace; -} diff --git a/TestesRealizados1/Pen&Test/zap32x32.png b/TestesRealizados1/Pen&Test/zap32x32.png deleted file mode 100644 index 9c1019ffb2ad500434d78f20f5a624bd660e6735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1933 zcmV;82Xgp{P)LZ&X_*%IgUcU=kqE(b z4NRzXHHacGqA;V7EOd-rLRUsK6M0)>lNA+QA(1s>0WooNopVsi`f~3%&(A;3?F-PB zvOj!oo}80&pL3q?@9q2jJ@8;-E^rih7x)VQ$FTzF0Ce^0)w*%xMg@9CT^);$`@`-S z|D^%X0-G{2GScem>Zq-)#c><}&YnG+{?@;fz2@5u5&VQI{0HC&b5Eb8v=CMzq8Xh{uDUJ;6-8cvHPPw(V1AXlBMlio^B!;`1mR7lQz6stN1n` zVSRiJ3Jh}IHmwUh{p952jC=DbQ>IW{T+Bm{EyTg%86hH)s*G@RBZ6ZD zR~$s-xgh|tIK<*bMohZnrPKSTebm&{(An8JZUCD%Zw|w-XamM3aZ{E@QkJ_Sh=4&b zVlZMR6MN-LA+KI)MxOZY4_$EN7gpcl|GBy+*}SFI&@zE+1c5&ojb?% zH-610omUXmkc0pc4MCuY3JRI#ep;zPz!%CkF{7fMRjXD}R#rwLkr?x}`Sa(qYu7G1 z4zIhf6b}b*b0|Z?2bxNbAlb*&-!+hzmq$fKMaqhiM-T+Gw6t*h_U({ddb?6-2&w|A zpn{45bPqNps$5aDKvhCrw+1VURUz5a1;EaoJE^Lw8q=z_wl+#jOPTPwnarrD$C>b1 zeBZ~~fqr423P90ogC0=PH?8Vm*#v}(0|k?r!xzizShj2#GiT1Ey}f-@07XSb?AWn` zo)51w@$*j*Sf2pBs|*LhoR?u5{SD7JEun@R9Ak(IM2sO~gs2fb$L0Oj{d{ntiOR}K z4jw#6R#w)CK$a|7Ld#z-Gd=bqy@><~t0b(&SH%x3{Wghj{ro$E>8w7|8!?eI&lp@s zaK#WcLS%r`jo>*Bw)ZCgII)AS>wjbG)~z%&G>ix$H+M2U56vZe;WP9n69iWA)shSX z`fak)9$cP#M-^Drp9UIWRk0R)RT8QshN)UI2q2optfzJ|r}}xe?|y;IjENjOcI+Mi z7cX9-`|VS7cbpDGkWxfn15~wP#HQ4&KGGL8Zqzd_CM6=?Fb}vQxI!o{fa9gn`BpRU zy|It{{Ct|4nwT|f*5LO}o;*oeSs7W&e}iV^hCM-${BO{>Jm(%YOnIR)X)V55tW|8v z^2ET^D*YDvtkSPaPoj^^$IF?s{&lVgQFL zf4TNCRPNcLzb)TB`ne$0!%HlF+%?X3TygP?!H8f?C?W&GVvG#277}_4P&Z27wKi^_ z`UMY9O6QgM5f&|4M0R!--M6}buJEI=4km*jh{gB1;;i$G!4U@|f*8RtASQ%eXNt)N z2*#qQRjl#oYmeiff0@FG0rvrUs1Grl_V)4yJq|S&*HyA`hPcY4iwPqM T`!Z{P00000NkvXXu0mjf{kVU6 diff --git a/TestesRealizados1/QA&CICD/QA&CICD.html b/TestesRealizados1/QA&CICD/QA&CICD.html deleted file mode 100644 index 585b789..0000000 --- a/TestesRealizados1/QA&CICD/QA&CICD.html +++ /dev/null @@ -1,1896 +0,0 @@ - - - - - -ZAP by Checkmarx Scanning Report - - - - - -
-

ZAP by Checkmarx Scanning Report

-

- Generated with ZAP - on Thu 28 May 2026, at 09:08:47 -

-

ZAP Version: 2.17.0

-

- ZAP by Checkmarx -

-
- -
- -
-

Contents

- -
- -
-

About This Report

- - - -
-

Report Parameters

-
-

Contexts

- - -

No contexts were selected, so all contexts were included by default.

- - -

Sites

- -

The following sites were included:

-
    -
  • http://20.60.0.1:3000
  • -
- -

(If no sites were selected, all sites were included by default.)

-

An included site must also be within one of the included contexts for its data to be included in the report.

- -

Risk levels

-

- Included: - - High, Medium, Low, Informational -

-

- Excluded: - None - -

- -

Confidence levels

-

- Included: - - - User Confirmed, High, Medium, Low -

-

- Excluded: - - - User Confirmed, High, Medium, Low, False Positive -

-
-
-
- - -
- -
- -
-

Summaries

- -
-

Alert Counts by Risk and Confidence

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts for each level of risk and confidence included in the report.

-

(The percentages in brackets represent the count as a percentage of the total number of alerts included in the report, rounded to one decimal place.)

-
Confidence
User ConfirmedHighMediumLowTotal
RiskHigh0
(0.0%)
0
(0.0%)
0
(0.0%)
1
(20.0%)
1
(20.0%)
Medium0
(0.0%)
1
(20.0%)
1
(20.0%)
0
(0.0%)
2
(40.0%)
Low0
(0.0%)
0
(0.0%)
0
(0.0%)
1
(20.0%)
1
(20.0%)
Informational0
(0.0%)
0
(0.0%)
1
(20.0%)
0
(0.0%)
1
(20.0%)
Total0
(0.0%)
1
(20.0%)
2
(40.0%)
2
(40.0%)
5
(100%)
-
- -
-

Alert Counts by Site and Risk

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows, for each site for which one or more alerts were raised, the number of alerts raised at each risk level.

-

Alerts with a confidence level of "False Positive" have been excluded from these counts.

-

(The numbers in brackets are the number of alerts raised for the site at or above that risk level.)

-
Risk
- High
(= High) -
- Medium
(>= Medium) -
- Low
(>= Low) -
- Informational
(>= Informational) -
Sitehttp://20.60.0.1:30001
(1)
2
(3)
1
(4)
1
(5)
-
- -
-

Alert Counts by Alert Type

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts of each alert type, together with the alert type's risk level.

-

(The percentages in brackets represent each count as a percentage, rounded to one decimal place, of the total number of alerts included in this report.)

-
Alert typeRiskCount
SQL InjectionHigh1
(20.0%)
Content Security Policy (CSP) Header Not SetMedium5
(100.0%)
Cross-Domain MisconfigurationMedium5
(100.0%)
Timestamp Disclosure - UnixLow5
(100.0%)
Modern Web ApplicationInformational5
(100.0%)
Total5
-
- -
-

Insights

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows information that is likely to be very relevant to you, but which is not related to vulnerabilities, or potentially even related to the application in question.

-
LevelReasonSiteDescriptionStatistic
-
Medium
-
-
Exceeded Low
-
-
-
-
Percentage of memory used
-
-
80
-
-
Low
-
-
Warning
-
-
-
-
ZAP errors logged - see the zap.log file for details
-
-
112
-
-
Low
-
-
Warning
-
-
-
-
ZAP warnings logged - see the zap.log file for details
-
-
28
-
-
Info
-
-
Informational
-
-
-
-
Percentage of network failures
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 2xx
-
-
95 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 4xx
-
-
4 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/javascript
-
-
9 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/json
-
-
4 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/octet-stream
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/jpeg
-
-
6 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/png
-
-
3 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/x-icon
-
-
5 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/css
-
-
5 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/html
-
-
66 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/markdown
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/plain
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method GET
-
-
98 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method POST
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Count of total endpoints
-
-
171
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of slow responses
-
-
13 %
-
-
-
- -
-

Alerts

-
    - - - - - - - - -
  1. -

    - Risk=High, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - SQL Injection (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/products/search?q=%27%28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          SQL injection may be possible.

          -
          Request
          - Request line and header section (307 bytes) - -
          GET http://20.60.0.1:3000/rest/products/search?q=%27%28 HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (362 bytes) - -
          HTTP/1.1 500 Internal Server Error
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 13:05:12 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -content-length: 309
          -
          -
          - - -
          - Response body (309 bytes) - -
          {
          -  "error": {
          -    "message": "SQLITE_ERROR: near \"(\": syntax error",
          -    "stack": "Error: SQLITE_ERROR: near \"(\": syntax error",
          -    "errno": 1,
          -    "code": "SQLITE_ERROR",
          -    "sql": "SELECT * FROM Products WHERE ((name LIKE '%'(%' OR description LIKE '%'(%') AND deletedAt IS NULL) ORDER BY name"
          -  }
          -}
          - - -
          Parameter
          q
          Attack
          '(
          Evidence
          HTTP/1.1 500 Internal Server Error
          Solution -

          Do not trust client side input, even if there is client side validation in place.

          - -

          In general, type check all data on the server side.

          - -

          If the application uses JDBC, use PreparedStatement or CallableStatement, with parameters passed by '?'

          - -

          If the application uses ASP, use ADO Command Objects with strong type checking and parameterized queries.

          - -

          If database Stored Procedures can be used, use them.

          - -

          Do *not* concatenate strings into queries in the stored procedure, or use 'exec', 'exec immediate', or equivalent functionality!

          - -

          Do not create dynamic SQL queries using simple string concatenation.

          - -

          Escape all data received from the client.

          - -

          Apply an 'allow list' of allowed characters, or a 'deny list' of disallowed characters in user input.

          - -

          Apply the principle of least privilege by using the least privileged database user possible.

          - -

          In particular, avoid using the 'sa' or 'db-owner' database users. This does not eliminate SQL injection, but minimizes its impact.

          - -

          Grant the minimum database access that is necessary for the application.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  2. - - - - -
  3. -

    - Risk=Medium, Confidence=High (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Content Security Policy (CSP) Header Not Set (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware. CSP provides a set of standard HTTP headers that allow website owners to declare approved sources of content that browsers should be allowed to load on that page — covered types are JavaScript, CSS, HTML frames, fonts, images and embeddable objects such as Java applets, ActiveX, audio and video files.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 12:58:56 GMT
          -ETag: W/"26af-19e6eaa9eaf"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 13:01:59 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Solution -

          Ensure that your web server, application server, load balancer, etc. is configured to set the Content-Security-Policy header.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  4. - -
  5. -

    - Risk=Medium, Confidence=Medium (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Cross-Domain Misconfiguration (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/robots.txt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Web browser data loading may be possible, due to a Cross Origin Resource Sharing (CORS) misconfiguration on the web server.

          -
          Other info -

          The CORS misconfiguration on the web server permits cross-domain read requests from arbitrary third party domains, using unauthenticated APIs on this domain. Web browser implementations do not permit arbitrary third parties to read the response from authenticated APIs, however. This reduces the risk somewhat. This misconfiguration could be used by an attacker to access data that is available in an unauthenticated manner, but which uses some other form of security, such as IP address white-listing.

          -
          Request
          - Request line and header section (239 bytes) - -
          GET http://20.60.0.1:3000/robots.txt HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (378 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: text/plain; charset=utf-8
          -Content-Length: 28
          -ETag: W/"1c-8HgF6mNyhsSFK0pascC9uB0wjX0"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 13:01:58 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (28 bytes) - -
          User-agent: *
          -Disallow: /ftp
          - - -
          Evidence
          Access-Control-Allow-Origin: *
          Solution -

          Ensure that sensitive data is not available in an unauthenticated manner (using IP address white-listing, for instance).

          - -

          Configure the "Access-Control-Allow-Origin" HTTP header to a more restrictive set of domains, or remove all CORS headers entirely, to allow the web browser to enforce the Same Origin Policy (SOP) in a more restrictive manner.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  6. - - - - - - - - - - -
  7. -

    - Risk=Low, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Timestamp Disclosure - Unix (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A timestamp was disclosed by the application/web server. - Unix

          -
          Other info -

          1666666667, which evaluates to: 2022-10-24 22:57:47.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 12:58:56 GMT
          -ETag: W/"26af-19e6eaa9eaf"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 13:01:58 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          1666666667
          Solution -

          Manually confirm that the timestamp data is not sensitive, and that the data cannot be aggregated to disclose exploitable patterns.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  8. - - - - - - -
  9. -

    - Risk=Informational, Confidence=Medium (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Modern Web Application (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The application appears to be a modern web application. If you need to explore it automatically then the Ajax Spider may well be more effective than the standard one.

          -
          Other info -

          No links have been found while there are scripts, which is an indication that this is a modern web application.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 12:58:56 GMT
          -ETag: W/"26af-19e6eaa9eaf"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 13:01:59 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          Solution -

          This is an informational alert and so no changes are required.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  10. - - - -
-
- -
-

Appendix

- -
-

Alert Types

-

This section contains additional information on the types of alerts in the report.

-
    -
  1. -

    SQL Injection

    - - - - - - - - - - - - - - - - - -
    Source - - raised by an active scanner (SQL Injection) - -
    CWE ID89
    WASC ID19
    Reference -
      -
    1. https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
    2. -
    -
    -
  2. -
  3. -

    Content Security Policy (CSP) Header Not Set

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Content Security Policy (CSP) Header Not Set) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP
    2. -
    3. https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html
    4. -
    5. https://www.w3.org/TR/CSP/
    6. -
    7. https://w3c.github.io/webappsec-csp/
    8. -
    9. https://web.dev/articles/csp
    10. -
    11. https://caniuse.com/#feat=contentsecuritypolicy
    12. -
    13. https://content-security-policy.com/
    14. -
    -
    -
  4. -
  5. -

    Cross-Domain Misconfiguration

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Cross-Domain Misconfiguration) - -
    CWE ID264
    WASC ID14
    Reference -
      -
    1. https://vulncat.fortify.com/en/detail?category=HTML5&subcategory=Overly%20Permissive%20CORS%20Policy
    2. -
    -
    -
  6. -
  7. -

    Timestamp Disclosure - Unix

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Timestamp Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://cwe.mitre.org/data/definitions/200.html
    2. -
    -
    -
  8. -
  9. -

    Modern Web Application

    - - - - - - - - -
    Source - - raised by a passive scanner (Modern Web Application) - -
    -
  10. -
-
-
- -
- - - - - diff --git a/TestesRealizados1/QA&CICD/normalize/LICENSE.md b/TestesRealizados1/QA&CICD/normalize/LICENSE.md deleted file mode 100644 index 43b5ddc..0000000 --- a/TestesRealizados1/QA&CICD/normalize/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# The MIT License (MIT) - -Copyright © Nicolas Gallagher and Jonathan Neal - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/TestesRealizados1/QA&CICD/normalize/normalize.css b/TestesRealizados1/QA&CICD/normalize/normalize.css deleted file mode 100644 index 192eb9c..0000000 --- a/TestesRealizados1/QA&CICD/normalize/normalize.css +++ /dev/null @@ -1,349 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} diff --git a/TestesRealizados1/QA&CICD/themes/original/colors.css b/TestesRealizados1/QA&CICD/themes/original/colors.css deleted file mode 100644 index fd3b963..0000000 --- a/TestesRealizados1/QA&CICD/themes/original/colors.css +++ /dev/null @@ -1,139 +0,0 @@ -body { - background-color: #306aa0; - background-image: radial-gradient(circle at top left, #fff 0%, #8ce1d6 15em, #306aa0 100em, #386095 100%); -} - -main, footer { - background-color: #fff; -} - -header { - background-color: #00549e; - color: #fff; -} - -a:link { - color: #004380; -} - -a:visited { - color: #770d67; -} - -a:focus { - background-color: #ffd54d; -} - -a:hover { - background-color: #ffd54d; -} - -a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -header a:link { - color: #f2f7fd; -} - -header a:visited { - color: #f2b5e9; -} - -header a:focus { - background-color: #ffd54d; - color: #004380; -} - -header a:hover { - background-color: #ffd54d; - color: #004380; -} - -header a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #fff6db; -} - -summary:focus { - background-color: #ffd54d; -} - -summary:hover { - background-color: #ffd54d; -} - -summary:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -h2, h3, h4, h5, h6 { - color: #00549e; -} - -.risk-level, .confidence-level { - color: #00549e; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - color: #00549e; -} - -.risk-confidence-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - color: #00549e; -} - -.site-risk-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.alert-type-counts-table > tbody > tr { - border-bottom-color: #00549e; -} - -.alert-type-counts-table th[scope="col"] { - background-color: #00549e; - color: #fff; -} - -.alert-type-counts-table th[scope="col"] { - border-left-color: #fff; -} - -.alerts-table th, .alert-types-table th { - background-color: #306aa0; - color: #fff; -} - -.additional-info-percentages { - color: #00549e; -} - -.insights-table > tbody > tr { - border-bottom-color: #00549e; -} - -.insights-table th[scope="col"] { - background-color: #00549e; - border-left-color: #fff; - color: #fff; -} diff --git a/TestesRealizados1/QA&CICD/themes/original/main.css b/TestesRealizados1/QA&CICD/themes/original/main.css deleted file mode 100644 index 050bd3f..0000000 --- a/TestesRealizados1/QA&CICD/themes/original/main.css +++ /dev/null @@ -1,417 +0,0 @@ -*, *::after, *::before { - box-sizing: border-box; -} - -h1, h2, h3, h4, h5, h6 { - margin: 0; - padding: 0; -} - -pre, ul { - margin: 0; -} - -ol { - list-style-type: none; -} - -h1 { - font-size: 3em; -} - -h2 { - font-size: 2em; -} - -h3, h4, h5, h6 { - font-size: 1em; -} - -html { - box-sizing: border-box; - font-family: Verdana, sans-serif; - line-height: 1.5; -} - -body { - margin: 1.5em 0; -} - -@media screen and (min-width: 50em) { - body { - margin: 1.5em 2ch; - padding: 1.5em 2ch; - } -} - -a:active, header a:active { - outline-style: solid; -} - -header, main { - margin: 0 auto; - max-width: 90ch; - padding: 1.5em 4ch; -} - -header { - border-radius: .25em .25em 0 0; -} - -main { - border-radius: 0 0 .25em .25em; -} - -summary { - cursor: pointer; -} - -.contents { - margin-top: 1.5em; -} - -main > section { - margin-bottom: 4.5em; -} - -.about-this-report > section { - margin-bottom: 3em; -} - -.summaries section { - margin-bottom: 3em; -} - -h2 { - margin-bottom: .75em; -} - -h3 { - margin-bottom: 1.5em; -} - -h4 { - margin-bottom: 1.5em; -} - -.report-parameters--container h4 { - margin-top: 1.5em; -} - -p { - margin: 1.5em 0; -} - -p:first-of-type { - margin-top: 0; -} - -p:last-of-type { - margin-bottom: 0; -} - -.contents li, .alerts li, .alert-types > ol > li { - margin-top: 1.5em; -} - -.alert-types h4 { - margin-bottom: 0; -} - -a { - border-radius: .125em; -} - -caption { - margin-bottom: 1.5em; - text-align: left; -} - -code, .request-method-n-url { - overflow-wrap: anywhere; - white-space: break-spaces; -} - -table { - border-collapse: collapse; -} - -.report-description--container, .report-parameters--container { - margin-left: 2ch; - padding: 0 2ch; -} - -.about-this-report h3, .summaries h3, .appendix h3 { - border-bottom: .05em solid; -} - -.alerts h4 { - text-align: center; -} - -.alerts ol { - padding-left: 0; -} - -.alerts--site-li { - border: .05em solid; - border-radius: .25em; - margin-left: 2ch; - padding: 1.5em 3ch; -} - -.contents ol { - list-style-position: inside; - list-style-type: square; - padding-left: 4ch; -} - -.contexts-list, .sites-list { - list-style-type: square; -} - -.risk-confidence-counts-table { - width: 100%; -} - -.risk-confidence-counts-table tr { - height: 4.5em; -} - -.risk-confidence-counts-table thead > tr { - height: 3em; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table th[scope="rowgroup"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.risk-confidence-counts-table th[scope="row"] { - padding-right: 5%; -} - -@media screen and (max-width: 50em) { - .risk-confidence-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.risk-confidence-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.risk-confidence-counts-table > tbody > tr { - border-top: .05em solid; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table td { - vertical-align: top; -} - -.risk-confidence-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.risk-confidence-counts-table td, .risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - text-align: right; -} - -.site-risk-counts-table { - width: 100%; -} - -.site-risk-counts-table tr { - height: 4.5em; -} - -.site-risk-counts-table thead > tr:first-of-type { - height: 3em; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table th[scope="col"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.site-risk-counts-table th[scope="row"] { - padding-right: 1%; -} - -@media screen and (max-width: 50em) { - .site-risk-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.site-risk-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.site-risk-counts-table > tbody > tr { - border-top: .05em solid; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table td { - vertical-align: top; -} - -.site-risk-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.site-risk-counts-table td, .site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - text-align: right; -} - -.alert-type-counts-table { - width: 100%; -} - -.alert-type-counts-table th, .alert-type-counts-table td { - padding: 0 1rem; - text-align: left; - vertical-align: top; -} - -.alert-type-counts-table td:nth-last-of-type(2) { - padding-left: 1.5rem; -} - -.alert-type-counts-table > tbody > tr { - border-bottom: 0.05em dotted; -} - -.alert-type-counts-table th[scope="col"] { - border-left: 1rem solid; -} - -.alert-type-counts-table th[scope="col"]:first-of-type { - border-left: 0; -} - -.alert-type-counts-table th[scope="col"]:last-of-type, .alert-type-counts-table td:last-of-type { - text-align: right; -} - -.alert-type-counts-table th[scope="col"], .alert-type-counts-table th[scope="row"] { - font-weight: normal; -} - -.alert-type-counts-table th[scope="row"], .alert-type-counts-table td { - padding-bottom: 1.5em; -} - -.alert-type-counts-table thead > th:first-of-type { - width: 45%; -} - -.alerts-table, .alert-types-table, .insights-table { - border-collapse: separate; - border-spacing: 2ch 1.5em; - width: 100%; -} - -.alerts-table th, .alerts-table td, .alert-types-table th, .alert-types-table td, .insights-table td, .insights-table th { - vertical-align: top; -} - -.alerts-table td, .alert-types-table td, .insights-table td { - overflow-wrap: anywhere; -} - -.alerts-table th, .alert-types-table th, .insights-table th { - padding: 0 1ch; -} - -.alerts-table td, .alert-types-table td { - padding: 0 2ch; -} - -.insights-table td { - padding: 0 1ch; -} - -.alerts-table summary { - margin-bottom: 1.5em; -} - -.alert-tags-list { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-tags-list > li { - margin-top: 0; -} - -.request-body, .response-body { - margin-top: 1.5em; -} - -.request-method-n-url { - margin-bottom: 0; -} - -.alert-types-table { - padding-top: 0; -} - -.alert-types-table th { - width: 20%; -} - -.alert-types-table ol { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-types-table li:not(:first-of-type) { - margin-top: 1.5em; -} - -p.alert-types-intro { - margin-bottom: 3em; -} - -.zap-logo { - height: 1em; - margin-right: .25ch; - width: 1em; -} - -h1, h2 { - font-family: Georgia, serif; -} - -.risk-level, .confidence-level, .included-risk-codes, .included-confidence-codes, .additional-info-percentages { - font-family: monospace, monospace; -} - -.context, .site, .request-method-n-url { - font-family: monospace, monospace; -} diff --git a/TestesRealizados1/QA&CICD/zap32x32.png b/TestesRealizados1/QA&CICD/zap32x32.png deleted file mode 100644 index 9c1019ffb2ad500434d78f20f5a624bd660e6735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1933 zcmV;82Xgp{P)LZ&X_*%IgUcU=kqE(b z4NRzXHHacGqA;V7EOd-rLRUsK6M0)>lNA+QA(1s>0WooNopVsi`f~3%&(A;3?F-PB zvOj!oo}80&pL3q?@9q2jJ@8;-E^rih7x)VQ$FTzF0Ce^0)w*%xMg@9CT^);$`@`-S z|D^%X0-G{2GScem>Zq-)#c><}&YnG+{?@;fz2@5u5&VQI{0HC&b5Eb8v=CMzq8Xh{uDUJ;6-8cvHPPw(V1AXlBMlio^B!;`1mR7lQz6stN1n` zVSRiJ3Jh}IHmwUh{p952jC=DbQ>IW{T+Bm{EyTg%86hH)s*G@RBZ6ZD zR~$s-xgh|tIK<*bMohZnrPKSTebm&{(An8JZUCD%Zw|w-XamM3aZ{E@QkJ_Sh=4&b zVlZMR6MN-LA+KI)MxOZY4_$EN7gpcl|GBy+*}SFI&@zE+1c5&ojb?% zH-610omUXmkc0pc4MCuY3JRI#ep;zPz!%CkF{7fMRjXD}R#rwLkr?x}`Sa(qYu7G1 z4zIhf6b}b*b0|Z?2bxNbAlb*&-!+hzmq$fKMaqhiM-T+Gw6t*h_U({ddb?6-2&w|A zpn{45bPqNps$5aDKvhCrw+1VURUz5a1;EaoJE^Lw8q=z_wl+#jOPTPwnarrD$C>b1 zeBZ~~fqr423P90ogC0=PH?8Vm*#v}(0|k?r!xzizShj2#GiT1Ey}f-@07XSb?AWn` zo)51w@$*j*Sf2pBs|*LhoR?u5{SD7JEun@R9Ak(IM2sO~gs2fb$L0Oj{d{ntiOR}K z4jw#6R#w)CK$a|7Ld#z-Gd=bqy@><~t0b(&SH%x3{Wghj{ro$E>8w7|8!?eI&lp@s zaK#WcLS%r`jo>*Bw)ZCgII)AS>wjbG)~z%&G>ix$H+M2U56vZe;WP9n69iWA)shSX z`fak)9$cP#M-^Drp9UIWRk0R)RT8QshN)UI2q2optfzJ|r}}xe?|y;IjENjOcI+Mi z7cX9-`|VS7cbpDGkWxfn15~wP#HQ4&KGGL8Zqzd_CM6=?Fb}vQxI!o{fa9gn`BpRU zy|It{{Ct|4nwT|f*5LO}o;*oeSs7W&e}iV^hCM-${BO{>Jm(%YOnIR)X)V55tW|8v z^2ET^D*YDvtkSPaPoj^^$IF?s{&lVgQFL zf4TNCRPNcLzb)TB`ne$0!%HlF+%?X3TygP?!H8f?C?W&GVvG#277}_4P&Z27wKi^_ z`UMY9O6QgM5f&|4M0R!--M6}buJEI=4km*jh{gB1;;i$G!4U@|f*8RtASQ%eXNt)N z2*#qQRjl#oYmeiff0@FG0rvrUs1Grl_V)4yJq|S&*HyA`hPcY4iwPqM T`!Z{P00000NkvXXu0mjf{kVU6 diff --git a/TestesRealizados1/QA&Full/QA&Full.html b/TestesRealizados1/QA&Full/QA&Full.html deleted file mode 100644 index 881c153..0000000 --- a/TestesRealizados1/QA&Full/QA&Full.html +++ /dev/null @@ -1,2609 +0,0 @@ - - - - - -ZAP by Checkmarx Scanning Report - - - - - -
-

ZAP by Checkmarx Scanning Report

-

- Generated with ZAP - on Thu 28 May 2026, at 10:12:22 -

-

ZAP Version: 2.17.0

-

- ZAP by Checkmarx -

-
- -
- -
-

Contents

- -
- -
-

About This Report

- - - -
-

Report Parameters

-
-

Contexts

- - -

No contexts were selected, so all contexts were included by default.

- - -

Sites

- -

The following sites were included:

-
    -
  • http://20.60.0.1:3000
  • -
- -

(If no sites were selected, all sites were included by default.)

-

An included site must also be within one of the included contexts for its data to be included in the report.

- -

Risk levels

-

- Included: - - High, Medium, Low, Informational -

-

- Excluded: - None - -

- -

Confidence levels

-

- Included: - - - User Confirmed, High, Medium, Low -

-

- Excluded: - - - User Confirmed, High, Medium, Low, False Positive -

-
-
-
- - -
- -
- -
-

Summaries

- -
-

Alert Counts by Risk and Confidence

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts for each level of risk and confidence included in the report.

-

(The percentages in brackets represent the count as a percentage of the total number of alerts included in the report, rounded to one decimal place.)

-
Confidence
User ConfirmedHighMediumLowTotal
RiskHigh0
(0.0%)
0
(0.0%)
0
(0.0%)
1
(11.1%)
1
(11.1%)
Medium0
(0.0%)
2
(22.2%)
2
(22.2%)
0
(0.0%)
4
(44.4%)
Low0
(0.0%)
0
(0.0%)
2
(22.2%)
1
(11.1%)
3
(33.3%)
Informational0
(0.0%)
0
(0.0%)
1
(11.1%)
0
(0.0%)
1
(11.1%)
Total0
(0.0%)
2
(22.2%)
5
(55.6%)
2
(22.2%)
9
(100%)
-
- -
-

Alert Counts by Site and Risk

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows, for each site for which one or more alerts were raised, the number of alerts raised at each risk level.

-

Alerts with a confidence level of "False Positive" have been excluded from these counts.

-

(The numbers in brackets are the number of alerts raised for the site at or above that risk level.)

-
Risk
- High
(= High) -
- Medium
(>= Medium) -
- Low
(>= Low) -
- Informational
(>= Informational) -
Sitehttp://20.60.0.1:30001
(1)
4
(5)
3
(8)
1
(9)
-
- -
-

Alert Counts by Alert Type

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts of each alert type, together with the alert type's risk level.

-

(The percentages in brackets represent each count as a percentage, rounded to one decimal place, of the total number of alerts included in this report.)

-
Alert typeRiskCount
SQL InjectionHigh1
(11.1%)
Content Security Policy (CSP) Header Not SetMedium5
(55.6%)
Cross-Domain MisconfigurationMedium5
(55.6%)
Missing Anti-clickjacking HeaderMedium3
(33.3%)
Session ID in URL RewriteMedium5
(55.6%)
Private IP DisclosureLow1
(11.1%)
Timestamp Disclosure - UnixLow5
(55.6%)
X-Content-Type-Options Header MissingLow5
(55.6%)
Modern Web ApplicationInformational5
(55.6%)
Total9
-
- -
-

Insights

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows information that is likely to be very relevant to you, but which is not related to vulnerabilities, or potentially even related to the application in question.

-
LevelReasonSiteDescriptionStatistic
-
Medium
-
-
Exceeded Low
-
-
-
-
Percentage of memory used
-
-
83
-
-
Low
-
-
Warning
-
-
-
-
ZAP errors logged - see the zap.log file for details
-
-
256
-
-
Low
-
-
Warning
-
-
-
-
ZAP warnings logged - see the zap.log file for details
-
-
105
-
-
Info
-
-
Informational
-
-
-
-
Percentage of network failures
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 1xx
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 2xx
-
-
68 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 3xx
-
-
28 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 4xx
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/javascript
-
-
9 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/json
-
-
4 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/octet-stream
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/jpeg
-
-
6 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/png
-
-
3 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/x-icon
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/css
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/html
-
-
66 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/markdown
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/plain
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method GET
-
-
98 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method POST
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Count of total endpoints
-
-
171
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of slow responses
-
-
42 %
-
-
-
- -
-

Alerts

-
    - - - - - - - - -
  1. -

    - Risk=High, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - SQL Injection (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/products/search?q=%27%28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          SQL injection may be possible.

          -
          Request
          - Request line and header section (307 bytes) - -
          GET http://20.60.0.1:3000/rest/products/search?q=%27%28 HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (362 bytes) - -
          HTTP/1.1 500 Internal Server Error
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 13:54:48 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -content-length: 309
          -
          -
          - - -
          - Response body (309 bytes) - -
          {
          -  "error": {
          -    "message": "SQLITE_ERROR: near \"(\": syntax error",
          -    "stack": "Error: SQLITE_ERROR: near \"(\": syntax error",
          -    "errno": 1,
          -    "code": "SQLITE_ERROR",
          -    "sql": "SELECT * FROM Products WHERE ((name LIKE '%'(%' OR description LIKE '%'(%') AND deletedAt IS NULL) ORDER BY name"
          -  }
          -}
          - - -
          Parameter
          q
          Attack
          '(
          Evidence
          HTTP/1.1 500 Internal Server Error
          Solution -

          Do not trust client side input, even if there is client side validation in place.

          - -

          In general, type check all data on the server side.

          - -

          If the application uses JDBC, use PreparedStatement or CallableStatement, with parameters passed by '?'

          - -

          If the application uses ASP, use ADO Command Objects with strong type checking and parameterized queries.

          - -

          If database Stored Procedures can be used, use them.

          - -

          Do *not* concatenate strings into queries in the stored procedure, or use 'exec', 'exec immediate', or equivalent functionality!

          - -

          Do not create dynamic SQL queries using simple string concatenation.

          - -

          Escape all data received from the client.

          - -

          Apply an 'allow list' of allowed characters, or a 'deny list' of disallowed characters in user input.

          - -

          Apply the principle of least privilege by using the least privileged database user possible.

          - -

          In particular, avoid using the 'sa' or 'db-owner' database users. This does not eliminate SQL injection, but minimizes its impact.

          - -

          Grant the minimum database access that is necessary for the application.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  2. - - - - -
  3. -

    - Risk=Medium, Confidence=High (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Content Security Policy (CSP) Header Not Set (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware. CSP provides a set of standard HTTP headers that allow website owners to declare approved sources of content that browsers should be allowed to load on that page — covered types are JavaScript, CSS, HTML frames, fonts, images and embeddable objects such as Java applets, ActiveX, audio and video files.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 13:41:08 GMT
          -ETag: W/"26af-19e6ed14201"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 13:50:29 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Solution -

          Ensure that your web server, application server, load balancer, etc. is configured to set the Content-Security-Policy header.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - Session ID in URL Rewrite (1) -
        -
          -
        1. - - POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvksdH8&sid=DDmfHO9swhgnxBKzAAAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          URL rewrite is used to track user session ID. The session ID may be disclosed via cross-site referer header. In addition, the session ID might be stored in browser history or server logs.

          -
          Request
          - Request line and header section (408 bytes) - -
          POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvksdH8&sid=DDmfHO9swhgnxBKzAAAA HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Content-type: text/plain;charset=UTF-8
          -Content-Length: 2
          -Origin: http://20.60.0.1:3000
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (2 bytes) - -
          40
          - - -
          Response
          - Status line and header section (213 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/html
          -Content-Length: 2
          -Date: Thu, 28 May 2026 13:51:12 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (2 bytes) - -
          ok
          - - -
          Parameter
          sid
          Evidence
          DDmfHO9swhgnxBKzAAAA
          Solution -

          For secure content, put session ID in a cookie. To be even more secure consider using a combination of cookie and URL rewrite.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  4. - -
  5. -

    - Risk=Medium, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Cross-Domain Misconfiguration (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/robots.txt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Web browser data loading may be possible, due to a Cross Origin Resource Sharing (CORS) misconfiguration on the web server.

          -
          Other info -

          The CORS misconfiguration on the web server permits cross-domain read requests from arbitrary third party domains, using unauthenticated APIs on this domain. Web browser implementations do not permit arbitrary third parties to read the response from authenticated APIs, however. This reduces the risk somewhat. This misconfiguration could be used by an attacker to access data that is available in an unauthenticated manner, but which uses some other form of security, such as IP address white-listing.

          -
          Request
          - Request line and header section (239 bytes) - -
          GET http://20.60.0.1:3000/robots.txt HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (378 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: text/plain; charset=utf-8
          -Content-Length: 28
          -ETag: W/"1c-8HgF6mNyhsSFK0pascC9uB0wjX0"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 13:50:30 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (28 bytes) - -
          User-agent: *
          -Disallow: /ftp
          - - -
          Evidence
          Access-Control-Allow-Origin: *
          Solution -

          Ensure that sensitive data is not available in an unauthenticated manner (using IP address white-listing, for instance).

          - -

          Configure the "Access-Control-Allow-Origin" HTTP header to a more restrictive set of domains, or remove all CORS headers entirely, to allow the web browser to enforce the Same Origin Policy (SOP) in a more restrictive manner.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - Missing Anti-clickjacking Header (1) -
        -
          -
        1. - - POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvksdH8&sid=DDmfHO9swhgnxBKzAAAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The response does not protect against 'ClickJacking' attacks. It should include either Content-Security-Policy with 'frame-ancestors' directive or X-Frame-Options.

          -
          Request
          - Request line and header section (408 bytes) - -
          POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvksdH8&sid=DDmfHO9swhgnxBKzAAAA HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Content-type: text/plain;charset=UTF-8
          -Content-Length: 2
          -Origin: http://20.60.0.1:3000
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (2 bytes) - -
          40
          - - -
          Response
          - Status line and header section (213 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/html
          -Content-Length: 2
          -Date: Thu, 28 May 2026 13:51:12 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (2 bytes) - -
          ok
          - - -
          Parameter
          x-frame-options
          Solution -

          Modern Web browsers support the Content-Security-Policy and X-Frame-Options HTTP headers. Ensure one of them is set on all web pages returned by your site/app.

          - -

          If you expect the page to be framed only by pages on your server (e.g. it's part of a FRAMESET) then you'll want to use SAMEORIGIN, otherwise if you never expect the page to be framed, you should use DENY. Alternatively consider implementing Content Security Policy's "frame-ancestors" directive.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  6. - - - - - - - - -
  7. -

    - Risk=Low, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Private IP Disclosure (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/admin/application-configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A private IP (such as 10.x.x.x, 172.x.x.x, 192.168.x.x) or an Amazon EC2 private hostname (for example, ip-10-0-56-78) has been found in the HTTP response body. This information might be helpful for further attacks targeting internal systems.

          -
          Other info -

          192.168.99.100:3000

          - -

          192.168.99.100:4200

          -
          Request
          - Request line and header section (314 bytes) - -
          GET http://20.60.0.1:3000/rest/admin/application-configuration HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (389 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Content-Length: 23513
          -ETag: W/"5bd9-reVonwE2GOcMzw2LpzIkSqyB2OE"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 13:51:11 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (23513 bytes) - -
          {"config":{"server":{"port":3000,"basePath":"","baseUrl":"http://localhost:3000"},"application":{"domain":"juice-sh.op","name":"OWASP Juice Shop","logo":"JuiceShop_Logo.png","favicon":"favicon_js.ico","theme":"bluegrey-lightgreen","showVersionNumber":true,"showGitHubLinks":true,"localBackupEnabled":true,"numberOfRandomFakeUsers":0,"altcoinName":"Juicycoin","privacyContactEmail":"donotreply@owasp-juice.shop","customMetricsPrefix":"juiceshop","chatBot":{"name":"Juicy the Smart Assistant","avatar":"JuicyChatBot.png","model":"gemma4:e4b","llmMaxRetries":2,"sampleQuestions":["CHATBOT_PROMPT_RECOMMENDATION_SUMMER_PARTY","CHATBOT_PROMPT_RECOMMENDATION_POPULAR","CHATBOT_PROMPT_RECOMMENDATION_SUGAR_FREE","CHATBOT_PROMPT_RECOMMENDATION_START_DAY","CHATBOT_PROMPT_RECOMMENDATION_SEASONAL"]},"social":{"blueSkyUrl":"https://bsky.app/profile/owasp-juice.shop","mastodonUrl":"https://fosstodon.org/@owasp_juiceshop","twitterUrl":"https://twitter.com/owasp_juiceshop","facebookUrl":"https://www.facebook.com/owasp.juiceshop","slackUrl":"https://owasp.org/slack/invite","redditUrl":"https://www.reddit.com/r/owasp_juiceshop","pressKitUrl":"https://github.com/OWASP/owasp-swag/tree/master/projects/juice-shop","nftUrl":"https://opensea.io/collection/juice-shop","questionnaireUrl":null},"recyclePage":{"topProductImage":"fruit_press.jpg","bottomProductImage":"apple_pressings.jpg"},"welcomeBanner":{"showOnFirstStart":true,"title":"Welcome to OWASP Juice Shop!","message":"<p>Being a web application with a vast number of intended security vulnerabilities, the <strong>OWASP Juice Shop</strong> is supposed to be the opposite of a best practice or template application for web developers: It is an awareness, training, demonstration and exercise tool for security risks in modern web applications. The <strong>OWASP Juice Shop</strong> is an open-source project hosted by the non-profit <a href='https://owasp.org' target='_blank'>Open Worldwide Application Security Project (OWASP)</a> and is developed and maintained by volunteers. Check out the link below for more information and documentation on the project.</p><h1><a href='https://owasp-juice.shop' target='_blank'>https://owasp-juice.shop</a></h1>"},"cookieConsent":{"message":"This website uses fruit cookies to ensure you get the juiciest tracking experience.","dismissText":"Me want it!","linkText":"But me wait!","linkUrl":"https://www.youtube.com/watch?v=9PnbKL3wuH4"},"securityTxt":{"contact":"mailto:donotreply@owasp-juice.shop","encryption":"https://keybase.io/bkimminich/pgp_keys.asc?fingerprint=19c01cb7157e4645e9e2c863062a85a8cbfbdcda","acknowledgements":"/#/score-board","hiring":"/#/jobs","csaf":"/.well-known/csaf/provider-metadata.json"},"promotion":{"video":"owasp_promo.mp4","subtitles":"owasp_promo.vtt"},"easterEggPlanet":{"name":"Orangeuze","overlayMap":"orangemap2k.avif"},"googleOauth":{"clientId":"1005568560502-6hm16lef8oh46hr2d98vf2ohlnj4nfhq.apps.googleusercontent.com","authorizedRedirects":[{"uri":"https://demo.owasp-juice.shop"},{"uri":"https://juice-shop.herokuapp.com"},{"uri":"https://preview.owasp-juice.shop"},{"uri":"https://juice-shop-staging.herokuapp.com"},{"uri":"https://juice-shop.wtf"},{"uri":"http://localhost:3000","proxy":"https://local3000.owasp-juice.shop"},{"uri":"http://127.0.0.1:3000","proxy":"https://local3000.owasp-juice.shop"},{"uri":"http://localhost:4200","proxy":"https://local4200.owasp-juice.shop"},{"uri":"http://127.0.0.1:4200","proxy":"https://local4200.owasp-juice.shop"},{"uri":"http://192.168.99.100:3000","proxy":"https://localmac.owasp-juice.shop"},{"uri":"http://192.168.99.100:4200","proxy":"https://localmac.owasp-juice.shop"},{"uri":"http://penguin.termina.linux.test:3000","proxy":"https://localchromeos.owasp-juice.shop"},{"uri":"http://penguin.termina.linux.test:4200","proxy":"https://localchromeos.owasp-juice.shop"}]}},"challenges":{"showSolvedNotifications":true,"showHints":true,"showMitigations":true,"codingChallengesEnabled":"solved","restrictToTutorialsFirst":false,"overwriteUrlForProductTamperingChallenge":"https://owasp.slack.com","xssBonusPayload":"<iframe width=\"100%\" height=\"166\" scrolling=\"no\" frameborder=\"no\" allow=\"autoplay\" src=\"https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/771984076&color=%23ff5500&auto_play=true&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true\"></iframe>","safetyMode":"auto","csafHashValue":"7e7ce7c65db3bf0625fcea4573d25cff41f2f7e3474f2c74334b14fc65bb4fd26af802ad17a3a03bf0eee6827a00fb8f7905f338c31b5e6ea9cb31620242e843","metricsIgnoredUserAgents":["Prometheus","Alloy","promscrape","otelcol"]},"hackingInstructor":{"isEnabled":true,"avatarImage":"JuicyBot.png","hintPlaybackSpeed":"normal"},"products":[{"name":"Apple Juice (1000ml)","price":1.99,"deluxePrice":0.99,"limitPerUser":5,"description":"The all-time classic.","image":"apple_juice.jpg","reviews":[{"text":"One of my favorites!","author":"admin"},{"text":"Great! We'll have an apple party. Everyone brings an apple and - STUFFS IT DOWN EACH OTHER'S THROAT!","author":"basil"}]},{"name":"Orange Juice (1000ml)","description":"Made from oranges hand-picked by Uncle Dittmeyer.","price":2.99,"deluxePrice":2.49,"image":"orange_juice.jpg","reviews":[{"text":"y0ur f1r3wall needs m0r3 musc13","author":"uvogin"}]},{"name":"Eggfruit Juice (500ml)","description":"Now with even more exotic flavour.","price":8.99,"image":"eggfruit_juice.jpg","reviews":[{"text":"I bought it, would buy again. 5/7","author":"admin"}]},{"name":"Raspberry Juice (1000ml)","description":"Made from blended Raspberry Pi, water and sugar.","price":4.99,"image":"raspberry_juice.jpg"},{"name":"Lemon Juice (500ml)","description":"Sour but full of vitamins.","price":2.99,"deluxePrice":1.99,"limitPerUser":5,"image":"lemon_juice.jpg"},{"name":"Banana Juice (1000ml)","description":"Monkeys love it the most.","price":1.99,"image":"banana_juice.jpg","reviews":[{"text":"Fry liked it too.","author":"bender"}]},{"name":"OWASP Juice Shop T-Shirt","description":"Real fans wear it 24/7!","price":22.49,"limitPerUser":5,"image":"fan_shirt.jpg"},{"name":"OWASP Juice Shop CTF Girlie-Shirt","description":"For serious Capture-the-Flag heroines only!","price":22.49,"image":"fan_girlie.jpg"},{"name":"OWASP SSL Advanced Forensic Tool (O-Saft)","description":"O-Saft is an easy to use tool to show information about SSL certificate and tests the SSL connection according given list of ciphers and various SSL configurations.","price":0.01,"image":"orange_juice.jpg","urlForProductTamperingChallenge":"https://www.owasp.org/index.php/O-Saft"},{"name":"Christmas Super-Surprise-Box (2014 Edition)","description":"Contains a random selection of 10 bottles (each 500ml) of our tastiest juices and an extra fan shirt for an unbeatable price!","price":29.99,"image":"undefined.jpg","useForChristmasSpecialChallenge":true},{"name":"Rippertuer Special Juice","description":"Contains a magical collection of the rarest fruits gathered from all around the world, like Cherymoya Annona cherimola, Jabuticaba Myrciaria cauliflora, Bael Aegle marmelos... and others, at an unbelievable price! <br/><span style=\"color:red;\">This item has been made unavailable because of lack of safety standards.</span>","price":16.99,"image":"undefined.jpg","keywordsForPastebinDataLeakChallenge":["hueteroneel","eurogium edule"]},{"name":"OWASP Juice Shop Sticker (2015/2016 design)","description":"Die-cut sticker with the official 2015/2016 logo. By now this is a rare collectors item. <em>Out of stock!</em>","price":999.99,"image":"sticker.png","deletedDate":"2017-04-28"},{"name":"OWASP Juice Shop Iron-Ons (16pcs)","description":"Upgrade your clothes with washer safe <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">iron-ons</a> of the OWASP Juice Shop or CTF Extension logo!","price":14.99,"image":"iron-on.jpg"},{"name":"OWASP Juice Shop Magnets (16pcs)","description":"Your fridge will be even cooler with these OWASP Juice Shop or CTF Extension logo <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">magnets</a>!","price":15.99,"image":"magnets.jpg"},{"name":"OWASP Juice Shop Sticker Page","description":"Massive decoration opportunities with these OWASP Juice Shop or CTF Extension <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">sticker pages</a>! Each page has 16 stickers on it.","price":9.99,"image":"sticker_page.jpg"},{"name":"OWASP Juice Shop Sticker Single","description":"Super high-quality vinyl <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">sticker single</a> with the OWASP Juice Shop or CTF Extension logo! The ultimate laptop decal!","price":4.99,"image":"sticker_single.jpg"},{"name":"OWASP Juice Shop Temporary Tattoos (16pcs)","description":"Get one of these <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">temporary tattoos</a> to proudly wear the OWASP Juice Shop or CTF Extension logo on your skin! If you tweet a photo of yourself with the tattoo, you get a couple of our stickers for free! Please mention <a href=\"https://twitter.com/owasp_juiceshop\" target=\"_blank\"><code>@owasp_juiceshop</code></a> in your tweet!","price":14.99,"image":"tattoo.jpg","reviews":[{"text":"I straight-up gots nuff props fo'these tattoos!","author":"rapper"}]},{"name":"OWASP Juice Shop Mug","description":"Black mug with regular logo on one side and CTF logo on the other! Your colleagues will envy you!","price":21.99,"image":"fan_mug.jpg"},{"name":"OWASP Juice Shop Hoodie","description":"Mr. Robot-style apparel. But in black. And with logo.","price":49.99,"image":"fan_hoodie.jpg"},{"name":"OWASP Juice Shop-CTF Velcro Patch","description":"4x3.5\" embroidered patch with velcro backside. The ultimate decal for every tactical bag or backpack!","price":2.92,"quantity":5,"limitPerUser":5,"image":"velcro-patch.jpg","reviews":[{"text":"This thang would look phat on Bobby's jacked fur coat!","author":"rapper"},{"text":"Looks so much better on my uniform than the boring Starfleet symbol.","author":"jim"}]},{"name":"Woodruff Syrup \"Forest Master X-Treme\"","description":"Harvested and manufactured in the Black Forest, Germany. Can cause hyperactive behavior in children. Can cause permanent green tongue when consumed undiluted.","price":6.99,"image":"woodruff_syrup.jpg"},{"name":"Green Smoothie","description":"Looks poisonous but is actually very good for your health! Made from green cabbage, spinach, kiwi and grass.","price":1.99,"image":"green_smoothie.jpg","reviews":[{"text":"Fresh out of a replicator.","author":"jim"}]},{"name":"Quince Juice (1000ml)","description":"Juice of the <em>Cydonia oblonga</em> fruit. Not exactly sweet but rich in Vitamin C.","price":4.99,"image":"quince.jpg"},{"name":"Apple Pomace","description":"Finest pressings of apples. Allergy disclaimer: Might contain traces of worms. Can be <a href=\"/#recycle\">sent back to us</a> for recycling.","price":0.89,"limitPerUser":5,"image":"apple_pressings.jpg"},{"name":"Fruit Press","description":"Fruits go in. Juice comes out. Pomace you can send back to us for recycling purposes.","price":89.99,"image":"fruit_press.jpg"},{"name":"OWASP Juice Shop Logo (3D-printed)","description":"This rare item was designed and handcrafted in Sweden. This is why it is so incredibly expensive despite its complete lack of purpose.","price":99.99,"image":"3d_keychain.jpg","fileForRetrieveBlueprintChallenge":"JuiceShop.stl","exifForBlueprintChallenge":["OpenSCAD"]},{"name":"Juice Shop Artwork","description":"Unique masterpiece painted with different kinds of juice on 90g/m² lined paper.","price":278.74,"quantity":0,"image":"artwork.jpg","deletedDate":"2020-12-24"},{"name":"Global OWASP WASPY Award 2017 Nomination","description":"Your chance to nominate up to three quiet pillars of the OWASP community ends 2017-06-30! <a href=\"https://www.owasp.org/index.php/WASPY_Awards_2017\">Nominate now!</a>","price":0.03,"image":"waspy.png","deletedDate":"2017-07-01"},{"name":"Strawberry Juice (500ml)","description":"Sweet & tasty!","price":3.99,"image":"strawberry_juice.jpeg"},{"name":"Carrot Juice (1000ml)","description":"As the old German saying goes: \"Carrots are good for the eyes. Or has anyone ever seen a rabbit with glasses?\"","price":2.99,"image":"carrot_juice.jpeg","reviews":[{"text":"0 st4rs f0r 7h3 h0rr1bl3 s3cur17y","author":"uvogin"}]},{"name":"OWASP Juice Shop Sweden Tour 2017 Sticker Sheet (Special Edition)","description":"10 sheets of Sweden-themed stickers with 15 stickers on each.","price":19.1,"image":"stickersheet_se.png","deletedDate":"2017-09-20"},{"name":"Pwning OWASP Juice Shop","description":"<em>The official Companion Guide</em> by Björn Kimminich available <a href=\"https://leanpub.com/juice-shop\">for free on LeanPub</a> and also <a href=\"https://pwning.owasp-juice.shop\">readable online</a>!","price":5.99,"image":"cover_small.jpg","reviews":[{"text":"Even more interesting than watching Interdimensional Cable!","author":"morty"}]},{"name":"Melon Bike (Comeback-Product 2018 Edition)","description":"The wheels of this bicycle are made from real water melons. You might not want to ride it up/down the curb too hard.","price":2999,"quantity":3,"limitPerUser":1,"image":"melon_bike.jpeg"},{"name":"OWASP Juice Shop Coaster (10pcs)","description":"Our 95mm circle coasters are printed in full color and made from thick, premium coaster board.","price":19.99,"quantity":0,"image":"coaster.jpg"},{"name":"OWASP Snakes and Ladders - Web Applications","description":"This amazing web application security awareness board game is <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1969196030\">available for Tabletop Simulator on Steam Workshop</a> now!","price":0.01,"quantity":8,"image":"snakes_ladders.jpg","reviews":[{"text":"Wait for a 10$ Steam sale of Tabletop Simulator!","author":"bjoernOwasp"}]},{"name":"OWASP Snakes and Ladders - Mobile Apps","description":"This amazing mobile app security awareness board game is <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1970691216\">available for Tabletop Simulator on Steam Workshop</a> now!","price":0.01,"quantity":0,"image":"snakes_ladders_m.jpg","reviews":[{"text":"Here yo' learn how tha fuck ta not show yo' goddamn phone on camera!","author":"rapper"}]},{"name":"OWASP Juice Shop Holographic Sticker","description":"Die-cut holographic sticker. Stand out from those 08/15-sticker-covered laptops with this shiny beacon of 80's coolness!","price":2,"quantity":0,"image":"holo_sticker.png","reviews":[{"text":"Rad, dude!","author":"rapper"},{"text":"Looks spacy on Bones' new tricorder!","author":"jim"},{"text":"Will put one on the Planet Express ship's bumper!","author":"bender"}]},{"name":"OWASP Juice Shop \"King of the Hill\" Facemask","description":"Facemask with compartment for filter from 50% cotton and 50% polyester.","price":13.49,"quantity":0,"limitPerUser":1,"image":"fan_facemask.jpg","reviews":[{"text":"K33p5 y0ur ju1cy 5plu773r 70 y0ur53lf!","author":"uvogin"},{"text":"Puny mask for puny human weaklings!","author":"bender"}]},{"name":"Juice Shop Adversary Trading Card (Common)","description":"Common rarity \"Juice Shop\" card for the <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSecLEakawSQ56lBe2JOSbFwFYrKDCIN7Yd3iHFdQc5z8ApwdQ/viewform\">Adversary Trading Cards</a> CCG.","price":2.99,"deluxePrice":0.99,"deletedDate":"2020-11-30","limitPerUser":5,"image":"ccg_common.png","reviews":[{"text":"Ooooh, puny human playing Mau Mau, now?","author":"bender"}]},{"name":"Juice Shop Adversary Trading Card (Super Rare)","description":"Super rare \"Juice Shop\" card with holographic foil-coating for the <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSecLEakawSQ56lBe2JOSbFwFYrKDCIN7Yd3iHFdQc5z8ApwdQ/viewform\">Adversary Trading Cards</a> CCG.","price":99.99,"deluxePrice":69.99,"deletedDate":"2020-11-30","quantity":2,"limitPerUser":1,"image":"ccg_foil.png","reviews":[{"text":"Mau Mau with bling-bling? Humans are so pathetic!","author":"bender"}]},{"name":"Juice Shop \"Permafrost\" 2020 Edition","description":"Exact version of <a href=\"https://github.com/juice-shop/juice-shop/releases/tag/v9.3.1-PERMAFROST\">OWASP Juice Shop that was archived on 02/02/2020</a> by the GitHub Archive Program and ultimately went into the <a href=\"https://github.blog/2020-07-16-github-archive-program-the-journey-of-the-worlds-open-source-code-to-the-arctic\">Arctic Code Vault</a> on July 8. 2020 where it will be safely stored for at least 1000 years.","price":9999.99,"quantity":1,"limitPerUser":1,"image":"permafrost.jpg","reviews":[{"text":"🧊 Let it go, let it go 🎶 Can't hold it back anymore 🎶 Let it go, let it go 🎶 Turn away and slam the door ❄️","author":"rapper"}]},{"name":"Best Juice Shop Salesman Artwork","description":"Unique digital painting depicting Stan, our most qualified and almost profitable salesman. He made a succesful carreer in selling used ships, coffins, krypts, crosses, real estate, life insurance, restaurant supplies, voodoo enhanced asbestos and courtroom souvenirs before <em>finally</em> adding his expertise to the Juice Shop marketing team.","price":5000,"quantity":1,"image":"artwork2.jpg","reviews":[{"text":"I'd stand on my head to make you a deal for this piece of art.","author":"stan"},{"text":"Just when my opinion of humans couldn't get any lower, along comes Stan...","author":"bender"}]},{"name":"OWASP Juice Shop Card (non-foil)","description":"Mythic rare <small><em>(obviously...)</em></small> card \"OWASP Juice Shop\" with three distinctly useful abilities. Alpha printing, mint condition. A true collectors piece to own!","price":1000,"quantity":3,"limitPerUser":1,"image":"card_alpha.jpg","reviews":[{"text":"DO NOT PLAY WITH THIS! Double-sleeve, then put it in the GitHub Arctic Vault for perfect preservation and boost of secondary market value!","author":"accountant"}]},{"name":"20th Anniversary Celebration Ticket","description":"Get your <a href=\"https://20thanniversary.owasp.org/\" target=\"_blank\">free 🎫 for OWASP 20th Anniversary Celebration</a> online conference! Hear from world renowned keynotes and special speakers, network with your peers and interact with our event sponsors. With an anticipated 10k+ attendees from around the world, you will not want to miss this live on-line event!","price":1e-20,"deletedDate":"2021-09-25","limitPerUser":1,"image":"20th.jpeg","reviews":[{"text":"I'll be there! Will you, too?","author":"bjoernOwasp"}]},{"name":"OWASP Juice Shop LEGO™ Tower","description":"Want to host a Juice Shop CTF in style? Build <a href=\"https://github.com/OWASP/owasp-swag/blob/master/projects/juice-shop/lego/OWASP%20JuiceShop%20Pi-server%201.2.pdf\" target=\"_blank\">your own LEGO™ tower</a> which holds four Raspberry Pi 4 models with PoE HAT modules <a href=\"https://github.com/juice-shop/multi-juicer/blob/main/guides/raspberry-pi/raspberry-pi.md\" target=\"_blank\">running a MultiJuicer Kubernetes cluster</a>! Wire to a switch and connect to your network to have an out-of-the-box ready CTF up in no time!","price":799,"quantity":3,"limitPerUser":1,"image":"lego_case.jpg","reviews":[{"text":"Check out the /#/photo-wall for some impressions of the assembly process!","author":"bjoernOwasp"}]},{"name":"DSOMM & Juice Shop User Day Ticket","description":"You are going to the OWASP Global AppSec San Francisco 2024? <a href=\"https://www.eventbrite.com/e/owasp-global-appsec-san-francisco-2024-tickets-723699172707\" target=\"_blank\">Get a ticket<sup>*</sup></a> for this amazing side event as well! Check the juice-packed agenda <a href=\"https://owasp.org/www-project-juice-shop/#div-userday2024\" target=\"_blank\">here</a> for all the details!<br><br><small><small><sup>*</sup>=scroll down to <strong>Elevate: DSOMM and Juice Shop User Day (Sept. 25)</strong> after clicking <em>Get Tickets</em> on Eventbrite. Ticket price set to only covers fees for room, AV, and catering throughout the day.</small></small>","price":55.2,"deletedDate":"2024-09-26","limitPerUser":1,"image":"user_day_ticket.png","reviews":[{"text":"The DSOMM Live Assessment session will even use Juice Shop as its \"real-world\" example!","author":"timo"},{"text":"We will showcase the amazing MultiJuicer Lego Tower at this event!","author":"jannik"}]},{"name":"Pineapple Juice (1000ml)","description":"Tropical refreshment from the finest sun-ripened pineapples.","price":2.99,"image":"pineapple_juice.png"},{"name":"Melon Juice (1000ml)","description":"Refreshing and sweet juice made from ripe melons.","price":2.49,"image":"melon_juice.png"},{"name":"Grape Juice (1000ml)","description":"Deep purple and full of antioxidants from selected grapes.","price":2.99,"image":"grape_juice.png"},{"name":"Dragonfruit Juice (500ml)","description":"Exotic and vibrant juice made from dragonfruit.","price":3.99,"image":"dragonfruit_juice.png"},{"name":"Berry Juice (1000ml)","description":"A delicious blend of fresh forest berries.","price":3.49,"image":"berry_juice.png"},{"name":"Basil Smoothie","description":"A unique blend of fresh basil and ginger for a healthy kick.","price":2.99,"image":"basil_smoothie.png","reviews":[{"text":"(ง'̀-'́)ง","author":"basil"}]},{"name":"Bragă (500ml)","description":"Traditional Balkan drink made from fermented millet. Lightly sweet-sour, refreshing, and naturally energizing.","price":2.49,"image":"braga.jpg"},{"name":"Elderflower Cordial (500ml)","description":"Floral and fragrant soft drink made from elderflowers. Traditionally enjoyed chilled.","price":3.29,"image":"elderflower_cordial.jpg"},{"name":"Sea Buckthorn Juice (500ml)","description":"Tangy and slightly sour juice, extremely rich in Vitamin C and antioxidants.","price":3.99,"image":"sea_buckthorn_juice.jpg"},{"name":"Pomegranate Drink (500ml)","description":"A sweet and tart refreshment inspired by classic grenadine flavors.","price":4.49,"image":"pomegranate_drink.jpg"}],"memories":[{"image":"magn(et)ificent!-1571814229653.jpg","caption":"Magn(et)ificent!","user":"bjoernGoogle"},{"image":"my-rare-collectors-item!-[̲̅$̲̅(̲̅-͡°-͜ʖ-͡°̲̅)̲̅$̲̅]-1572603645543.jpg","caption":"My rare collectors item! [̲̅$̲̅(̲̅ ͡° ͜ʖ ͡°̲̅)̲̅$̲̅]","user":"bjoernGoogle"},{"image":"favorite-hiking-place.png","caption":"I love going hiking here...","geoStalkingMetaSecurityQuestion":14,"geoStalkingMetaSecurityAnswer":"Daniel Boone National Forest"},{"image":"IMG_4253.jpg","caption":"My old workplace...","geoStalkingVisualSecurityQuestion":10,"geoStalkingVisualSecurityAnswer":"ITsec"},{"image":"BeeHaven.png","caption":"Welcome to the Bee Haven (/#/bee-haven)🐝","user":"evm"},{"image":"sorted-the-pieces,-starting-assembly-process-1721152307290.jpg","caption":"Sorted the pieces, starting assembly process...","user":"bjoernOwasp"},{"image":"building-something-literally-bottom-up-1721152342603.jpg","caption":"Building something literally bottom up...","user":"bjoernOwasp"},{"image":"putting-in-the-hardware-1721152366854.jpg","caption":"Putting in the hardware...","user":"bjoernOwasp"},{"image":"everything-up-and-running!-1721152385146.jpg","caption":"Everything up and running!","user":"bjoernOwasp"}],"ctf":{"showFlagsInNotifications":false,"showCountryDetailsInNotifications":"none","countryMapping":null,"systemWideNotifications":{"url":null,"pollFrequencySeconds":null}}}}
          - - -
          Evidence
          192.168.99.100:3000
          Solution -

          Remove the private IP address from the HTTP response body. For comments, use JSP/ASP/PHP comment instead of HTML/JavaScript comment which can be seen by client browsers.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - X-Content-Type-Options Header Missing (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvksd6e - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

          -
          Other info -

          This issue still applies to error type pages (401, 403, 500, etc.) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

          - -

          At "High" threshold this scan rule will not alert on client or server error responses.

          -
          Request
          - Request line and header section (292 bytes) - -
          GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvksd6e HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (230 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/plain; charset=UTF-8
          -Content-Length: 96
          -Date: Thu, 28 May 2026 13:51:11 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (96 bytes) - -
          0{"sid":"DDmfHO9swhgnxBKzAAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
          - - -
          Parameter
          x-content-type-options
          Solution -

          Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

          - -

          If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  8. - -
  9. -

    - Risk=Low, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Timestamp Disclosure - Unix (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A timestamp was disclosed by the application/web server. - Unix

          -
          Other info -

          1666666667, which evaluates to: 2022-10-24 22:57:47.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 13:41:08 GMT
          -ETag: W/"26af-19e6ed14201"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 13:50:30 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          1666666667
          Solution -

          Manually confirm that the timestamp data is not sensitive, and that the data cannot be aggregated to disclose exploitable patterns.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  10. - - - - - - -
  11. -

    - Risk=Informational, Confidence=Medium (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Modern Web Application (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The application appears to be a modern web application. If you need to explore it automatically then the Ajax Spider may well be more effective than the standard one.

          -
          Other info -

          No links have been found while there are scripts, which is an indication that this is a modern web application.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 13:41:08 GMT
          -ETag: W/"26af-19e6ed14201"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 13:50:29 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          Solution -

          This is an informational alert and so no changes are required.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  12. - - - -
-
- -
-

Appendix

- -
-

Alert Types

-

This section contains additional information on the types of alerts in the report.

-
    -
  1. -

    SQL Injection

    - - - - - - - - - - - - - - - - - -
    Source - - raised by an active scanner (SQL Injection) - -
    CWE ID89
    WASC ID19
    Reference -
      -
    1. https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
    2. -
    -
    -
  2. -
  3. -

    Content Security Policy (CSP) Header Not Set

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Content Security Policy (CSP) Header Not Set) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP
    2. -
    3. https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html
    4. -
    5. https://www.w3.org/TR/CSP/
    6. -
    7. https://w3c.github.io/webappsec-csp/
    8. -
    9. https://web.dev/articles/csp
    10. -
    11. https://caniuse.com/#feat=contentsecuritypolicy
    12. -
    13. https://content-security-policy.com/
    14. -
    -
    -
  4. -
  5. -

    Cross-Domain Misconfiguration

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Cross-Domain Misconfiguration) - -
    CWE ID264
    WASC ID14
    Reference -
      -
    1. https://vulncat.fortify.com/en/detail?category=HTML5&subcategory=Overly%20Permissive%20CORS%20Policy
    2. -
    -
    -
  6. -
  7. -

    Missing Anti-clickjacking Header

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Anti-clickjacking Header) - -
    CWE ID1021
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options
    2. -
    -
    -
  8. -
  9. -

    Session ID in URL Rewrite

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Session ID in URL Rewrite) - -
    CWE ID598
    WASC ID13
    Reference -
      -
    1. https://seclists.org/webappsec/2002/q4/111
    2. -
    -
    -
  10. -
  11. -

    Private IP Disclosure

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Private IP Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://datatracker.ietf.org/doc/html/rfc1918
    2. -
    -
    -
  12. -
  13. -

    Timestamp Disclosure - Unix

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Timestamp Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://cwe.mitre.org/data/definitions/200.html
    2. -
    -
    -
  14. -
  15. -

    X-Content-Type-Options Header Missing

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (X-Content-Type-Options Header Missing) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/compatibility/gg622941(v=vs.85)
    2. -
    3. https://owasp.org/www-community/Security_Headers
    4. -
    -
    -
  16. -
  17. -

    Modern Web Application

    - - - - - - - - -
    Source - - raised by a passive scanner (Modern Web Application) - -
    -
  18. -
-
-
- -
- - - - - diff --git a/TestesRealizados1/QA&Full/normalize/LICENSE.md b/TestesRealizados1/QA&Full/normalize/LICENSE.md deleted file mode 100644 index 43b5ddc..0000000 --- a/TestesRealizados1/QA&Full/normalize/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# The MIT License (MIT) - -Copyright © Nicolas Gallagher and Jonathan Neal - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/TestesRealizados1/QA&Full/normalize/normalize.css b/TestesRealizados1/QA&Full/normalize/normalize.css deleted file mode 100644 index 192eb9c..0000000 --- a/TestesRealizados1/QA&Full/normalize/normalize.css +++ /dev/null @@ -1,349 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} diff --git a/TestesRealizados1/QA&Full/themes/original/colors.css b/TestesRealizados1/QA&Full/themes/original/colors.css deleted file mode 100644 index fd3b963..0000000 --- a/TestesRealizados1/QA&Full/themes/original/colors.css +++ /dev/null @@ -1,139 +0,0 @@ -body { - background-color: #306aa0; - background-image: radial-gradient(circle at top left, #fff 0%, #8ce1d6 15em, #306aa0 100em, #386095 100%); -} - -main, footer { - background-color: #fff; -} - -header { - background-color: #00549e; - color: #fff; -} - -a:link { - color: #004380; -} - -a:visited { - color: #770d67; -} - -a:focus { - background-color: #ffd54d; -} - -a:hover { - background-color: #ffd54d; -} - -a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -header a:link { - color: #f2f7fd; -} - -header a:visited { - color: #f2b5e9; -} - -header a:focus { - background-color: #ffd54d; - color: #004380; -} - -header a:hover { - background-color: #ffd54d; - color: #004380; -} - -header a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #fff6db; -} - -summary:focus { - background-color: #ffd54d; -} - -summary:hover { - background-color: #ffd54d; -} - -summary:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -h2, h3, h4, h5, h6 { - color: #00549e; -} - -.risk-level, .confidence-level { - color: #00549e; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - color: #00549e; -} - -.risk-confidence-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - color: #00549e; -} - -.site-risk-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.alert-type-counts-table > tbody > tr { - border-bottom-color: #00549e; -} - -.alert-type-counts-table th[scope="col"] { - background-color: #00549e; - color: #fff; -} - -.alert-type-counts-table th[scope="col"] { - border-left-color: #fff; -} - -.alerts-table th, .alert-types-table th { - background-color: #306aa0; - color: #fff; -} - -.additional-info-percentages { - color: #00549e; -} - -.insights-table > tbody > tr { - border-bottom-color: #00549e; -} - -.insights-table th[scope="col"] { - background-color: #00549e; - border-left-color: #fff; - color: #fff; -} diff --git a/TestesRealizados1/QA&Full/themes/original/main.css b/TestesRealizados1/QA&Full/themes/original/main.css deleted file mode 100644 index 050bd3f..0000000 --- a/TestesRealizados1/QA&Full/themes/original/main.css +++ /dev/null @@ -1,417 +0,0 @@ -*, *::after, *::before { - box-sizing: border-box; -} - -h1, h2, h3, h4, h5, h6 { - margin: 0; - padding: 0; -} - -pre, ul { - margin: 0; -} - -ol { - list-style-type: none; -} - -h1 { - font-size: 3em; -} - -h2 { - font-size: 2em; -} - -h3, h4, h5, h6 { - font-size: 1em; -} - -html { - box-sizing: border-box; - font-family: Verdana, sans-serif; - line-height: 1.5; -} - -body { - margin: 1.5em 0; -} - -@media screen and (min-width: 50em) { - body { - margin: 1.5em 2ch; - padding: 1.5em 2ch; - } -} - -a:active, header a:active { - outline-style: solid; -} - -header, main { - margin: 0 auto; - max-width: 90ch; - padding: 1.5em 4ch; -} - -header { - border-radius: .25em .25em 0 0; -} - -main { - border-radius: 0 0 .25em .25em; -} - -summary { - cursor: pointer; -} - -.contents { - margin-top: 1.5em; -} - -main > section { - margin-bottom: 4.5em; -} - -.about-this-report > section { - margin-bottom: 3em; -} - -.summaries section { - margin-bottom: 3em; -} - -h2 { - margin-bottom: .75em; -} - -h3 { - margin-bottom: 1.5em; -} - -h4 { - margin-bottom: 1.5em; -} - -.report-parameters--container h4 { - margin-top: 1.5em; -} - -p { - margin: 1.5em 0; -} - -p:first-of-type { - margin-top: 0; -} - -p:last-of-type { - margin-bottom: 0; -} - -.contents li, .alerts li, .alert-types > ol > li { - margin-top: 1.5em; -} - -.alert-types h4 { - margin-bottom: 0; -} - -a { - border-radius: .125em; -} - -caption { - margin-bottom: 1.5em; - text-align: left; -} - -code, .request-method-n-url { - overflow-wrap: anywhere; - white-space: break-spaces; -} - -table { - border-collapse: collapse; -} - -.report-description--container, .report-parameters--container { - margin-left: 2ch; - padding: 0 2ch; -} - -.about-this-report h3, .summaries h3, .appendix h3 { - border-bottom: .05em solid; -} - -.alerts h4 { - text-align: center; -} - -.alerts ol { - padding-left: 0; -} - -.alerts--site-li { - border: .05em solid; - border-radius: .25em; - margin-left: 2ch; - padding: 1.5em 3ch; -} - -.contents ol { - list-style-position: inside; - list-style-type: square; - padding-left: 4ch; -} - -.contexts-list, .sites-list { - list-style-type: square; -} - -.risk-confidence-counts-table { - width: 100%; -} - -.risk-confidence-counts-table tr { - height: 4.5em; -} - -.risk-confidence-counts-table thead > tr { - height: 3em; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table th[scope="rowgroup"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.risk-confidence-counts-table th[scope="row"] { - padding-right: 5%; -} - -@media screen and (max-width: 50em) { - .risk-confidence-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.risk-confidence-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.risk-confidence-counts-table > tbody > tr { - border-top: .05em solid; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table td { - vertical-align: top; -} - -.risk-confidence-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.risk-confidence-counts-table td, .risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - text-align: right; -} - -.site-risk-counts-table { - width: 100%; -} - -.site-risk-counts-table tr { - height: 4.5em; -} - -.site-risk-counts-table thead > tr:first-of-type { - height: 3em; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table th[scope="col"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.site-risk-counts-table th[scope="row"] { - padding-right: 1%; -} - -@media screen and (max-width: 50em) { - .site-risk-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.site-risk-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.site-risk-counts-table > tbody > tr { - border-top: .05em solid; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table td { - vertical-align: top; -} - -.site-risk-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.site-risk-counts-table td, .site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - text-align: right; -} - -.alert-type-counts-table { - width: 100%; -} - -.alert-type-counts-table th, .alert-type-counts-table td { - padding: 0 1rem; - text-align: left; - vertical-align: top; -} - -.alert-type-counts-table td:nth-last-of-type(2) { - padding-left: 1.5rem; -} - -.alert-type-counts-table > tbody > tr { - border-bottom: 0.05em dotted; -} - -.alert-type-counts-table th[scope="col"] { - border-left: 1rem solid; -} - -.alert-type-counts-table th[scope="col"]:first-of-type { - border-left: 0; -} - -.alert-type-counts-table th[scope="col"]:last-of-type, .alert-type-counts-table td:last-of-type { - text-align: right; -} - -.alert-type-counts-table th[scope="col"], .alert-type-counts-table th[scope="row"] { - font-weight: normal; -} - -.alert-type-counts-table th[scope="row"], .alert-type-counts-table td { - padding-bottom: 1.5em; -} - -.alert-type-counts-table thead > th:first-of-type { - width: 45%; -} - -.alerts-table, .alert-types-table, .insights-table { - border-collapse: separate; - border-spacing: 2ch 1.5em; - width: 100%; -} - -.alerts-table th, .alerts-table td, .alert-types-table th, .alert-types-table td, .insights-table td, .insights-table th { - vertical-align: top; -} - -.alerts-table td, .alert-types-table td, .insights-table td { - overflow-wrap: anywhere; -} - -.alerts-table th, .alert-types-table th, .insights-table th { - padding: 0 1ch; -} - -.alerts-table td, .alert-types-table td { - padding: 0 2ch; -} - -.insights-table td { - padding: 0 1ch; -} - -.alerts-table summary { - margin-bottom: 1.5em; -} - -.alert-tags-list { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-tags-list > li { - margin-top: 0; -} - -.request-body, .response-body { - margin-top: 1.5em; -} - -.request-method-n-url { - margin-bottom: 0; -} - -.alert-types-table { - padding-top: 0; -} - -.alert-types-table th { - width: 20%; -} - -.alert-types-table ol { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-types-table li:not(:first-of-type) { - margin-top: 1.5em; -} - -p.alert-types-intro { - margin-bottom: 3em; -} - -.zap-logo { - height: 1em; - margin-right: .25ch; - width: 1em; -} - -h1, h2 { - font-family: Georgia, serif; -} - -.risk-level, .confidence-level, .included-risk-codes, .included-confidence-codes, .additional-info-percentages { - font-family: monospace, monospace; -} - -.context, .site, .request-method-n-url { - font-family: monospace, monospace; -} diff --git a/TestesRealizados1/QA&Full/zap32x32.png b/TestesRealizados1/QA&Full/zap32x32.png deleted file mode 100644 index 9c1019ffb2ad500434d78f20f5a624bd660e6735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1933 zcmV;82Xgp{P)LZ&X_*%IgUcU=kqE(b z4NRzXHHacGqA;V7EOd-rLRUsK6M0)>lNA+QA(1s>0WooNopVsi`f~3%&(A;3?F-PB zvOj!oo}80&pL3q?@9q2jJ@8;-E^rih7x)VQ$FTzF0Ce^0)w*%xMg@9CT^);$`@`-S z|D^%X0-G{2GScem>Zq-)#c><}&YnG+{?@;fz2@5u5&VQI{0HC&b5Eb8v=CMzq8Xh{uDUJ;6-8cvHPPw(V1AXlBMlio^B!;`1mR7lQz6stN1n` zVSRiJ3Jh}IHmwUh{p952jC=DbQ>IW{T+Bm{EyTg%86hH)s*G@RBZ6ZD zR~$s-xgh|tIK<*bMohZnrPKSTebm&{(An8JZUCD%Zw|w-XamM3aZ{E@QkJ_Sh=4&b zVlZMR6MN-LA+KI)MxOZY4_$EN7gpcl|GBy+*}SFI&@zE+1c5&ojb?% zH-610omUXmkc0pc4MCuY3JRI#ep;zPz!%CkF{7fMRjXD}R#rwLkr?x}`Sa(qYu7G1 z4zIhf6b}b*b0|Z?2bxNbAlb*&-!+hzmq$fKMaqhiM-T+Gw6t*h_U({ddb?6-2&w|A zpn{45bPqNps$5aDKvhCrw+1VURUz5a1;EaoJE^Lw8q=z_wl+#jOPTPwnarrD$C>b1 zeBZ~~fqr423P90ogC0=PH?8Vm*#v}(0|k?r!xzizShj2#GiT1Ey}f-@07XSb?AWn` zo)51w@$*j*Sf2pBs|*LhoR?u5{SD7JEun@R9Ak(IM2sO~gs2fb$L0Oj{d{ntiOR}K z4jw#6R#w)CK$a|7Ld#z-Gd=bqy@><~t0b(&SH%x3{Wghj{ro$E>8w7|8!?eI&lp@s zaK#WcLS%r`jo>*Bw)ZCgII)AS>wjbG)~z%&G>ix$H+M2U56vZe;WP9n69iWA)shSX z`fak)9$cP#M-^Drp9UIWRk0R)RT8QshN)UI2q2optfzJ|r}}xe?|y;IjENjOcI+Mi z7cX9-`|VS7cbpDGkWxfn15~wP#HQ4&KGGL8Zqzd_CM6=?Fb}vQxI!o{fa9gn`BpRU zy|It{{Ct|4nwT|f*5LO}o;*oeSs7W&e}iV^hCM-${BO{>Jm(%YOnIR)X)V55tW|8v z^2ET^D*YDvtkSPaPoj^^$IF?s{&lVgQFL zf4TNCRPNcLzb)TB`ne$0!%HlF+%?X3TygP?!H8f?C?W&GVvG#277}_4P&Z27wKi^_ z`UMY9O6QgM5f&|4M0R!--M6}buJEI=4km*jh{gB1;;i$G!4U@|f*8RtASQ%eXNt)N z2*#qQRjl#oYmeiff0@FG0rvrUs1Grl_V)4yJq|S&*HyA`hPcY4iwPqM T`!Z{P00000NkvXXu0mjf{kVU6 diff --git a/TestesRealizados1/QA&Standard/QA&Standard.html b/TestesRealizados1/QA&Standard/QA&Standard.html deleted file mode 100644 index aaf3d1f..0000000 --- a/TestesRealizados1/QA&Standard/QA&Standard.html +++ /dev/null @@ -1,2768 +0,0 @@ - - - - - -ZAP by Checkmarx Scanning Report - - - - - -
-

ZAP by Checkmarx Scanning Report

-

- Generated with ZAP - on Thu 28 May 2026, at 10:52:40 -

-

ZAP Version: 2.17.0

-

- ZAP by Checkmarx -

-
- -
- -
-

Contents

- -
- -
-

About This Report

- - - -
-

Report Parameters

-
-

Contexts

- - -

No contexts were selected, so all contexts were included by default.

- - -

Sites

- -

The following sites were included:

-
    -
  • http://20.60.0.1:3000
  • -
- -

(If no sites were selected, all sites were included by default.)

-

An included site must also be within one of the included contexts for its data to be included in the report.

- -

Risk levels

-

- Included: - - High, Medium, Low, Informational -

-

- Excluded: - None - -

- -

Confidence levels

-

- Included: - - - User Confirmed, High, Medium, Low -

-

- Excluded: - - - User Confirmed, High, Medium, Low, False Positive -

-
-
-
- - -
- -
- -
-

Summaries

- -
-

Alert Counts by Risk and Confidence

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts for each level of risk and confidence included in the report.

-

(The percentages in brackets represent the count as a percentage of the total number of alerts included in the report, rounded to one decimal place.)

-
Confidence
User ConfirmedHighMediumLowTotal
RiskHigh0
(0.0%)
0
(0.0%)
0
(0.0%)
1
(10.0%)
1
(10.0%)
Medium0
(0.0%)
2
(20.0%)
2
(20.0%)
0
(0.0%)
4
(40.0%)
Low0
(0.0%)
0
(0.0%)
2
(20.0%)
1
(10.0%)
3
(30.0%)
Informational0
(0.0%)
1
(10.0%)
1
(10.0%)
0
(0.0%)
2
(20.0%)
Total0
(0.0%)
3
(30.0%)
5
(50.0%)
2
(20.0%)
10
(100%)
-
- -
-

Alert Counts by Site and Risk

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows, for each site for which one or more alerts were raised, the number of alerts raised at each risk level.

-

Alerts with a confidence level of "False Positive" have been excluded from these counts.

-

(The numbers in brackets are the number of alerts raised for the site at or above that risk level.)

-
Risk
- High
(= High) -
- Medium
(>= Medium) -
- Low
(>= Low) -
- Informational
(>= Informational) -
Sitehttp://20.60.0.1:30001
(1)
4
(5)
3
(8)
2
(10)
-
- -
-

Alert Counts by Alert Type

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts of each alert type, together with the alert type's risk level.

-

(The percentages in brackets represent each count as a percentage, rounded to one decimal place, of the total number of alerts included in this report.)

-
Alert typeRiskCount
SQL InjectionHigh1
(10.0%)
Content Security Policy (CSP) Header Not SetMedium5
(50.0%)
Cross-Domain MisconfigurationMedium5
(50.0%)
Missing Anti-clickjacking HeaderMedium4
(40.0%)
Session ID in URL RewriteMedium5
(50.0%)
Private IP DisclosureLow1
(10.0%)
Timestamp Disclosure - UnixLow5
(50.0%)
X-Content-Type-Options Header MissingLow5
(50.0%)
Modern Web ApplicationInformational5
(50.0%)
Session Management Response IdentifiedInformational1
(10.0%)
Total10
-
- -
-

Insights

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows information that is likely to be very relevant to you, but which is not related to vulnerabilities, or potentially even related to the application in question.

-
LevelReasonSiteDescriptionStatistic
-
Medium
-
-
Exceeded Low
-
-
-
-
Percentage of memory used
-
-
91
-
-
Low
-
-
Warning
-
-
-
-
ZAP errors logged - see the zap.log file for details
-
-
262
-
-
Low
-
-
Warning
-
-
-
-
ZAP warnings logged - see the zap.log file for details
-
-
95
-
-
Low
-
-
Exceeded Low
-
-
-
-
Percentage of network failures
-
-
5 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 1xx
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 2xx
-
-
78 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 3xx
-
-
17 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 4xx
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/javascript
-
-
9 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/json
-
-
5 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/octet-stream
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/jpeg
-
-
6 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/png
-
-
3 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/x-icon
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/css
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/html
-
-
66 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/markdown
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/plain
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method GET
-
-
97 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method POST
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Count of total endpoints
-
-
174
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of slow responses
-
-
83 %
-
-
-
- -
-

Alerts

-
    - - - - - - - - -
  1. -

    - Risk=High, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - SQL Injection (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/products/search?q=%27%28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          SQL injection may be possible.

          -
          Request
          - Request line and header section (403 bytes) - -
          GET http://20.60.0.1:3000/rest/products/search?q=%27%28 HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -Cookie: language=en; continueCode=y1OzBZxNpnLrM5WmgEKv8XakQ7DA6LcQGJ6yOlV9Pow1jYqbz2eRB34oE5mM
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (362 bytes) - -
          HTTP/1.1 500 Internal Server Error
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 14:42:26 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -content-length: 309
          -
          -
          - - -
          - Response body (309 bytes) - -
          {
          -  "error": {
          -    "message": "SQLITE_ERROR: near \"(\": syntax error",
          -    "stack": "Error: SQLITE_ERROR: near \"(\": syntax error",
          -    "errno": 1,
          -    "code": "SQLITE_ERROR",
          -    "sql": "SELECT * FROM Products WHERE ((name LIKE '%'(%' OR description LIKE '%'(%') AND deletedAt IS NULL) ORDER BY name"
          -  }
          -}
          - - -
          Parameter
          q
          Attack
          '(
          Evidence
          HTTP/1.1 500 Internal Server Error
          Solution -

          Do not trust client side input, even if there is client side validation in place.

          - -

          In general, type check all data on the server side.

          - -

          If the application uses JDBC, use PreparedStatement or CallableStatement, with parameters passed by '?'

          - -

          If the application uses ASP, use ADO Command Objects with strong type checking and parameterized queries.

          - -

          If database Stored Procedures can be used, use them.

          - -

          Do *not* concatenate strings into queries in the stored procedure, or use 'exec', 'exec immediate', or equivalent functionality!

          - -

          Do not create dynamic SQL queries using simple string concatenation.

          - -

          Escape all data received from the client.

          - -

          Apply an 'allow list' of allowed characters, or a 'deny list' of disallowed characters in user input.

          - -

          Apply the principle of least privilege by using the least privileged database user possible.

          - -

          In particular, avoid using the 'sa' or 'db-owner' database users. This does not eliminate SQL injection, but minimizes its impact.

          - -

          Grant the minimum database access that is necessary for the application.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  2. - - - - -
  3. -

    - Risk=Medium, Confidence=High (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Content Security Policy (CSP) Header Not Set (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware. CSP provides a set of standard HTTP headers that allow website owners to declare approved sources of content that browsers should be allowed to load on that page — covered types are JavaScript, CSS, HTML frames, fonts, images and embeddable objects such as Java applets, ActiveX, audio and video files.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 14:15:52 GMT
          -ETag: W/"26af-19e6ef1100f"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 14:29:22 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Solution -

          Ensure that your web server, application server, load balancer, etc. is configured to set the Content-Security-Policy header.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - Session ID in URL Rewrite (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvl01Q-&sid=90ylhU5mJ94Lfd2KAAAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          URL rewrite is used to track user session ID. The session ID may be disclosed via cross-site referer header. In addition, the session ID might be stored in browser history or server logs.

          -
          Request
          - Request line and header section (317 bytes) - -
          GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvl01Q-&sid=90ylhU5mJ94Lfd2KAAAA HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (231 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/plain; charset=UTF-8
          -Content-Length: 612
          -Date: Thu, 28 May 2026 14:32:20 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (612 bytes) - -
          40{"sid":"Al2JOUif0zWAxvtPAAAB"}42["server started"]42["challenge solved",{"key":"errorHandlingChallenge","name":"Error Handling","challenge":"Error Handling (Provoke an error that is neither very gracefully nor consistently handled.)","flag":"9c297196ecf8890bc1e900fcf3aebae8c9f9880a","hidden":false,"isRestore":false,"codingChallenge":false}]42["challenge solved",{"key":"directoryListingChallenge","name":"Confidential Document","challenge":"Confidential Document (Access a confidential document.)","flag":"8d2072c6b0a455608ca1a293dc0c9579883fc6a5","hidden":false,"isRestore":false,"codingChallenge":true}]
          - - -
          Parameter
          sid
          Evidence
          90ylhU5mJ94Lfd2KAAAA
          Solution -

          For secure content, put session ID in a cookie. To be even more secure consider using a combination of cookie and URL rewrite.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  4. - -
  5. -

    - Risk=Medium, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Cross-Domain Misconfiguration (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/robots.txt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Web browser data loading may be possible, due to a Cross Origin Resource Sharing (CORS) misconfiguration on the web server.

          -
          Other info -

          The CORS misconfiguration on the web server permits cross-domain read requests from arbitrary third party domains, using unauthenticated APIs on this domain. Web browser implementations do not permit arbitrary third parties to read the response from authenticated APIs, however. This reduces the risk somewhat. This misconfiguration could be used by an attacker to access data that is available in an unauthenticated manner, but which uses some other form of security, such as IP address white-listing.

          -
          Request
          - Request line and header section (239 bytes) - -
          GET http://20.60.0.1:3000/robots.txt HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (378 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: text/plain; charset=utf-8
          -Content-Length: 28
          -ETag: W/"1c-8HgF6mNyhsSFK0pascC9uB0wjX0"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 14:29:23 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (28 bytes) - -
          User-agent: *
          -Disallow: /ftp
          - - -
          Evidence
          Access-Control-Allow-Origin: *
          Solution -

          Ensure that sensitive data is not available in an unauthenticated manner (using IP address white-listing, for instance).

          - -

          Configure the "Access-Control-Allow-Origin" HTTP header to a more restrictive set of domains, or remove all CORS headers entirely, to allow the web browser to enforce the Same Origin Policy (SOP) in a more restrictive manner.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - Missing Anti-clickjacking Header (1) -
        -
          -
        1. - - POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvl01QL&sid=90ylhU5mJ94Lfd2KAAAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The response does not protect against 'ClickJacking' attacks. It should include either Content-Security-Policy with 'frame-ancestors' directive or X-Frame-Options.

          -
          Request
          - Request line and header section (408 bytes) - -
          POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvl01QL&sid=90ylhU5mJ94Lfd2KAAAA HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Content-type: text/plain;charset=UTF-8
          -Content-Length: 2
          -Origin: http://20.60.0.1:3000
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (2 bytes) - -
          40
          - - -
          Response
          - Status line and header section (213 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/html
          -Content-Length: 2
          -Date: Thu, 28 May 2026 14:32:20 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (2 bytes) - -
          ok
          - - -
          Parameter
          x-frame-options
          Solution -

          Modern Web browsers support the Content-Security-Policy and X-Frame-Options HTTP headers. Ensure one of them is set on all web pages returned by your site/app.

          - -

          If you expect the page to be framed only by pages on your server (e.g. it's part of a FRAMESET) then you'll want to use SAMEORIGIN, otherwise if you never expect the page to be framed, you should use DENY. Alternatively consider implementing Content Security Policy's "frame-ancestors" directive.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  6. - - - - - - - - -
  7. -

    - Risk=Low, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Private IP Disclosure (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/admin/application-configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A private IP (such as 10.x.x.x, 172.x.x.x, 192.168.x.x) or an Amazon EC2 private hostname (for example, ip-10-0-56-78) has been found in the HTTP response body. This information might be helpful for further attacks targeting internal systems.

          -
          Other info -

          192.168.99.100:3000

          - -

          192.168.99.100:4200

          -
          Request
          - Request line and header section (314 bytes) - -
          GET http://20.60.0.1:3000/rest/admin/application-configuration HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (389 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Content-Length: 23513
          -ETag: W/"5bd9-reVonwE2GOcMzw2LpzIkSqyB2OE"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 14:32:16 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (23513 bytes) - -
          {"config":{"server":{"port":3000,"basePath":"","baseUrl":"http://localhost:3000"},"application":{"domain":"juice-sh.op","name":"OWASP Juice Shop","logo":"JuiceShop_Logo.png","favicon":"favicon_js.ico","theme":"bluegrey-lightgreen","showVersionNumber":true,"showGitHubLinks":true,"localBackupEnabled":true,"numberOfRandomFakeUsers":0,"altcoinName":"Juicycoin","privacyContactEmail":"donotreply@owasp-juice.shop","customMetricsPrefix":"juiceshop","chatBot":{"name":"Juicy the Smart Assistant","avatar":"JuicyChatBot.png","model":"gemma4:e4b","llmMaxRetries":2,"sampleQuestions":["CHATBOT_PROMPT_RECOMMENDATION_SUMMER_PARTY","CHATBOT_PROMPT_RECOMMENDATION_POPULAR","CHATBOT_PROMPT_RECOMMENDATION_SUGAR_FREE","CHATBOT_PROMPT_RECOMMENDATION_START_DAY","CHATBOT_PROMPT_RECOMMENDATION_SEASONAL"]},"social":{"blueSkyUrl":"https://bsky.app/profile/owasp-juice.shop","mastodonUrl":"https://fosstodon.org/@owasp_juiceshop","twitterUrl":"https://twitter.com/owasp_juiceshop","facebookUrl":"https://www.facebook.com/owasp.juiceshop","slackUrl":"https://owasp.org/slack/invite","redditUrl":"https://www.reddit.com/r/owasp_juiceshop","pressKitUrl":"https://github.com/OWASP/owasp-swag/tree/master/projects/juice-shop","nftUrl":"https://opensea.io/collection/juice-shop","questionnaireUrl":null},"recyclePage":{"topProductImage":"fruit_press.jpg","bottomProductImage":"apple_pressings.jpg"},"welcomeBanner":{"showOnFirstStart":true,"title":"Welcome to OWASP Juice Shop!","message":"<p>Being a web application with a vast number of intended security vulnerabilities, the <strong>OWASP Juice Shop</strong> is supposed to be the opposite of a best practice or template application for web developers: It is an awareness, training, demonstration and exercise tool for security risks in modern web applications. The <strong>OWASP Juice Shop</strong> is an open-source project hosted by the non-profit <a href='https://owasp.org' target='_blank'>Open Worldwide Application Security Project (OWASP)</a> and is developed and maintained by volunteers. Check out the link below for more information and documentation on the project.</p><h1><a href='https://owasp-juice.shop' target='_blank'>https://owasp-juice.shop</a></h1>"},"cookieConsent":{"message":"This website uses fruit cookies to ensure you get the juiciest tracking experience.","dismissText":"Me want it!","linkText":"But me wait!","linkUrl":"https://www.youtube.com/watch?v=9PnbKL3wuH4"},"securityTxt":{"contact":"mailto:donotreply@owasp-juice.shop","encryption":"https://keybase.io/bkimminich/pgp_keys.asc?fingerprint=19c01cb7157e4645e9e2c863062a85a8cbfbdcda","acknowledgements":"/#/score-board","hiring":"/#/jobs","csaf":"/.well-known/csaf/provider-metadata.json"},"promotion":{"video":"owasp_promo.mp4","subtitles":"owasp_promo.vtt"},"easterEggPlanet":{"name":"Orangeuze","overlayMap":"orangemap2k.avif"},"googleOauth":{"clientId":"1005568560502-6hm16lef8oh46hr2d98vf2ohlnj4nfhq.apps.googleusercontent.com","authorizedRedirects":[{"uri":"https://demo.owasp-juice.shop"},{"uri":"https://juice-shop.herokuapp.com"},{"uri":"https://preview.owasp-juice.shop"},{"uri":"https://juice-shop-staging.herokuapp.com"},{"uri":"https://juice-shop.wtf"},{"uri":"http://localhost:3000","proxy":"https://local3000.owasp-juice.shop"},{"uri":"http://127.0.0.1:3000","proxy":"https://local3000.owasp-juice.shop"},{"uri":"http://localhost:4200","proxy":"https://local4200.owasp-juice.shop"},{"uri":"http://127.0.0.1:4200","proxy":"https://local4200.owasp-juice.shop"},{"uri":"http://192.168.99.100:3000","proxy":"https://localmac.owasp-juice.shop"},{"uri":"http://192.168.99.100:4200","proxy":"https://localmac.owasp-juice.shop"},{"uri":"http://penguin.termina.linux.test:3000","proxy":"https://localchromeos.owasp-juice.shop"},{"uri":"http://penguin.termina.linux.test:4200","proxy":"https://localchromeos.owasp-juice.shop"}]}},"challenges":{"showSolvedNotifications":true,"showHints":true,"showMitigations":true,"codingChallengesEnabled":"solved","restrictToTutorialsFirst":false,"overwriteUrlForProductTamperingChallenge":"https://owasp.slack.com","xssBonusPayload":"<iframe width=\"100%\" height=\"166\" scrolling=\"no\" frameborder=\"no\" allow=\"autoplay\" src=\"https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/771984076&color=%23ff5500&auto_play=true&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true\"></iframe>","safetyMode":"auto","csafHashValue":"7e7ce7c65db3bf0625fcea4573d25cff41f2f7e3474f2c74334b14fc65bb4fd26af802ad17a3a03bf0eee6827a00fb8f7905f338c31b5e6ea9cb31620242e843","metricsIgnoredUserAgents":["Prometheus","Alloy","promscrape","otelcol"]},"hackingInstructor":{"isEnabled":true,"avatarImage":"JuicyBot.png","hintPlaybackSpeed":"normal"},"products":[{"name":"Apple Juice (1000ml)","price":1.99,"deluxePrice":0.99,"limitPerUser":5,"description":"The all-time classic.","image":"apple_juice.jpg","reviews":[{"text":"One of my favorites!","author":"admin"},{"text":"Great! We'll have an apple party. Everyone brings an apple and - STUFFS IT DOWN EACH OTHER'S THROAT!","author":"basil"}]},{"name":"Orange Juice (1000ml)","description":"Made from oranges hand-picked by Uncle Dittmeyer.","price":2.99,"deluxePrice":2.49,"image":"orange_juice.jpg","reviews":[{"text":"y0ur f1r3wall needs m0r3 musc13","author":"uvogin"}]},{"name":"Eggfruit Juice (500ml)","description":"Now with even more exotic flavour.","price":8.99,"image":"eggfruit_juice.jpg","reviews":[{"text":"I bought it, would buy again. 5/7","author":"admin"}]},{"name":"Raspberry Juice (1000ml)","description":"Made from blended Raspberry Pi, water and sugar.","price":4.99,"image":"raspberry_juice.jpg"},{"name":"Lemon Juice (500ml)","description":"Sour but full of vitamins.","price":2.99,"deluxePrice":1.99,"limitPerUser":5,"image":"lemon_juice.jpg"},{"name":"Banana Juice (1000ml)","description":"Monkeys love it the most.","price":1.99,"image":"banana_juice.jpg","reviews":[{"text":"Fry liked it too.","author":"bender"}]},{"name":"OWASP Juice Shop T-Shirt","description":"Real fans wear it 24/7!","price":22.49,"limitPerUser":5,"image":"fan_shirt.jpg"},{"name":"OWASP Juice Shop CTF Girlie-Shirt","description":"For serious Capture-the-Flag heroines only!","price":22.49,"image":"fan_girlie.jpg"},{"name":"OWASP SSL Advanced Forensic Tool (O-Saft)","description":"O-Saft is an easy to use tool to show information about SSL certificate and tests the SSL connection according given list of ciphers and various SSL configurations.","price":0.01,"image":"orange_juice.jpg","urlForProductTamperingChallenge":"https://www.owasp.org/index.php/O-Saft"},{"name":"Christmas Super-Surprise-Box (2014 Edition)","description":"Contains a random selection of 10 bottles (each 500ml) of our tastiest juices and an extra fan shirt for an unbeatable price!","price":29.99,"image":"undefined.jpg","useForChristmasSpecialChallenge":true},{"name":"Rippertuer Special Juice","description":"Contains a magical collection of the rarest fruits gathered from all around the world, like Cherymoya Annona cherimola, Jabuticaba Myrciaria cauliflora, Bael Aegle marmelos... and others, at an unbelievable price! <br/><span style=\"color:red;\">This item has been made unavailable because of lack of safety standards.</span>","price":16.99,"image":"undefined.jpg","keywordsForPastebinDataLeakChallenge":["hueteroneel","eurogium edule"]},{"name":"OWASP Juice Shop Sticker (2015/2016 design)","description":"Die-cut sticker with the official 2015/2016 logo. By now this is a rare collectors item. <em>Out of stock!</em>","price":999.99,"image":"sticker.png","deletedDate":"2017-04-28"},{"name":"OWASP Juice Shop Iron-Ons (16pcs)","description":"Upgrade your clothes with washer safe <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">iron-ons</a> of the OWASP Juice Shop or CTF Extension logo!","price":14.99,"image":"iron-on.jpg"},{"name":"OWASP Juice Shop Magnets (16pcs)","description":"Your fridge will be even cooler with these OWASP Juice Shop or CTF Extension logo <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">magnets</a>!","price":15.99,"image":"magnets.jpg"},{"name":"OWASP Juice Shop Sticker Page","description":"Massive decoration opportunities with these OWASP Juice Shop or CTF Extension <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">sticker pages</a>! Each page has 16 stickers on it.","price":9.99,"image":"sticker_page.jpg"},{"name":"OWASP Juice Shop Sticker Single","description":"Super high-quality vinyl <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">sticker single</a> with the OWASP Juice Shop or CTF Extension logo! The ultimate laptop decal!","price":4.99,"image":"sticker_single.jpg"},{"name":"OWASP Juice Shop Temporary Tattoos (16pcs)","description":"Get one of these <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">temporary tattoos</a> to proudly wear the OWASP Juice Shop or CTF Extension logo on your skin! If you tweet a photo of yourself with the tattoo, you get a couple of our stickers for free! Please mention <a href=\"https://twitter.com/owasp_juiceshop\" target=\"_blank\"><code>@owasp_juiceshop</code></a> in your tweet!","price":14.99,"image":"tattoo.jpg","reviews":[{"text":"I straight-up gots nuff props fo'these tattoos!","author":"rapper"}]},{"name":"OWASP Juice Shop Mug","description":"Black mug with regular logo on one side and CTF logo on the other! Your colleagues will envy you!","price":21.99,"image":"fan_mug.jpg"},{"name":"OWASP Juice Shop Hoodie","description":"Mr. Robot-style apparel. But in black. And with logo.","price":49.99,"image":"fan_hoodie.jpg"},{"name":"OWASP Juice Shop-CTF Velcro Patch","description":"4x3.5\" embroidered patch with velcro backside. The ultimate decal for every tactical bag or backpack!","price":2.92,"quantity":5,"limitPerUser":5,"image":"velcro-patch.jpg","reviews":[{"text":"This thang would look phat on Bobby's jacked fur coat!","author":"rapper"},{"text":"Looks so much better on my uniform than the boring Starfleet symbol.","author":"jim"}]},{"name":"Woodruff Syrup \"Forest Master X-Treme\"","description":"Harvested and manufactured in the Black Forest, Germany. Can cause hyperactive behavior in children. Can cause permanent green tongue when consumed undiluted.","price":6.99,"image":"woodruff_syrup.jpg"},{"name":"Green Smoothie","description":"Looks poisonous but is actually very good for your health! Made from green cabbage, spinach, kiwi and grass.","price":1.99,"image":"green_smoothie.jpg","reviews":[{"text":"Fresh out of a replicator.","author":"jim"}]},{"name":"Quince Juice (1000ml)","description":"Juice of the <em>Cydonia oblonga</em> fruit. Not exactly sweet but rich in Vitamin C.","price":4.99,"image":"quince.jpg"},{"name":"Apple Pomace","description":"Finest pressings of apples. Allergy disclaimer: Might contain traces of worms. Can be <a href=\"/#recycle\">sent back to us</a> for recycling.","price":0.89,"limitPerUser":5,"image":"apple_pressings.jpg"},{"name":"Fruit Press","description":"Fruits go in. Juice comes out. Pomace you can send back to us for recycling purposes.","price":89.99,"image":"fruit_press.jpg"},{"name":"OWASP Juice Shop Logo (3D-printed)","description":"This rare item was designed and handcrafted in Sweden. This is why it is so incredibly expensive despite its complete lack of purpose.","price":99.99,"image":"3d_keychain.jpg","fileForRetrieveBlueprintChallenge":"JuiceShop.stl","exifForBlueprintChallenge":["OpenSCAD"]},{"name":"Juice Shop Artwork","description":"Unique masterpiece painted with different kinds of juice on 90g/m² lined paper.","price":278.74,"quantity":0,"image":"artwork.jpg","deletedDate":"2020-12-24"},{"name":"Global OWASP WASPY Award 2017 Nomination","description":"Your chance to nominate up to three quiet pillars of the OWASP community ends 2017-06-30! <a href=\"https://www.owasp.org/index.php/WASPY_Awards_2017\">Nominate now!</a>","price":0.03,"image":"waspy.png","deletedDate":"2017-07-01"},{"name":"Strawberry Juice (500ml)","description":"Sweet & tasty!","price":3.99,"image":"strawberry_juice.jpeg"},{"name":"Carrot Juice (1000ml)","description":"As the old German saying goes: \"Carrots are good for the eyes. Or has anyone ever seen a rabbit with glasses?\"","price":2.99,"image":"carrot_juice.jpeg","reviews":[{"text":"0 st4rs f0r 7h3 h0rr1bl3 s3cur17y","author":"uvogin"}]},{"name":"OWASP Juice Shop Sweden Tour 2017 Sticker Sheet (Special Edition)","description":"10 sheets of Sweden-themed stickers with 15 stickers on each.","price":19.1,"image":"stickersheet_se.png","deletedDate":"2017-09-20"},{"name":"Pwning OWASP Juice Shop","description":"<em>The official Companion Guide</em> by Björn Kimminich available <a href=\"https://leanpub.com/juice-shop\">for free on LeanPub</a> and also <a href=\"https://pwning.owasp-juice.shop\">readable online</a>!","price":5.99,"image":"cover_small.jpg","reviews":[{"text":"Even more interesting than watching Interdimensional Cable!","author":"morty"}]},{"name":"Melon Bike (Comeback-Product 2018 Edition)","description":"The wheels of this bicycle are made from real water melons. You might not want to ride it up/down the curb too hard.","price":2999,"quantity":3,"limitPerUser":1,"image":"melon_bike.jpeg"},{"name":"OWASP Juice Shop Coaster (10pcs)","description":"Our 95mm circle coasters are printed in full color and made from thick, premium coaster board.","price":19.99,"quantity":0,"image":"coaster.jpg"},{"name":"OWASP Snakes and Ladders - Web Applications","description":"This amazing web application security awareness board game is <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1969196030\">available for Tabletop Simulator on Steam Workshop</a> now!","price":0.01,"quantity":8,"image":"snakes_ladders.jpg","reviews":[{"text":"Wait for a 10$ Steam sale of Tabletop Simulator!","author":"bjoernOwasp"}]},{"name":"OWASP Snakes and Ladders - Mobile Apps","description":"This amazing mobile app security awareness board game is <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1970691216\">available for Tabletop Simulator on Steam Workshop</a> now!","price":0.01,"quantity":0,"image":"snakes_ladders_m.jpg","reviews":[{"text":"Here yo' learn how tha fuck ta not show yo' goddamn phone on camera!","author":"rapper"}]},{"name":"OWASP Juice Shop Holographic Sticker","description":"Die-cut holographic sticker. Stand out from those 08/15-sticker-covered laptops with this shiny beacon of 80's coolness!","price":2,"quantity":0,"image":"holo_sticker.png","reviews":[{"text":"Rad, dude!","author":"rapper"},{"text":"Looks spacy on Bones' new tricorder!","author":"jim"},{"text":"Will put one on the Planet Express ship's bumper!","author":"bender"}]},{"name":"OWASP Juice Shop \"King of the Hill\" Facemask","description":"Facemask with compartment for filter from 50% cotton and 50% polyester.","price":13.49,"quantity":0,"limitPerUser":1,"image":"fan_facemask.jpg","reviews":[{"text":"K33p5 y0ur ju1cy 5plu773r 70 y0ur53lf!","author":"uvogin"},{"text":"Puny mask for puny human weaklings!","author":"bender"}]},{"name":"Juice Shop Adversary Trading Card (Common)","description":"Common rarity \"Juice Shop\" card for the <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSecLEakawSQ56lBe2JOSbFwFYrKDCIN7Yd3iHFdQc5z8ApwdQ/viewform\">Adversary Trading Cards</a> CCG.","price":2.99,"deluxePrice":0.99,"deletedDate":"2020-11-30","limitPerUser":5,"image":"ccg_common.png","reviews":[{"text":"Ooooh, puny human playing Mau Mau, now?","author":"bender"}]},{"name":"Juice Shop Adversary Trading Card (Super Rare)","description":"Super rare \"Juice Shop\" card with holographic foil-coating for the <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSecLEakawSQ56lBe2JOSbFwFYrKDCIN7Yd3iHFdQc5z8ApwdQ/viewform\">Adversary Trading Cards</a> CCG.","price":99.99,"deluxePrice":69.99,"deletedDate":"2020-11-30","quantity":2,"limitPerUser":1,"image":"ccg_foil.png","reviews":[{"text":"Mau Mau with bling-bling? Humans are so pathetic!","author":"bender"}]},{"name":"Juice Shop \"Permafrost\" 2020 Edition","description":"Exact version of <a href=\"https://github.com/juice-shop/juice-shop/releases/tag/v9.3.1-PERMAFROST\">OWASP Juice Shop that was archived on 02/02/2020</a> by the GitHub Archive Program and ultimately went into the <a href=\"https://github.blog/2020-07-16-github-archive-program-the-journey-of-the-worlds-open-source-code-to-the-arctic\">Arctic Code Vault</a> on July 8. 2020 where it will be safely stored for at least 1000 years.","price":9999.99,"quantity":1,"limitPerUser":1,"image":"permafrost.jpg","reviews":[{"text":"🧊 Let it go, let it go 🎶 Can't hold it back anymore 🎶 Let it go, let it go 🎶 Turn away and slam the door ❄️","author":"rapper"}]},{"name":"Best Juice Shop Salesman Artwork","description":"Unique digital painting depicting Stan, our most qualified and almost profitable salesman. He made a succesful carreer in selling used ships, coffins, krypts, crosses, real estate, life insurance, restaurant supplies, voodoo enhanced asbestos and courtroom souvenirs before <em>finally</em> adding his expertise to the Juice Shop marketing team.","price":5000,"quantity":1,"image":"artwork2.jpg","reviews":[{"text":"I'd stand on my head to make you a deal for this piece of art.","author":"stan"},{"text":"Just when my opinion of humans couldn't get any lower, along comes Stan...","author":"bender"}]},{"name":"OWASP Juice Shop Card (non-foil)","description":"Mythic rare <small><em>(obviously...)</em></small> card \"OWASP Juice Shop\" with three distinctly useful abilities. Alpha printing, mint condition. A true collectors piece to own!","price":1000,"quantity":3,"limitPerUser":1,"image":"card_alpha.jpg","reviews":[{"text":"DO NOT PLAY WITH THIS! Double-sleeve, then put it in the GitHub Arctic Vault for perfect preservation and boost of secondary market value!","author":"accountant"}]},{"name":"20th Anniversary Celebration Ticket","description":"Get your <a href=\"https://20thanniversary.owasp.org/\" target=\"_blank\">free 🎫 for OWASP 20th Anniversary Celebration</a> online conference! Hear from world renowned keynotes and special speakers, network with your peers and interact with our event sponsors. With an anticipated 10k+ attendees from around the world, you will not want to miss this live on-line event!","price":1e-20,"deletedDate":"2021-09-25","limitPerUser":1,"image":"20th.jpeg","reviews":[{"text":"I'll be there! Will you, too?","author":"bjoernOwasp"}]},{"name":"OWASP Juice Shop LEGO™ Tower","description":"Want to host a Juice Shop CTF in style? Build <a href=\"https://github.com/OWASP/owasp-swag/blob/master/projects/juice-shop/lego/OWASP%20JuiceShop%20Pi-server%201.2.pdf\" target=\"_blank\">your own LEGO™ tower</a> which holds four Raspberry Pi 4 models with PoE HAT modules <a href=\"https://github.com/juice-shop/multi-juicer/blob/main/guides/raspberry-pi/raspberry-pi.md\" target=\"_blank\">running a MultiJuicer Kubernetes cluster</a>! Wire to a switch and connect to your network to have an out-of-the-box ready CTF up in no time!","price":799,"quantity":3,"limitPerUser":1,"image":"lego_case.jpg","reviews":[{"text":"Check out the /#/photo-wall for some impressions of the assembly process!","author":"bjoernOwasp"}]},{"name":"DSOMM & Juice Shop User Day Ticket","description":"You are going to the OWASP Global AppSec San Francisco 2024? <a href=\"https://www.eventbrite.com/e/owasp-global-appsec-san-francisco-2024-tickets-723699172707\" target=\"_blank\">Get a ticket<sup>*</sup></a> for this amazing side event as well! Check the juice-packed agenda <a href=\"https://owasp.org/www-project-juice-shop/#div-userday2024\" target=\"_blank\">here</a> for all the details!<br><br><small><small><sup>*</sup>=scroll down to <strong>Elevate: DSOMM and Juice Shop User Day (Sept. 25)</strong> after clicking <em>Get Tickets</em> on Eventbrite. Ticket price set to only covers fees for room, AV, and catering throughout the day.</small></small>","price":55.2,"deletedDate":"2024-09-26","limitPerUser":1,"image":"user_day_ticket.png","reviews":[{"text":"The DSOMM Live Assessment session will even use Juice Shop as its \"real-world\" example!","author":"timo"},{"text":"We will showcase the amazing MultiJuicer Lego Tower at this event!","author":"jannik"}]},{"name":"Pineapple Juice (1000ml)","description":"Tropical refreshment from the finest sun-ripened pineapples.","price":2.99,"image":"pineapple_juice.png"},{"name":"Melon Juice (1000ml)","description":"Refreshing and sweet juice made from ripe melons.","price":2.49,"image":"melon_juice.png"},{"name":"Grape Juice (1000ml)","description":"Deep purple and full of antioxidants from selected grapes.","price":2.99,"image":"grape_juice.png"},{"name":"Dragonfruit Juice (500ml)","description":"Exotic and vibrant juice made from dragonfruit.","price":3.99,"image":"dragonfruit_juice.png"},{"name":"Berry Juice (1000ml)","description":"A delicious blend of fresh forest berries.","price":3.49,"image":"berry_juice.png"},{"name":"Basil Smoothie","description":"A unique blend of fresh basil and ginger for a healthy kick.","price":2.99,"image":"basil_smoothie.png","reviews":[{"text":"(ง'̀-'́)ง","author":"basil"}]},{"name":"Bragă (500ml)","description":"Traditional Balkan drink made from fermented millet. Lightly sweet-sour, refreshing, and naturally energizing.","price":2.49,"image":"braga.jpg"},{"name":"Elderflower Cordial (500ml)","description":"Floral and fragrant soft drink made from elderflowers. Traditionally enjoyed chilled.","price":3.29,"image":"elderflower_cordial.jpg"},{"name":"Sea Buckthorn Juice (500ml)","description":"Tangy and slightly sour juice, extremely rich in Vitamin C and antioxidants.","price":3.99,"image":"sea_buckthorn_juice.jpg"},{"name":"Pomegranate Drink (500ml)","description":"A sweet and tart refreshment inspired by classic grenadine flavors.","price":4.49,"image":"pomegranate_drink.jpg"}],"memories":[{"image":"magn(et)ificent!-1571814229653.jpg","caption":"Magn(et)ificent!","user":"bjoernGoogle"},{"image":"my-rare-collectors-item!-[̲̅$̲̅(̲̅-͡°-͜ʖ-͡°̲̅)̲̅$̲̅]-1572603645543.jpg","caption":"My rare collectors item! [̲̅$̲̅(̲̅ ͡° ͜ʖ ͡°̲̅)̲̅$̲̅]","user":"bjoernGoogle"},{"image":"favorite-hiking-place.png","caption":"I love going hiking here...","geoStalkingMetaSecurityQuestion":14,"geoStalkingMetaSecurityAnswer":"Daniel Boone National Forest"},{"image":"IMG_4253.jpg","caption":"My old workplace...","geoStalkingVisualSecurityQuestion":10,"geoStalkingVisualSecurityAnswer":"ITsec"},{"image":"BeeHaven.png","caption":"Welcome to the Bee Haven (/#/bee-haven)🐝","user":"evm"},{"image":"sorted-the-pieces,-starting-assembly-process-1721152307290.jpg","caption":"Sorted the pieces, starting assembly process...","user":"bjoernOwasp"},{"image":"building-something-literally-bottom-up-1721152342603.jpg","caption":"Building something literally bottom up...","user":"bjoernOwasp"},{"image":"putting-in-the-hardware-1721152366854.jpg","caption":"Putting in the hardware...","user":"bjoernOwasp"},{"image":"everything-up-and-running!-1721152385146.jpg","caption":"Everything up and running!","user":"bjoernOwasp"}],"ctf":{"showFlagsInNotifications":false,"showCountryDetailsInNotifications":"none","countryMapping":null,"systemWideNotifications":{"url":null,"pollFrequencySeconds":null}}}}
          - - -
          Evidence
          192.168.99.100:3000
          Solution -

          Remove the private IP address from the HTTP response body. For comments, use JSP/ASP/PHP comment instead of HTML/JavaScript comment which can be seen by client browsers.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - X-Content-Type-Options Header Missing (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvl00cO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

          -
          Other info -

          This issue still applies to error type pages (401, 403, 500, etc.) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

          - -

          At "High" threshold this scan rule will not alert on client or server error responses.

          -
          Request
          - Request line and header section (292 bytes) - -
          GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvl00cO HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (230 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/plain; charset=UTF-8
          -Content-Length: 96
          -Date: Thu, 28 May 2026 14:32:14 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (96 bytes) - -
          0{"sid":"90ylhU5mJ94Lfd2KAAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
          - - -
          Parameter
          x-content-type-options
          Solution -

          Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

          - -

          If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  8. - -
  9. -

    - Risk=Low, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Timestamp Disclosure - Unix (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A timestamp was disclosed by the application/web server. - Unix

          -
          Other info -

          1666666667, which evaluates to: 2022-10-24 22:57:47.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 14:15:52 GMT
          -ETag: W/"26af-19e6ef1100f"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 14:29:23 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          1666666667
          Solution -

          Manually confirm that the timestamp data is not sensitive, and that the data cannot be aggregated to disclose exploitable patterns.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  10. - - - - -
  11. -

    - Risk=Informational, Confidence=High (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Session Management Response Identified (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/continue-code/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags -
            - -
          -
          Alert 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.

          -
          Other info -

          json:continueCode

          -
          Request
          - Request line and header section (297 bytes) - -
          GET http://20.60.0.1:3000/rest/continue-code/ HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (384 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Content-Length: 79
          -ETag: W/"4f-uLu5Lde8X4OncOnJeidFijss6vg"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 14:49:57 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (79 bytes) - -
          {"continueCode":"y1OzBZxNpnLrM5WmgEKv8XakQ7DA6LcQGJ6yOlV9Pow1jYqbz2eRB34oE5mM"}
          - - -
          Parameter
          continueCode
          Evidence
          continueCode
          Solution -

          This is an informational alert rather than a vulnerability and so there is nothing to fix.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  12. - -
  13. -

    - Risk=Informational, Confidence=Medium (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Modern Web Application (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The application appears to be a modern web application. If you need to explore it automatically then the Ajax Spider may well be more effective than the standard one.

          -
          Other info -

          No links have been found while there are scripts, which is an indication that this is a modern web application.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 14:15:52 GMT
          -ETag: W/"26af-19e6ef1100f"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 14:29:23 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          Solution -

          This is an informational alert and so no changes are required.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  14. - - - -
-
- -
-

Appendix

- -
-

Alert Types

-

This section contains additional information on the types of alerts in the report.

-
    -
  1. -

    SQL Injection

    - - - - - - - - - - - - - - - - - -
    Source - - raised by an active scanner (SQL Injection) - -
    CWE ID89
    WASC ID19
    Reference -
      -
    1. https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
    2. -
    -
    -
  2. -
  3. -

    Content Security Policy (CSP) Header Not Set

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Content Security Policy (CSP) Header Not Set) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP
    2. -
    3. https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html
    4. -
    5. https://www.w3.org/TR/CSP/
    6. -
    7. https://w3c.github.io/webappsec-csp/
    8. -
    9. https://web.dev/articles/csp
    10. -
    11. https://caniuse.com/#feat=contentsecuritypolicy
    12. -
    13. https://content-security-policy.com/
    14. -
    -
    -
  4. -
  5. -

    Cross-Domain Misconfiguration

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Cross-Domain Misconfiguration) - -
    CWE ID264
    WASC ID14
    Reference -
      -
    1. https://vulncat.fortify.com/en/detail?category=HTML5&subcategory=Overly%20Permissive%20CORS%20Policy
    2. -
    -
    -
  6. -
  7. -

    Missing Anti-clickjacking Header

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Anti-clickjacking Header) - -
    CWE ID1021
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options
    2. -
    -
    -
  8. -
  9. -

    Session ID in URL Rewrite

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Session ID in URL Rewrite) - -
    CWE ID598
    WASC ID13
    Reference -
      -
    1. https://seclists.org/webappsec/2002/q4/111
    2. -
    -
    -
  10. -
  11. -

    Private IP Disclosure

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Private IP Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://datatracker.ietf.org/doc/html/rfc1918
    2. -
    -
    -
  12. -
  13. -

    Timestamp Disclosure - Unix

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Timestamp Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://cwe.mitre.org/data/definitions/200.html
    2. -
    -
    -
  14. -
  15. -

    X-Content-Type-Options Header Missing

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (X-Content-Type-Options Header Missing) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/compatibility/gg622941(v=vs.85)
    2. -
    3. https://owasp.org/www-community/Security_Headers
    4. -
    -
    -
  16. -
  17. -

    Modern Web Application

    - - - - - - - - -
    Source - - raised by a passive scanner (Modern Web Application) - -
    -
  18. -
  19. -

    Session Management Response Identified

    - - - - - - - - - - - -
    Source - - raised by a passive scanner (Session Management Response Identified) - -
    Reference -
      -
    1. https://www.zaproxy.org/docs/desktop/addons/authentication-helper/session-mgmt-id/
    2. -
    -
    -
  20. -
-
-
- -
- - - - - diff --git a/TestesRealizados1/QA&Standard/normalize/LICENSE.md b/TestesRealizados1/QA&Standard/normalize/LICENSE.md deleted file mode 100644 index 43b5ddc..0000000 --- a/TestesRealizados1/QA&Standard/normalize/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# The MIT License (MIT) - -Copyright © Nicolas Gallagher and Jonathan Neal - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/TestesRealizados1/QA&Standard/normalize/normalize.css b/TestesRealizados1/QA&Standard/normalize/normalize.css deleted file mode 100644 index 192eb9c..0000000 --- a/TestesRealizados1/QA&Standard/normalize/normalize.css +++ /dev/null @@ -1,349 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} diff --git a/TestesRealizados1/QA&Standard/themes/original/colors.css b/TestesRealizados1/QA&Standard/themes/original/colors.css deleted file mode 100644 index fd3b963..0000000 --- a/TestesRealizados1/QA&Standard/themes/original/colors.css +++ /dev/null @@ -1,139 +0,0 @@ -body { - background-color: #306aa0; - background-image: radial-gradient(circle at top left, #fff 0%, #8ce1d6 15em, #306aa0 100em, #386095 100%); -} - -main, footer { - background-color: #fff; -} - -header { - background-color: #00549e; - color: #fff; -} - -a:link { - color: #004380; -} - -a:visited { - color: #770d67; -} - -a:focus { - background-color: #ffd54d; -} - -a:hover { - background-color: #ffd54d; -} - -a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -header a:link { - color: #f2f7fd; -} - -header a:visited { - color: #f2b5e9; -} - -header a:focus { - background-color: #ffd54d; - color: #004380; -} - -header a:hover { - background-color: #ffd54d; - color: #004380; -} - -header a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #fff6db; -} - -summary:focus { - background-color: #ffd54d; -} - -summary:hover { - background-color: #ffd54d; -} - -summary:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -h2, h3, h4, h5, h6 { - color: #00549e; -} - -.risk-level, .confidence-level { - color: #00549e; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - color: #00549e; -} - -.risk-confidence-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - color: #00549e; -} - -.site-risk-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.alert-type-counts-table > tbody > tr { - border-bottom-color: #00549e; -} - -.alert-type-counts-table th[scope="col"] { - background-color: #00549e; - color: #fff; -} - -.alert-type-counts-table th[scope="col"] { - border-left-color: #fff; -} - -.alerts-table th, .alert-types-table th { - background-color: #306aa0; - color: #fff; -} - -.additional-info-percentages { - color: #00549e; -} - -.insights-table > tbody > tr { - border-bottom-color: #00549e; -} - -.insights-table th[scope="col"] { - background-color: #00549e; - border-left-color: #fff; - color: #fff; -} diff --git a/TestesRealizados1/QA&Standard/themes/original/main.css b/TestesRealizados1/QA&Standard/themes/original/main.css deleted file mode 100644 index 050bd3f..0000000 --- a/TestesRealizados1/QA&Standard/themes/original/main.css +++ /dev/null @@ -1,417 +0,0 @@ -*, *::after, *::before { - box-sizing: border-box; -} - -h1, h2, h3, h4, h5, h6 { - margin: 0; - padding: 0; -} - -pre, ul { - margin: 0; -} - -ol { - list-style-type: none; -} - -h1 { - font-size: 3em; -} - -h2 { - font-size: 2em; -} - -h3, h4, h5, h6 { - font-size: 1em; -} - -html { - box-sizing: border-box; - font-family: Verdana, sans-serif; - line-height: 1.5; -} - -body { - margin: 1.5em 0; -} - -@media screen and (min-width: 50em) { - body { - margin: 1.5em 2ch; - padding: 1.5em 2ch; - } -} - -a:active, header a:active { - outline-style: solid; -} - -header, main { - margin: 0 auto; - max-width: 90ch; - padding: 1.5em 4ch; -} - -header { - border-radius: .25em .25em 0 0; -} - -main { - border-radius: 0 0 .25em .25em; -} - -summary { - cursor: pointer; -} - -.contents { - margin-top: 1.5em; -} - -main > section { - margin-bottom: 4.5em; -} - -.about-this-report > section { - margin-bottom: 3em; -} - -.summaries section { - margin-bottom: 3em; -} - -h2 { - margin-bottom: .75em; -} - -h3 { - margin-bottom: 1.5em; -} - -h4 { - margin-bottom: 1.5em; -} - -.report-parameters--container h4 { - margin-top: 1.5em; -} - -p { - margin: 1.5em 0; -} - -p:first-of-type { - margin-top: 0; -} - -p:last-of-type { - margin-bottom: 0; -} - -.contents li, .alerts li, .alert-types > ol > li { - margin-top: 1.5em; -} - -.alert-types h4 { - margin-bottom: 0; -} - -a { - border-radius: .125em; -} - -caption { - margin-bottom: 1.5em; - text-align: left; -} - -code, .request-method-n-url { - overflow-wrap: anywhere; - white-space: break-spaces; -} - -table { - border-collapse: collapse; -} - -.report-description--container, .report-parameters--container { - margin-left: 2ch; - padding: 0 2ch; -} - -.about-this-report h3, .summaries h3, .appendix h3 { - border-bottom: .05em solid; -} - -.alerts h4 { - text-align: center; -} - -.alerts ol { - padding-left: 0; -} - -.alerts--site-li { - border: .05em solid; - border-radius: .25em; - margin-left: 2ch; - padding: 1.5em 3ch; -} - -.contents ol { - list-style-position: inside; - list-style-type: square; - padding-left: 4ch; -} - -.contexts-list, .sites-list { - list-style-type: square; -} - -.risk-confidence-counts-table { - width: 100%; -} - -.risk-confidence-counts-table tr { - height: 4.5em; -} - -.risk-confidence-counts-table thead > tr { - height: 3em; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table th[scope="rowgroup"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.risk-confidence-counts-table th[scope="row"] { - padding-right: 5%; -} - -@media screen and (max-width: 50em) { - .risk-confidence-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.risk-confidence-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.risk-confidence-counts-table > tbody > tr { - border-top: .05em solid; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table td { - vertical-align: top; -} - -.risk-confidence-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.risk-confidence-counts-table td, .risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - text-align: right; -} - -.site-risk-counts-table { - width: 100%; -} - -.site-risk-counts-table tr { - height: 4.5em; -} - -.site-risk-counts-table thead > tr:first-of-type { - height: 3em; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table th[scope="col"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.site-risk-counts-table th[scope="row"] { - padding-right: 1%; -} - -@media screen and (max-width: 50em) { - .site-risk-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.site-risk-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.site-risk-counts-table > tbody > tr { - border-top: .05em solid; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table td { - vertical-align: top; -} - -.site-risk-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.site-risk-counts-table td, .site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - text-align: right; -} - -.alert-type-counts-table { - width: 100%; -} - -.alert-type-counts-table th, .alert-type-counts-table td { - padding: 0 1rem; - text-align: left; - vertical-align: top; -} - -.alert-type-counts-table td:nth-last-of-type(2) { - padding-left: 1.5rem; -} - -.alert-type-counts-table > tbody > tr { - border-bottom: 0.05em dotted; -} - -.alert-type-counts-table th[scope="col"] { - border-left: 1rem solid; -} - -.alert-type-counts-table th[scope="col"]:first-of-type { - border-left: 0; -} - -.alert-type-counts-table th[scope="col"]:last-of-type, .alert-type-counts-table td:last-of-type { - text-align: right; -} - -.alert-type-counts-table th[scope="col"], .alert-type-counts-table th[scope="row"] { - font-weight: normal; -} - -.alert-type-counts-table th[scope="row"], .alert-type-counts-table td { - padding-bottom: 1.5em; -} - -.alert-type-counts-table thead > th:first-of-type { - width: 45%; -} - -.alerts-table, .alert-types-table, .insights-table { - border-collapse: separate; - border-spacing: 2ch 1.5em; - width: 100%; -} - -.alerts-table th, .alerts-table td, .alert-types-table th, .alert-types-table td, .insights-table td, .insights-table th { - vertical-align: top; -} - -.alerts-table td, .alert-types-table td, .insights-table td { - overflow-wrap: anywhere; -} - -.alerts-table th, .alert-types-table th, .insights-table th { - padding: 0 1ch; -} - -.alerts-table td, .alert-types-table td { - padding: 0 2ch; -} - -.insights-table td { - padding: 0 1ch; -} - -.alerts-table summary { - margin-bottom: 1.5em; -} - -.alert-tags-list { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-tags-list > li { - margin-top: 0; -} - -.request-body, .response-body { - margin-top: 1.5em; -} - -.request-method-n-url { - margin-bottom: 0; -} - -.alert-types-table { - padding-top: 0; -} - -.alert-types-table th { - width: 20%; -} - -.alert-types-table ol { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-types-table li:not(:first-of-type) { - margin-top: 1.5em; -} - -p.alert-types-intro { - margin-bottom: 3em; -} - -.zap-logo { - height: 1em; - margin-right: .25ch; - width: 1em; -} - -h1, h2 { - font-family: Georgia, serif; -} - -.risk-level, .confidence-level, .included-risk-codes, .included-confidence-codes, .additional-info-percentages { - font-family: monospace, monospace; -} - -.context, .site, .request-method-n-url { - font-family: monospace, monospace; -} diff --git a/TestesRealizados1/QA&Standard/zap32x32.png b/TestesRealizados1/QA&Standard/zap32x32.png deleted file mode 100644 index 9c1019ffb2ad500434d78f20f5a624bd660e6735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1933 zcmV;82Xgp{P)LZ&X_*%IgUcU=kqE(b z4NRzXHHacGqA;V7EOd-rLRUsK6M0)>lNA+QA(1s>0WooNopVsi`f~3%&(A;3?F-PB zvOj!oo}80&pL3q?@9q2jJ@8;-E^rih7x)VQ$FTzF0Ce^0)w*%xMg@9CT^);$`@`-S z|D^%X0-G{2GScem>Zq-)#c><}&YnG+{?@;fz2@5u5&VQI{0HC&b5Eb8v=CMzq8Xh{uDUJ;6-8cvHPPw(V1AXlBMlio^B!;`1mR7lQz6stN1n` zVSRiJ3Jh}IHmwUh{p952jC=DbQ>IW{T+Bm{EyTg%86hH)s*G@RBZ6ZD zR~$s-xgh|tIK<*bMohZnrPKSTebm&{(An8JZUCD%Zw|w-XamM3aZ{E@QkJ_Sh=4&b zVlZMR6MN-LA+KI)MxOZY4_$EN7gpcl|GBy+*}SFI&@zE+1c5&ojb?% zH-610omUXmkc0pc4MCuY3JRI#ep;zPz!%CkF{7fMRjXD}R#rwLkr?x}`Sa(qYu7G1 z4zIhf6b}b*b0|Z?2bxNbAlb*&-!+hzmq$fKMaqhiM-T+Gw6t*h_U({ddb?6-2&w|A zpn{45bPqNps$5aDKvhCrw+1VURUz5a1;EaoJE^Lw8q=z_wl+#jOPTPwnarrD$C>b1 zeBZ~~fqr423P90ogC0=PH?8Vm*#v}(0|k?r!xzizShj2#GiT1Ey}f-@07XSb?AWn` zo)51w@$*j*Sf2pBs|*LhoR?u5{SD7JEun@R9Ak(IM2sO~gs2fb$L0Oj{d{ntiOR}K z4jw#6R#w)CK$a|7Ld#z-Gd=bqy@><~t0b(&SH%x3{Wghj{ro$E>8w7|8!?eI&lp@s zaK#WcLS%r`jo>*Bw)ZCgII)AS>wjbG)~z%&G>ix$H+M2U56vZe;WP9n69iWA)shSX z`fak)9$cP#M-^Drp9UIWRk0R)RT8QshN)UI2q2optfzJ|r}}xe?|y;IjENjOcI+Mi z7cX9-`|VS7cbpDGkWxfn15~wP#HQ4&KGGL8Zqzd_CM6=?Fb}vQxI!o{fa9gn`BpRU zy|It{{Ct|4nwT|f*5LO}o;*oeSs7W&e}iV^hCM-${BO{>Jm(%YOnIR)X)V55tW|8v z^2ET^D*YDvtkSPaPoj^^$IF?s{&lVgQFL zf4TNCRPNcLzb)TB`ne$0!%HlF+%?X3TygP?!H8f?C?W&GVvG#277}_4P&Z27wKi^_ z`UMY9O6QgM5f&|4M0R!--M6}buJEI=4km*jh{gB1;;i$G!4U@|f*8RtASQ%eXNt)N z2*#qQRjl#oYmeiff0@FG0rvrUs1Grl_V)4yJq|S&*HyA`hPcY4iwPqM T`!Z{P00000NkvXXu0mjf{kVU6 diff --git a/TestesRealizados1/Squeence/Squeence.html b/TestesRealizados1/Squeence/Squeence.html deleted file mode 100644 index f248e5d..0000000 --- a/TestesRealizados1/Squeence/Squeence.html +++ /dev/null @@ -1,2624 +0,0 @@ - - - - - -ZAP by Checkmarx Scanning Report - - - - - -
-

ZAP by Checkmarx Scanning Report

-

- Generated with ZAP - on Thu 28 May 2026, at 12:27:52 -

-

ZAP Version: 2.17.0

-

- ZAP by Checkmarx -

-
- -
- -
-

Contents

- -
- -
-

About This Report

- - - -
-

Report Parameters

-
-

Contexts

- - -

No contexts were selected, so all contexts were included by default.

- - -

Sites

- -

The following sites were included:

-
    -
  • http://20.60.0.1:3000
  • -
- -

(If no sites were selected, all sites were included by default.)

-

An included site must also be within one of the included contexts for its data to be included in the report.

- -

Risk levels

-

- Included: - - High, Medium, Low, Informational -

-

- Excluded: - None - -

- -

Confidence levels

-

- Included: - - - User Confirmed, High, Medium, Low -

-

- Excluded: - - - User Confirmed, High, Medium, Low, False Positive -

-
-
-
- - -
- -
- -
-

Summaries

- -
-

Alert Counts by Risk and Confidence

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts for each level of risk and confidence included in the report.

-

(The percentages in brackets represent the count as a percentage of the total number of alerts included in the report, rounded to one decimal place.)

-
Confidence
User ConfirmedHighMediumLowTotal
RiskHigh0
(0.0%)
0
(0.0%)
0
(0.0%)
1
(11.1%)
1
(11.1%)
Medium0
(0.0%)
2
(22.2%)
2
(22.2%)
0
(0.0%)
4
(44.4%)
Low0
(0.0%)
0
(0.0%)
2
(22.2%)
1
(11.1%)
3
(33.3%)
Informational0
(0.0%)
0
(0.0%)
1
(11.1%)
0
(0.0%)
1
(11.1%)
Total0
(0.0%)
2
(22.2%)
5
(55.6%)
2
(22.2%)
9
(100%)
-
- -
-

Alert Counts by Site and Risk

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows, for each site for which one or more alerts were raised, the number of alerts raised at each risk level.

-

Alerts with a confidence level of "False Positive" have been excluded from these counts.

-

(The numbers in brackets are the number of alerts raised for the site at or above that risk level.)

-
Risk
- High
(= High) -
- Medium
(>= Medium) -
- Low
(>= Low) -
- Informational
(>= Informational) -
Sitehttp://20.60.0.1:30001
(1)
4
(5)
3
(8)
1
(9)
-
- -
-

Alert Counts by Alert Type

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows the number of alerts of each alert type, together with the alert type's risk level.

-

(The percentages in brackets represent each count as a percentage, rounded to one decimal place, of the total number of alerts included in this report.)

-
Alert typeRiskCount
SQL InjectionHigh1
(11.1%)
Content Security Policy (CSP) Header Not SetMedium5
(55.6%)
Cross-Domain MisconfigurationMedium5
(55.6%)
Missing Anti-clickjacking HeaderMedium4
(44.4%)
Session ID in URL RewriteMedium5
(55.6%)
Private IP DisclosureLow1
(11.1%)
Timestamp Disclosure - UnixLow5
(55.6%)
X-Content-Type-Options Header MissingLow5
(55.6%)
Modern Web ApplicationInformational5
(55.6%)
Total9
-
- -
-

Insights

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

This table shows information that is likely to be very relevant to you, but which is not related to vulnerabilities, or potentially even related to the application in question.

-
LevelReasonSiteDescriptionStatistic
-
Medium
-
-
Exceeded Low
-
-
-
-
Percentage of memory used
-
-
87
-
-
Low
-
-
Warning
-
-
-
-
ZAP errors logged - see the zap.log file for details
-
-
292
-
-
Low
-
-
Warning
-
-
-
-
ZAP warnings logged - see the zap.log file for details
-
-
103
-
-
Low
-
-
Exceeded Low
-
-
-
-
Percentage of network failures
-
-
5 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 1xx
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 2xx
-
-
65 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 3xx
-
-
30 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of responses with status code 4xx
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/javascript
-
-
7 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/json
-
-
7 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type application/octet-stream
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/jpeg
-
-
4 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/png
-
-
2 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/svg+xml
-
-
19 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type image/x-icon
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/css
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/html
-
-
51 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/markdown
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with content type text/plain
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method GET
-
-
98 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of endpoints with method POST
-
-
1 %
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Count of total endpoints
-
-
224
-
-
Info
-
-
Informational
-
-
http://20.60.0.1:3000
-
-
Percentage of slow responses
-
-
77 %
-
-
-
- -
-

Alerts

-
    - - - - - - - - -
  1. -

    - Risk=High, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - SQL Injection (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/products/search?q=%27%28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          SQL injection may be possible.

          -
          Request
          - Request line and header section (307 bytes) - -
          GET http://20.60.0.1:3000/rest/products/search?q=%27%28 HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (362 bytes) - -
          HTTP/1.1 500 Internal Server Error
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 16:17:47 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -content-length: 309
          -
          -
          - - -
          - Response body (309 bytes) - -
          {
          -  "error": {
          -    "message": "SQLITE_ERROR: near \"(\": syntax error",
          -    "stack": "Error: SQLITE_ERROR: near \"(\": syntax error",
          -    "errno": 1,
          -    "code": "SQLITE_ERROR",
          -    "sql": "SELECT * FROM Products WHERE ((name LIKE '%'(%' OR description LIKE '%'(%') AND deletedAt IS NULL) ORDER BY name"
          -  }
          -}
          - - -
          Parameter
          q
          Attack
          '(
          Evidence
          HTTP/1.1 500 Internal Server Error
          Solution -

          Do not trust client side input, even if there is client side validation in place.

          - -

          In general, type check all data on the server side.

          - -

          If the application uses JDBC, use PreparedStatement or CallableStatement, with parameters passed by '?'

          - -

          If the application uses ASP, use ADO Command Objects with strong type checking and parameterized queries.

          - -

          If database Stored Procedures can be used, use them.

          - -

          Do *not* concatenate strings into queries in the stored procedure, or use 'exec', 'exec immediate', or equivalent functionality!

          - -

          Do not create dynamic SQL queries using simple string concatenation.

          - -

          Escape all data received from the client.

          - -

          Apply an 'allow list' of allowed characters, or a 'deny list' of disallowed characters in user input.

          - -

          Apply the principle of least privilege by using the least privileged database user possible.

          - -

          In particular, avoid using the 'sa' or 'db-owner' database users. This does not eliminate SQL injection, but minimizes its impact.

          - -

          Grant the minimum database access that is necessary for the application.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  2. - - - - -
  3. -

    - Risk=Medium, Confidence=High (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Content Security Policy (CSP) Header Not Set (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware. CSP provides a set of standard HTTP headers that allow website owners to declare approved sources of content that browsers should be allowed to load on that page — covered types are JavaScript, CSS, HTML frames, fonts, images and embeddable objects such as Java applets, ActiveX, audio and video files.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 15:56:09 GMT
          -ETag: W/"26af-19e6f4cdf8f"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 16:06:03 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Solution -

          Ensure that your web server, application server, load balancer, etc. is configured to set the Content-Security-Policy header.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - Session ID in URL Rewrite (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvlLzJv&sid=oJPnb_nhYFl02uUXAAAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          URL rewrite is used to track user session ID. The session ID may be disclosed via cross-site referer header. In addition, the session ID might be stored in browser history or server logs.

          -
          Request
          - Request line and header section (317 bytes) - -
          GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvlLzJv&sid=oJPnb_nhYFl02uUXAAAA HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (230 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/plain; charset=UTF-8
          -Content-Length: 32
          -Date: Thu, 28 May 2026 16:08:09 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (32 bytes) - -
          40{"sid":"o1TVUG0ig5BwWsRfAAAB"}
          - - -
          Parameter
          sid
          Evidence
          oJPnb_nhYFl02uUXAAAA
          Solution -

          For secure content, put session ID in a cookie. To be even more secure consider using a combination of cookie and URL rewrite.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  4. - -
  5. -

    - Risk=Medium, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Cross-Domain Misconfiguration (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/robots.txt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          Web browser data loading may be possible, due to a Cross Origin Resource Sharing (CORS) misconfiguration on the web server.

          -
          Other info -

          The CORS misconfiguration on the web server permits cross-domain read requests from arbitrary third party domains, using unauthenticated APIs on this domain. Web browser implementations do not permit arbitrary third parties to read the response from authenticated APIs, however. This reduces the risk somewhat. This misconfiguration could be used by an attacker to access data that is available in an unauthenticated manner, but which uses some other form of security, such as IP address white-listing.

          -
          Request
          - Request line and header section (239 bytes) - -
          GET http://20.60.0.1:3000/robots.txt HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (378 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: text/plain; charset=utf-8
          -Content-Length: 28
          -ETag: W/"1c-8HgF6mNyhsSFK0pascC9uB0wjX0"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 16:06:03 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (28 bytes) - -
          User-agent: *
          -Disallow: /ftp
          - - -
          Evidence
          Access-Control-Allow-Origin: *
          Solution -

          Ensure that sensitive data is not available in an unauthenticated manner (using IP address white-listing, for instance).

          - -

          Configure the "Access-Control-Allow-Origin" HTTP header to a more restrictive set of domains, or remove all CORS headers entirely, to allow the web browser to enforce the Same Origin Policy (SOP) in a more restrictive manner.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - Missing Anti-clickjacking Header (1) -
        -
          -
        1. - - POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvlLzJn&sid=oJPnb_nhYFl02uUXAAAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The response does not protect against 'ClickJacking' attacks. It should include either Content-Security-Policy with 'frame-ancestors' directive or X-Frame-Options.

          -
          Request
          - Request line and header section (408 bytes) - -
          POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvlLzJn&sid=oJPnb_nhYFl02uUXAAAA HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Content-type: text/plain;charset=UTF-8
          -Content-Length: 2
          -Origin: http://20.60.0.1:3000
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (2 bytes) - -
          40
          - - -
          Response
          - Status line and header section (213 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/html
          -Content-Length: 2
          -Date: Thu, 28 May 2026 16:08:09 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (2 bytes) - -
          ok
          - - -
          Parameter
          x-frame-options
          Solution -

          Modern Web browsers support the Content-Security-Policy and X-Frame-Options HTTP headers. Ensure one of them is set on all web pages returned by your site/app.

          - -

          If you expect the page to be framed only by pages on your server (e.g. it's part of a FRAMESET) then you'll want to use SAMEORIGIN, otherwise if you never expect the page to be framed, you should use DENY. Alternatively consider implementing Content Security Policy's "frame-ancestors" directive.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  6. - - - - - - - - -
  7. -

    - Risk=Low, Confidence=Medium (2) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (2) -

      -
        - -
      1. -
        - Private IP Disclosure (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/rest/admin/application-configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A private IP (such as 10.x.x.x, 172.x.x.x, 192.168.x.x) or an Amazon EC2 private hostname (for example, ip-10-0-56-78) has been found in the HTTP response body. This information might be helpful for further attacks targeting internal systems.

          -
          Other info -

          192.168.99.100:3000

          - -

          192.168.99.100:4200

          -
          Request
          - Request line and header section (314 bytes) - -
          GET http://20.60.0.1:3000/rest/admin/application-configuration HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: application/json, text/plain, */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (389 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Content-Type: application/json; charset=utf-8
          -Content-Length: 23513
          -ETag: W/"5bd9-reVonwE2GOcMzw2LpzIkSqyB2OE"
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 16:08:06 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (23513 bytes) - -
          {"config":{"server":{"port":3000,"basePath":"","baseUrl":"http://localhost:3000"},"application":{"domain":"juice-sh.op","name":"OWASP Juice Shop","logo":"JuiceShop_Logo.png","favicon":"favicon_js.ico","theme":"bluegrey-lightgreen","showVersionNumber":true,"showGitHubLinks":true,"localBackupEnabled":true,"numberOfRandomFakeUsers":0,"altcoinName":"Juicycoin","privacyContactEmail":"donotreply@owasp-juice.shop","customMetricsPrefix":"juiceshop","chatBot":{"name":"Juicy the Smart Assistant","avatar":"JuicyChatBot.png","model":"gemma4:e4b","llmMaxRetries":2,"sampleQuestions":["CHATBOT_PROMPT_RECOMMENDATION_SUMMER_PARTY","CHATBOT_PROMPT_RECOMMENDATION_POPULAR","CHATBOT_PROMPT_RECOMMENDATION_SUGAR_FREE","CHATBOT_PROMPT_RECOMMENDATION_START_DAY","CHATBOT_PROMPT_RECOMMENDATION_SEASONAL"]},"social":{"blueSkyUrl":"https://bsky.app/profile/owasp-juice.shop","mastodonUrl":"https://fosstodon.org/@owasp_juiceshop","twitterUrl":"https://twitter.com/owasp_juiceshop","facebookUrl":"https://www.facebook.com/owasp.juiceshop","slackUrl":"https://owasp.org/slack/invite","redditUrl":"https://www.reddit.com/r/owasp_juiceshop","pressKitUrl":"https://github.com/OWASP/owasp-swag/tree/master/projects/juice-shop","nftUrl":"https://opensea.io/collection/juice-shop","questionnaireUrl":null},"recyclePage":{"topProductImage":"fruit_press.jpg","bottomProductImage":"apple_pressings.jpg"},"welcomeBanner":{"showOnFirstStart":true,"title":"Welcome to OWASP Juice Shop!","message":"<p>Being a web application with a vast number of intended security vulnerabilities, the <strong>OWASP Juice Shop</strong> is supposed to be the opposite of a best practice or template application for web developers: It is an awareness, training, demonstration and exercise tool for security risks in modern web applications. The <strong>OWASP Juice Shop</strong> is an open-source project hosted by the non-profit <a href='https://owasp.org' target='_blank'>Open Worldwide Application Security Project (OWASP)</a> and is developed and maintained by volunteers. Check out the link below for more information and documentation on the project.</p><h1><a href='https://owasp-juice.shop' target='_blank'>https://owasp-juice.shop</a></h1>"},"cookieConsent":{"message":"This website uses fruit cookies to ensure you get the juiciest tracking experience.","dismissText":"Me want it!","linkText":"But me wait!","linkUrl":"https://www.youtube.com/watch?v=9PnbKL3wuH4"},"securityTxt":{"contact":"mailto:donotreply@owasp-juice.shop","encryption":"https://keybase.io/bkimminich/pgp_keys.asc?fingerprint=19c01cb7157e4645e9e2c863062a85a8cbfbdcda","acknowledgements":"/#/score-board","hiring":"/#/jobs","csaf":"/.well-known/csaf/provider-metadata.json"},"promotion":{"video":"owasp_promo.mp4","subtitles":"owasp_promo.vtt"},"easterEggPlanet":{"name":"Orangeuze","overlayMap":"orangemap2k.avif"},"googleOauth":{"clientId":"1005568560502-6hm16lef8oh46hr2d98vf2ohlnj4nfhq.apps.googleusercontent.com","authorizedRedirects":[{"uri":"https://demo.owasp-juice.shop"},{"uri":"https://juice-shop.herokuapp.com"},{"uri":"https://preview.owasp-juice.shop"},{"uri":"https://juice-shop-staging.herokuapp.com"},{"uri":"https://juice-shop.wtf"},{"uri":"http://localhost:3000","proxy":"https://local3000.owasp-juice.shop"},{"uri":"http://127.0.0.1:3000","proxy":"https://local3000.owasp-juice.shop"},{"uri":"http://localhost:4200","proxy":"https://local4200.owasp-juice.shop"},{"uri":"http://127.0.0.1:4200","proxy":"https://local4200.owasp-juice.shop"},{"uri":"http://192.168.99.100:3000","proxy":"https://localmac.owasp-juice.shop"},{"uri":"http://192.168.99.100:4200","proxy":"https://localmac.owasp-juice.shop"},{"uri":"http://penguin.termina.linux.test:3000","proxy":"https://localchromeos.owasp-juice.shop"},{"uri":"http://penguin.termina.linux.test:4200","proxy":"https://localchromeos.owasp-juice.shop"}]}},"challenges":{"showSolvedNotifications":true,"showHints":true,"showMitigations":true,"codingChallengesEnabled":"solved","restrictToTutorialsFirst":false,"overwriteUrlForProductTamperingChallenge":"https://owasp.slack.com","xssBonusPayload":"<iframe width=\"100%\" height=\"166\" scrolling=\"no\" frameborder=\"no\" allow=\"autoplay\" src=\"https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/771984076&color=%23ff5500&auto_play=true&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true\"></iframe>","safetyMode":"auto","csafHashValue":"7e7ce7c65db3bf0625fcea4573d25cff41f2f7e3474f2c74334b14fc65bb4fd26af802ad17a3a03bf0eee6827a00fb8f7905f338c31b5e6ea9cb31620242e843","metricsIgnoredUserAgents":["Prometheus","Alloy","promscrape","otelcol"]},"hackingInstructor":{"isEnabled":true,"avatarImage":"JuicyBot.png","hintPlaybackSpeed":"normal"},"products":[{"name":"Apple Juice (1000ml)","price":1.99,"deluxePrice":0.99,"limitPerUser":5,"description":"The all-time classic.","image":"apple_juice.jpg","reviews":[{"text":"One of my favorites!","author":"admin"},{"text":"Great! We'll have an apple party. Everyone brings an apple and - STUFFS IT DOWN EACH OTHER'S THROAT!","author":"basil"}]},{"name":"Orange Juice (1000ml)","description":"Made from oranges hand-picked by Uncle Dittmeyer.","price":2.99,"deluxePrice":2.49,"image":"orange_juice.jpg","reviews":[{"text":"y0ur f1r3wall needs m0r3 musc13","author":"uvogin"}]},{"name":"Eggfruit Juice (500ml)","description":"Now with even more exotic flavour.","price":8.99,"image":"eggfruit_juice.jpg","reviews":[{"text":"I bought it, would buy again. 5/7","author":"admin"}]},{"name":"Raspberry Juice (1000ml)","description":"Made from blended Raspberry Pi, water and sugar.","price":4.99,"image":"raspberry_juice.jpg"},{"name":"Lemon Juice (500ml)","description":"Sour but full of vitamins.","price":2.99,"deluxePrice":1.99,"limitPerUser":5,"image":"lemon_juice.jpg"},{"name":"Banana Juice (1000ml)","description":"Monkeys love it the most.","price":1.99,"image":"banana_juice.jpg","reviews":[{"text":"Fry liked it too.","author":"bender"}]},{"name":"OWASP Juice Shop T-Shirt","description":"Real fans wear it 24/7!","price":22.49,"limitPerUser":5,"image":"fan_shirt.jpg"},{"name":"OWASP Juice Shop CTF Girlie-Shirt","description":"For serious Capture-the-Flag heroines only!","price":22.49,"image":"fan_girlie.jpg"},{"name":"OWASP SSL Advanced Forensic Tool (O-Saft)","description":"O-Saft is an easy to use tool to show information about SSL certificate and tests the SSL connection according given list of ciphers and various SSL configurations.","price":0.01,"image":"orange_juice.jpg","urlForProductTamperingChallenge":"https://www.owasp.org/index.php/O-Saft"},{"name":"Christmas Super-Surprise-Box (2014 Edition)","description":"Contains a random selection of 10 bottles (each 500ml) of our tastiest juices and an extra fan shirt for an unbeatable price!","price":29.99,"image":"undefined.jpg","useForChristmasSpecialChallenge":true},{"name":"Rippertuer Special Juice","description":"Contains a magical collection of the rarest fruits gathered from all around the world, like Cherymoya Annona cherimola, Jabuticaba Myrciaria cauliflora, Bael Aegle marmelos... and others, at an unbelievable price! <br/><span style=\"color:red;\">This item has been made unavailable because of lack of safety standards.</span>","price":16.99,"image":"undefined.jpg","keywordsForPastebinDataLeakChallenge":["hueteroneel","eurogium edule"]},{"name":"OWASP Juice Shop Sticker (2015/2016 design)","description":"Die-cut sticker with the official 2015/2016 logo. By now this is a rare collectors item. <em>Out of stock!</em>","price":999.99,"image":"sticker.png","deletedDate":"2017-04-28"},{"name":"OWASP Juice Shop Iron-Ons (16pcs)","description":"Upgrade your clothes with washer safe <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">iron-ons</a> of the OWASP Juice Shop or CTF Extension logo!","price":14.99,"image":"iron-on.jpg"},{"name":"OWASP Juice Shop Magnets (16pcs)","description":"Your fridge will be even cooler with these OWASP Juice Shop or CTF Extension logo <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">magnets</a>!","price":15.99,"image":"magnets.jpg"},{"name":"OWASP Juice Shop Sticker Page","description":"Massive decoration opportunities with these OWASP Juice Shop or CTF Extension <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">sticker pages</a>! Each page has 16 stickers on it.","price":9.99,"image":"sticker_page.jpg"},{"name":"OWASP Juice Shop Sticker Single","description":"Super high-quality vinyl <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">sticker single</a> with the OWASP Juice Shop or CTF Extension logo! The ultimate laptop decal!","price":4.99,"image":"sticker_single.jpg"},{"name":"OWASP Juice Shop Temporary Tattoos (16pcs)","description":"Get one of these <a href=\"https://www.stickeryou.com/products/owasp-juice-shop/794\" target=\"_blank\">temporary tattoos</a> to proudly wear the OWASP Juice Shop or CTF Extension logo on your skin! If you tweet a photo of yourself with the tattoo, you get a couple of our stickers for free! Please mention <a href=\"https://twitter.com/owasp_juiceshop\" target=\"_blank\"><code>@owasp_juiceshop</code></a> in your tweet!","price":14.99,"image":"tattoo.jpg","reviews":[{"text":"I straight-up gots nuff props fo'these tattoos!","author":"rapper"}]},{"name":"OWASP Juice Shop Mug","description":"Black mug with regular logo on one side and CTF logo on the other! Your colleagues will envy you!","price":21.99,"image":"fan_mug.jpg"},{"name":"OWASP Juice Shop Hoodie","description":"Mr. Robot-style apparel. But in black. And with logo.","price":49.99,"image":"fan_hoodie.jpg"},{"name":"OWASP Juice Shop-CTF Velcro Patch","description":"4x3.5\" embroidered patch with velcro backside. The ultimate decal for every tactical bag or backpack!","price":2.92,"quantity":5,"limitPerUser":5,"image":"velcro-patch.jpg","reviews":[{"text":"This thang would look phat on Bobby's jacked fur coat!","author":"rapper"},{"text":"Looks so much better on my uniform than the boring Starfleet symbol.","author":"jim"}]},{"name":"Woodruff Syrup \"Forest Master X-Treme\"","description":"Harvested and manufactured in the Black Forest, Germany. Can cause hyperactive behavior in children. Can cause permanent green tongue when consumed undiluted.","price":6.99,"image":"woodruff_syrup.jpg"},{"name":"Green Smoothie","description":"Looks poisonous but is actually very good for your health! Made from green cabbage, spinach, kiwi and grass.","price":1.99,"image":"green_smoothie.jpg","reviews":[{"text":"Fresh out of a replicator.","author":"jim"}]},{"name":"Quince Juice (1000ml)","description":"Juice of the <em>Cydonia oblonga</em> fruit. Not exactly sweet but rich in Vitamin C.","price":4.99,"image":"quince.jpg"},{"name":"Apple Pomace","description":"Finest pressings of apples. Allergy disclaimer: Might contain traces of worms. Can be <a href=\"/#recycle\">sent back to us</a> for recycling.","price":0.89,"limitPerUser":5,"image":"apple_pressings.jpg"},{"name":"Fruit Press","description":"Fruits go in. Juice comes out. Pomace you can send back to us for recycling purposes.","price":89.99,"image":"fruit_press.jpg"},{"name":"OWASP Juice Shop Logo (3D-printed)","description":"This rare item was designed and handcrafted in Sweden. This is why it is so incredibly expensive despite its complete lack of purpose.","price":99.99,"image":"3d_keychain.jpg","fileForRetrieveBlueprintChallenge":"JuiceShop.stl","exifForBlueprintChallenge":["OpenSCAD"]},{"name":"Juice Shop Artwork","description":"Unique masterpiece painted with different kinds of juice on 90g/m² lined paper.","price":278.74,"quantity":0,"image":"artwork.jpg","deletedDate":"2020-12-24"},{"name":"Global OWASP WASPY Award 2017 Nomination","description":"Your chance to nominate up to three quiet pillars of the OWASP community ends 2017-06-30! <a href=\"https://www.owasp.org/index.php/WASPY_Awards_2017\">Nominate now!</a>","price":0.03,"image":"waspy.png","deletedDate":"2017-07-01"},{"name":"Strawberry Juice (500ml)","description":"Sweet & tasty!","price":3.99,"image":"strawberry_juice.jpeg"},{"name":"Carrot Juice (1000ml)","description":"As the old German saying goes: \"Carrots are good for the eyes. Or has anyone ever seen a rabbit with glasses?\"","price":2.99,"image":"carrot_juice.jpeg","reviews":[{"text":"0 st4rs f0r 7h3 h0rr1bl3 s3cur17y","author":"uvogin"}]},{"name":"OWASP Juice Shop Sweden Tour 2017 Sticker Sheet (Special Edition)","description":"10 sheets of Sweden-themed stickers with 15 stickers on each.","price":19.1,"image":"stickersheet_se.png","deletedDate":"2017-09-20"},{"name":"Pwning OWASP Juice Shop","description":"<em>The official Companion Guide</em> by Björn Kimminich available <a href=\"https://leanpub.com/juice-shop\">for free on LeanPub</a> and also <a href=\"https://pwning.owasp-juice.shop\">readable online</a>!","price":5.99,"image":"cover_small.jpg","reviews":[{"text":"Even more interesting than watching Interdimensional Cable!","author":"morty"}]},{"name":"Melon Bike (Comeback-Product 2018 Edition)","description":"The wheels of this bicycle are made from real water melons. You might not want to ride it up/down the curb too hard.","price":2999,"quantity":3,"limitPerUser":1,"image":"melon_bike.jpeg"},{"name":"OWASP Juice Shop Coaster (10pcs)","description":"Our 95mm circle coasters are printed in full color and made from thick, premium coaster board.","price":19.99,"quantity":0,"image":"coaster.jpg"},{"name":"OWASP Snakes and Ladders - Web Applications","description":"This amazing web application security awareness board game is <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1969196030\">available for Tabletop Simulator on Steam Workshop</a> now!","price":0.01,"quantity":8,"image":"snakes_ladders.jpg","reviews":[{"text":"Wait for a 10$ Steam sale of Tabletop Simulator!","author":"bjoernOwasp"}]},{"name":"OWASP Snakes and Ladders - Mobile Apps","description":"This amazing mobile app security awareness board game is <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1970691216\">available for Tabletop Simulator on Steam Workshop</a> now!","price":0.01,"quantity":0,"image":"snakes_ladders_m.jpg","reviews":[{"text":"Here yo' learn how tha fuck ta not show yo' goddamn phone on camera!","author":"rapper"}]},{"name":"OWASP Juice Shop Holographic Sticker","description":"Die-cut holographic sticker. Stand out from those 08/15-sticker-covered laptops with this shiny beacon of 80's coolness!","price":2,"quantity":0,"image":"holo_sticker.png","reviews":[{"text":"Rad, dude!","author":"rapper"},{"text":"Looks spacy on Bones' new tricorder!","author":"jim"},{"text":"Will put one on the Planet Express ship's bumper!","author":"bender"}]},{"name":"OWASP Juice Shop \"King of the Hill\" Facemask","description":"Facemask with compartment for filter from 50% cotton and 50% polyester.","price":13.49,"quantity":0,"limitPerUser":1,"image":"fan_facemask.jpg","reviews":[{"text":"K33p5 y0ur ju1cy 5plu773r 70 y0ur53lf!","author":"uvogin"},{"text":"Puny mask for puny human weaklings!","author":"bender"}]},{"name":"Juice Shop Adversary Trading Card (Common)","description":"Common rarity \"Juice Shop\" card for the <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSecLEakawSQ56lBe2JOSbFwFYrKDCIN7Yd3iHFdQc5z8ApwdQ/viewform\">Adversary Trading Cards</a> CCG.","price":2.99,"deluxePrice":0.99,"deletedDate":"2020-11-30","limitPerUser":5,"image":"ccg_common.png","reviews":[{"text":"Ooooh, puny human playing Mau Mau, now?","author":"bender"}]},{"name":"Juice Shop Adversary Trading Card (Super Rare)","description":"Super rare \"Juice Shop\" card with holographic foil-coating for the <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSecLEakawSQ56lBe2JOSbFwFYrKDCIN7Yd3iHFdQc5z8ApwdQ/viewform\">Adversary Trading Cards</a> CCG.","price":99.99,"deluxePrice":69.99,"deletedDate":"2020-11-30","quantity":2,"limitPerUser":1,"image":"ccg_foil.png","reviews":[{"text":"Mau Mau with bling-bling? Humans are so pathetic!","author":"bender"}]},{"name":"Juice Shop \"Permafrost\" 2020 Edition","description":"Exact version of <a href=\"https://github.com/juice-shop/juice-shop/releases/tag/v9.3.1-PERMAFROST\">OWASP Juice Shop that was archived on 02/02/2020</a> by the GitHub Archive Program and ultimately went into the <a href=\"https://github.blog/2020-07-16-github-archive-program-the-journey-of-the-worlds-open-source-code-to-the-arctic\">Arctic Code Vault</a> on July 8. 2020 where it will be safely stored for at least 1000 years.","price":9999.99,"quantity":1,"limitPerUser":1,"image":"permafrost.jpg","reviews":[{"text":"🧊 Let it go, let it go 🎶 Can't hold it back anymore 🎶 Let it go, let it go 🎶 Turn away and slam the door ❄️","author":"rapper"}]},{"name":"Best Juice Shop Salesman Artwork","description":"Unique digital painting depicting Stan, our most qualified and almost profitable salesman. He made a succesful carreer in selling used ships, coffins, krypts, crosses, real estate, life insurance, restaurant supplies, voodoo enhanced asbestos and courtroom souvenirs before <em>finally</em> adding his expertise to the Juice Shop marketing team.","price":5000,"quantity":1,"image":"artwork2.jpg","reviews":[{"text":"I'd stand on my head to make you a deal for this piece of art.","author":"stan"},{"text":"Just when my opinion of humans couldn't get any lower, along comes Stan...","author":"bender"}]},{"name":"OWASP Juice Shop Card (non-foil)","description":"Mythic rare <small><em>(obviously...)</em></small> card \"OWASP Juice Shop\" with three distinctly useful abilities. Alpha printing, mint condition. A true collectors piece to own!","price":1000,"quantity":3,"limitPerUser":1,"image":"card_alpha.jpg","reviews":[{"text":"DO NOT PLAY WITH THIS! Double-sleeve, then put it in the GitHub Arctic Vault for perfect preservation and boost of secondary market value!","author":"accountant"}]},{"name":"20th Anniversary Celebration Ticket","description":"Get your <a href=\"https://20thanniversary.owasp.org/\" target=\"_blank\">free 🎫 for OWASP 20th Anniversary Celebration</a> online conference! Hear from world renowned keynotes and special speakers, network with your peers and interact with our event sponsors. With an anticipated 10k+ attendees from around the world, you will not want to miss this live on-line event!","price":1e-20,"deletedDate":"2021-09-25","limitPerUser":1,"image":"20th.jpeg","reviews":[{"text":"I'll be there! Will you, too?","author":"bjoernOwasp"}]},{"name":"OWASP Juice Shop LEGO™ Tower","description":"Want to host a Juice Shop CTF in style? Build <a href=\"https://github.com/OWASP/owasp-swag/blob/master/projects/juice-shop/lego/OWASP%20JuiceShop%20Pi-server%201.2.pdf\" target=\"_blank\">your own LEGO™ tower</a> which holds four Raspberry Pi 4 models with PoE HAT modules <a href=\"https://github.com/juice-shop/multi-juicer/blob/main/guides/raspberry-pi/raspberry-pi.md\" target=\"_blank\">running a MultiJuicer Kubernetes cluster</a>! Wire to a switch and connect to your network to have an out-of-the-box ready CTF up in no time!","price":799,"quantity":3,"limitPerUser":1,"image":"lego_case.jpg","reviews":[{"text":"Check out the /#/photo-wall for some impressions of the assembly process!","author":"bjoernOwasp"}]},{"name":"DSOMM & Juice Shop User Day Ticket","description":"You are going to the OWASP Global AppSec San Francisco 2024? <a href=\"https://www.eventbrite.com/e/owasp-global-appsec-san-francisco-2024-tickets-723699172707\" target=\"_blank\">Get a ticket<sup>*</sup></a> for this amazing side event as well! Check the juice-packed agenda <a href=\"https://owasp.org/www-project-juice-shop/#div-userday2024\" target=\"_blank\">here</a> for all the details!<br><br><small><small><sup>*</sup>=scroll down to <strong>Elevate: DSOMM and Juice Shop User Day (Sept. 25)</strong> after clicking <em>Get Tickets</em> on Eventbrite. Ticket price set to only covers fees for room, AV, and catering throughout the day.</small></small>","price":55.2,"deletedDate":"2024-09-26","limitPerUser":1,"image":"user_day_ticket.png","reviews":[{"text":"The DSOMM Live Assessment session will even use Juice Shop as its \"real-world\" example!","author":"timo"},{"text":"We will showcase the amazing MultiJuicer Lego Tower at this event!","author":"jannik"}]},{"name":"Pineapple Juice (1000ml)","description":"Tropical refreshment from the finest sun-ripened pineapples.","price":2.99,"image":"pineapple_juice.png"},{"name":"Melon Juice (1000ml)","description":"Refreshing and sweet juice made from ripe melons.","price":2.49,"image":"melon_juice.png"},{"name":"Grape Juice (1000ml)","description":"Deep purple and full of antioxidants from selected grapes.","price":2.99,"image":"grape_juice.png"},{"name":"Dragonfruit Juice (500ml)","description":"Exotic and vibrant juice made from dragonfruit.","price":3.99,"image":"dragonfruit_juice.png"},{"name":"Berry Juice (1000ml)","description":"A delicious blend of fresh forest berries.","price":3.49,"image":"berry_juice.png"},{"name":"Basil Smoothie","description":"A unique blend of fresh basil and ginger for a healthy kick.","price":2.99,"image":"basil_smoothie.png","reviews":[{"text":"(ง'̀-'́)ง","author":"basil"}]},{"name":"Bragă (500ml)","description":"Traditional Balkan drink made from fermented millet. Lightly sweet-sour, refreshing, and naturally energizing.","price":2.49,"image":"braga.jpg"},{"name":"Elderflower Cordial (500ml)","description":"Floral and fragrant soft drink made from elderflowers. Traditionally enjoyed chilled.","price":3.29,"image":"elderflower_cordial.jpg"},{"name":"Sea Buckthorn Juice (500ml)","description":"Tangy and slightly sour juice, extremely rich in Vitamin C and antioxidants.","price":3.99,"image":"sea_buckthorn_juice.jpg"},{"name":"Pomegranate Drink (500ml)","description":"A sweet and tart refreshment inspired by classic grenadine flavors.","price":4.49,"image":"pomegranate_drink.jpg"}],"memories":[{"image":"magn(et)ificent!-1571814229653.jpg","caption":"Magn(et)ificent!","user":"bjoernGoogle"},{"image":"my-rare-collectors-item!-[̲̅$̲̅(̲̅-͡°-͜ʖ-͡°̲̅)̲̅$̲̅]-1572603645543.jpg","caption":"My rare collectors item! [̲̅$̲̅(̲̅ ͡° ͜ʖ ͡°̲̅)̲̅$̲̅]","user":"bjoernGoogle"},{"image":"favorite-hiking-place.png","caption":"I love going hiking here...","geoStalkingMetaSecurityQuestion":14,"geoStalkingMetaSecurityAnswer":"Daniel Boone National Forest"},{"image":"IMG_4253.jpg","caption":"My old workplace...","geoStalkingVisualSecurityQuestion":10,"geoStalkingVisualSecurityAnswer":"ITsec"},{"image":"BeeHaven.png","caption":"Welcome to the Bee Haven (/#/bee-haven)🐝","user":"evm"},{"image":"sorted-the-pieces,-starting-assembly-process-1721152307290.jpg","caption":"Sorted the pieces, starting assembly process...","user":"bjoernOwasp"},{"image":"building-something-literally-bottom-up-1721152342603.jpg","caption":"Building something literally bottom up...","user":"bjoernOwasp"},{"image":"putting-in-the-hardware-1721152366854.jpg","caption":"Putting in the hardware...","user":"bjoernOwasp"},{"image":"everything-up-and-running!-1721152385146.jpg","caption":"Everything up and running!","user":"bjoernOwasp"}],"ctf":{"showFlagsInNotifications":false,"showCountryDetailsInNotifications":"none","countryMapping":null,"systemWideNotifications":{"url":null,"pollFrequencySeconds":null}}}}
          - - -
          Evidence
          192.168.99.100:3000
          Solution -

          Remove the private IP address from the HTTP response body. For comments, use JSP/ASP/PHP comment instead of HTML/JavaScript comment which can be seen by client browsers.

          -
          - -
        2. -
        -
      2. - -
      3. -
        - X-Content-Type-Options Header Missing (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvlLyr- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

          -
          Other info -

          This issue still applies to error type pages (401, 403, 500, etc.) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

          - -

          At "High" threshold this scan rule will not alert on client or server error responses.

          -
          Request
          - Request line and header section (292 bytes) - -
          GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=PvlLyr- HTTP/1.1
          -host: 20.60.0.1:3000
          -User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
          -Accept: */*
          -Accept-Language: en-US,en;q=0.5
          -Connection: keep-alive
          -Referer: http://20.60.0.1:3000/
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (230 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: http://localhost:4200
          -Vary: Origin
          -Content-Type: text/plain; charset=UTF-8
          -Content-Length: 96
          -Date: Thu, 28 May 2026 16:08:05 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (96 bytes) - -
          0{"sid":"oJPnb_nhYFl02uUXAAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}
          - - -
          Parameter
          x-content-type-options
          Solution -

          Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

          - -

          If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

          -
          - -
        2. -
        -
      4. - -
      -
    2. - -
    -
  8. - -
  9. -

    - Risk=Low, Confidence=Low (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Timestamp Disclosure - Unix (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          A timestamp was disclosed by the application/web server. - Unix

          -
          Other info -

          1666666667, which evaluates to: 2022-10-24 22:57:47.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 15:56:09 GMT
          -ETag: W/"26af-19e6f4cdf8f"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 16:06:02 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          1666666667
          Solution -

          Manually confirm that the timestamp data is not sensitive, and that the data cannot be aggregated to disclose exploitable patterns.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  10. - - - - - - -
  11. -

    - Risk=Informational, Confidence=Medium (1) -

    -
      - -
    1. -

      - http://20.60.0.1:3000 (1) -

      -
        - -
      1. -
        - Modern Web Application (1) -
        -
          -
        1. - - GET http://20.60.0.1:3000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Alert tags - -
          Alert description -

          The application appears to be a modern web application. If you need to explore it automatically then the Ajax Spider may well be more effective than the standard one.

          -
          Other info -

          No links have been found while there are scripts, which is an indication that this is a modern web application.

          -
          Request
          - Request line and header section (228 bytes) - -
          GET http://20.60.0.1:3000 HTTP/1.1
          -host: 20.60.0.1:3000
          -user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
          -pragma: no-cache
          -cache-control: no-cache
          -
          -
          - - -
          - Request body (0 bytes) - -
          - - -
          Response
          - Status line and header section (467 bytes) - -
          HTTP/1.1 200 OK
          -Access-Control-Allow-Origin: *
          -X-Content-Type-Options: nosniff
          -X-Frame-Options: SAMEORIGIN
          -Feature-Policy: payment 'self'
          -X-Recruiting: /#/jobs
          -Accept-Ranges: bytes
          -Cache-Control: public, max-age=0
          -Last-Modified: Thu, 28 May 2026 15:56:09 GMT
          -ETag: W/"26af-19e6f4cdf8f"
          -Content-Type: text/html; charset=UTF-8
          -Content-Length: 9903
          -Vary: Accept-Encoding
          -Date: Thu, 28 May 2026 16:06:03 GMT
          -Connection: keep-alive
          -Keep-Alive: timeout=5
          -
          -
          - - -
          - Response body (9903 bytes) - -
          <!--
          -  ~ Copyright (c) 2014-2026 Bjoern Kimminich & the OWASP Juice Shop contributors.
          -  ~ SPDX-License-Identifier: MIT
          -  -->
          -
          -<!doctype html>
          -<html lang="en" data-beasties-container>
          -<head>
          -  <meta charset="utf-8">
          -  <title>OWASP Juice Shop</title>
          -  <meta name="description" content="Probably the most modern and sophisticated insecure web application">
          -  <meta name="viewport" content="width=device-width, initial-scale=1">
          -  <link rel="preconnect" href="https://fonts.googleapis.com">
          -  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
          -  <style>@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isQFJXGdg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isRFJXGdg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'VT323';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/vt323/v18/pxiKyp0ihIEF2isfFJU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
          -  <link id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico">
          -  <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          -<style>.bluegrey-lightgreen-theme{--mat-sys-background:#121316;--mat-sys-error:#ffb4ab;--mat-sys-error-container:#93000a;--mat-sys-inverse-on-surface:#2f3033;--mat-sys-inverse-primary:#005cbb;--mat-sys-inverse-surface:#e3e2e6;--mat-sys-on-background:#e3e2e6;--mat-sys-on-error:#690005;--mat-sys-on-error-container:#ffdad6;--mat-sys-on-primary:#002f65;--mat-sys-on-primary-container:#d7e3ff;--mat-sys-on-primary-fixed:#001b3f;--mat-sys-on-primary-fixed-variant:#00458f;--mat-sys-on-secondary:#283041;--mat-sys-on-secondary-container:#dae2f9;--mat-sys-on-secondary-fixed:#131c2b;--mat-sys-on-secondary-fixed-variant:#3e4759;--mat-sys-on-surface:#e3e2e6;--mat-sys-on-surface-variant:#e0e2ec;--mat-sys-on-tertiary:#173800;--mat-sys-on-tertiary-container:#82ff10;--mat-sys-on-tertiary-fixed:#0b2000;--mat-sys-on-tertiary-fixed-variant:#245100;--mat-sys-outline:#8e9099;--mat-sys-outline-variant:#44474e;--mat-sys-primary:#abc7ff;--mat-sys-primary-container:#00458f;--mat-sys-primary-fixed:#d7e3ff;--mat-sys-primary-fixed-dim:#abc7ff;--mat-sys-scrim:#000000;--mat-sys-secondary:#bec6dc;--mat-sys-secondary-container:#3e4759;--mat-sys-secondary-fixed:#dae2f9;--mat-sys-secondary-fixed-dim:#bec6dc;--mat-sys-shadow:#000000;--mat-sys-surface:#121316;--mat-sys-surface-bright:#38393c;--mat-sys-surface-container:#1f2022;--mat-sys-surface-container-high:#292a2c;--mat-sys-surface-container-highest:#343537;--mat-sys-surface-container-low:#1a1b1f;--mat-sys-surface-container-lowest:#0d0e11;--mat-sys-surface-dim:#121316;--mat-sys-surface-tint:#abc7ff;--mat-sys-surface-variant:#44474e;--mat-sys-tertiary:#70e000;--mat-sys-tertiary-container:#245100;--mat-sys-tertiary-fixed:#82ff10;--mat-sys-tertiary-fixed-dim:#70e000;--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;color:var(--mat-sys-on-surface);background-color:var(--mat-sys-surface)}html{font-family:var(--mat-sys-body-medium-font, Roboto, "Helvetica Neue", sans-serif)}.bluegrey-lightgreen-theme{--theme-primary:#438fff;--theme-primary-lighter:rgb(97.6, 161.229787234, 255);--theme-primary-light:rgb(118, 173.3829787234, 255);--theme-primary-darker:rgb(36.4, 124.770212766, 255);--theme-primary-dark:rgb(16, 112.6170212766, 255);--theme-primary-fade-10:#438fff;--theme-primary-fade-20:#438fff;--theme-primary-fade-30:#438fff;--theme-primary-fade-40:#438fff;--theme-primary-fade-50:#438fff;--theme-accent:#50a400;--theme-accent-lighter:rgb(94.9268292683, 194.6, 0);--theme-accent-light:rgb(104.8780487805, 215, 0);--theme-accent-darker:rgb(65.0731707317, 133.4, 0);--theme-accent-dark:rgb(55.1219512195, 113, 0);--theme-accent-fade-10:#50a400;--theme-accent-fade-20:#50a400;--theme-accent-fade-30:#50a400;--theme-accent-fade-40:#50a400;--theme-accent-fade-50:#50a400;--theme-warn:#ffb4ab;--theme-warn-lighter:rgb(255, 207.3214285714, 201.6);--theme-warn-light:rgb(255, 225.5357142857, 222);--theme-warn-darker:rgb(255, 152.6785714286, 140.4);--theme-warn-dark:rgb(255, 134.4642857143, 120);--theme-warn-fade-10:#ffb4ab;--theme-warn-fade-20:#ffb4ab;--theme-warn-fade-30:#ffb4ab;--theme-warn-fade-40:#ffb4ab;--theme-warn-fade-50:#ffb4ab;--theme-text:#e3e2e6;--theme-text-lighter:rgb(242.8666666667, 242.4333333333, 244.1666666667);--theme-text-light:rgb(253.4444444444, 253.3888888889, 253.6111111111);--theme-text-darker:rgb(200.5555555556, 198.6111111111, 206.3888888889);--theme-text-dark:rgb(160.8888888889, 157.5277777778, 170.9722222222);--theme-text-fade-10:#e3e2e6;--theme-text-fade-20:#e3e2e6;--theme-text-fade-30:#e3e2e6;--theme-text-fade-40:#e3e2e6;--theme-text-fade-50:#e3e2e6;--theme-text-invert-15:rgb(197.15, 196.45, 199.25);--theme-text-invert-30:rgb(167.3, 166.9, 168.5);--theme-background:#1f2022;--theme-background-lighter:rgb(45.5938461538, 47.0646153846, 50.0061538462);--theme-background-light:rgb(55.3230769231, 57.1076923077, 60.6769230769);--theme-background-darker:rgb(16.4061538462, 16.9353846154, 17.9938461538);--theme-background-dark:rgb(6.6769230769, 6.8923076923, 7.3230769231);--theme-background-darkest:hsl(220, 4.6153846154%, -1.2549019608%);--theme-thumbnail-border:1px solid #abc7ff;--mdc-filled-text-field-container-color:#0000;--mdc-filled-text-field-disabled-container-color:#0000;--theme-background:#3e3e3e;--theme-background-lighter:#4a4a4a;--theme-background-light:#5a5a5a;--theme-background-darker:#333638;--theme-background-dark:#303030;--theme-background-darkest:#2b2b2b;--theme-text:#e8ecef;--theme-text-lighter:#f2f5f7;--theme-text-light:#fff;--theme-text-darker:#b8c0c7;--theme-text-dark:#7f8a93;--mat-sys-surface:#333638;--mat-sys-on-surface:#e8ecef;--mat-sys-surface-container:#3e3e3e;--mat-sys-surface-container-high:#404244;--mat-sys-on-surface-variant:#b8c0c7;--mat-sys-outline:#5a5a5a;--mat-sys-outline-variant:#404244}.bluegrey-lightgreen-theme{--theme-warn:#f44336;--theme-warn-lighter:rgb(245.5877358491, 94.1358490566, 83.0122641509);--theme-warn-light:rgb(246.6462264151, 112.2264150943, 102.3537735849);--theme-warn-darker:rgb(242.4122641509, 39.8641509434, 24.9877358491);--theme-warn-dark:rgb(234.1839622642, 27.9622641509, 12.8160377358);--theme-warn-fade-10:#f44336;--theme-warn-fade-20:#f44336;--theme-warn-fade-30:#f44336;--theme-warn-fade-40:#f44336;--theme-warn-fade-50:#f44336;--mat-sys-error:#f44336;--mat-sys-on-error:#fff}@media screen and (-webkit-min-device-pixel-ratio:0){}</style><link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.css"></noscript></head>
          -<body class="bluegrey-lightgreen-theme">
          -  <app-root></app-root>
          -<link rel="modulepreload" href="chunk-SCY7YOCS.js"><link rel="modulepreload" href="chunk-PX7UKXVL.js"><link rel="modulepreload" href="chunk-GNBEOV4E.js"><link rel="modulepreload" href="chunk-7O3TTE7G.js"><link rel="modulepreload" href="chunk-JCQ5N7PA.js"><link rel="modulepreload" href="chunk-UNFVUBM2.js"><link rel="modulepreload" href="chunk-524KQQJQ.js"><link rel="modulepreload" href="chunk-SI2GTEZM.js"><link rel="modulepreload" href="chunk-ZO2KHBRB.js"><link rel="modulepreload" href="chunk-7AKA75AX.js"><script src="polyfills.js" type="module"></script><script src="scripts.js" defer></script><script src="main.js" type="module"></script></body>
          -</html>
          -
          - - -
          Evidence
          <script>
          -    window.addEventListener("load", function(){
          -      window.cookieconsent.initialise({
          -        "palette": {
          -          "popup": { "background": "var(--theme-primary)", "text": "var(--theme-text)" },
          -          "button": { "background": "var(--theme-accent)", "text": "var(--theme-text)" }
          -        },
          -        "theme": "classic",
          -        "position": "bottom-right",
          -        "content": { "message": "This website uses fruit cookies to ensure you get the juiciest tracking experience.", "dismiss": "Me want it!", "link": "But me wait!", "href": "https://www.youtube.com/watch?v=9PnbKL3wuH4" }
          -      })});
          -  </script>
          Solution -

          This is an informational alert and so no changes are required.

          -
          - -
        2. -
        -
      2. - -
      -
    2. - -
    -
  12. - - - -
-
- -
-

Appendix

- -
-

Alert Types

-

This section contains additional information on the types of alerts in the report.

-
    -
  1. -

    SQL Injection

    - - - - - - - - - - - - - - - - - -
    Source - - raised by an active scanner (SQL Injection) - -
    CWE ID89
    WASC ID19
    Reference -
      -
    1. https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
    2. -
    -
    -
  2. -
  3. -

    Content Security Policy (CSP) Header Not Set

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Content Security Policy (CSP) Header Not Set) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP
    2. -
    3. https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html
    4. -
    5. https://www.w3.org/TR/CSP/
    6. -
    7. https://w3c.github.io/webappsec-csp/
    8. -
    9. https://web.dev/articles/csp
    10. -
    11. https://caniuse.com/#feat=contentsecuritypolicy
    12. -
    13. https://content-security-policy.com/
    14. -
    -
    -
  4. -
  5. -

    Cross-Domain Misconfiguration

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Cross-Domain Misconfiguration) - -
    CWE ID264
    WASC ID14
    Reference -
      -
    1. https://vulncat.fortify.com/en/detail?category=HTML5&subcategory=Overly%20Permissive%20CORS%20Policy
    2. -
    -
    -
  6. -
  7. -

    Missing Anti-clickjacking Header

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Anti-clickjacking Header) - -
    CWE ID1021
    WASC ID15
    Reference -
      -
    1. https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options
    2. -
    -
    -
  8. -
  9. -

    Session ID in URL Rewrite

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Session ID in URL Rewrite) - -
    CWE ID598
    WASC ID13
    Reference -
      -
    1. https://seclists.org/webappsec/2002/q4/111
    2. -
    -
    -
  10. -
  11. -

    Private IP Disclosure

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Private IP Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://datatracker.ietf.org/doc/html/rfc1918
    2. -
    -
    -
  12. -
  13. -

    Timestamp Disclosure - Unix

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (Timestamp Disclosure) - -
    CWE ID497
    WASC ID13
    Reference -
      -
    1. https://cwe.mitre.org/data/definitions/200.html
    2. -
    -
    -
  14. -
  15. -

    X-Content-Type-Options Header Missing

    - - - - - - - - - - - - - - - - - -
    Source - - raised by a passive scanner (X-Content-Type-Options Header Missing) - -
    CWE ID693
    WASC ID15
    Reference -
      -
    1. https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/compatibility/gg622941(v=vs.85)
    2. -
    3. https://owasp.org/www-community/Security_Headers
    4. -
    -
    -
  16. -
  17. -

    Modern Web Application

    - - - - - - - - -
    Source - - raised by a passive scanner (Modern Web Application) - -
    -
  18. -
-
-
- -
- - - - - diff --git a/TestesRealizados1/Squeence/normalize/LICENSE.md b/TestesRealizados1/Squeence/normalize/LICENSE.md deleted file mode 100644 index 43b5ddc..0000000 --- a/TestesRealizados1/Squeence/normalize/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# The MIT License (MIT) - -Copyright © Nicolas Gallagher and Jonathan Neal - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/TestesRealizados1/Squeence/normalize/normalize.css b/TestesRealizados1/Squeence/normalize/normalize.css deleted file mode 100644 index 192eb9c..0000000 --- a/TestesRealizados1/Squeence/normalize/normalize.css +++ /dev/null @@ -1,349 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} diff --git a/TestesRealizados1/Squeence/themes/original/colors.css b/TestesRealizados1/Squeence/themes/original/colors.css deleted file mode 100644 index fd3b963..0000000 --- a/TestesRealizados1/Squeence/themes/original/colors.css +++ /dev/null @@ -1,139 +0,0 @@ -body { - background-color: #306aa0; - background-image: radial-gradient(circle at top left, #fff 0%, #8ce1d6 15em, #306aa0 100em, #386095 100%); -} - -main, footer { - background-color: #fff; -} - -header { - background-color: #00549e; - color: #fff; -} - -a:link { - color: #004380; -} - -a:visited { - color: #770d67; -} - -a:focus { - background-color: #ffd54d; -} - -a:hover { - background-color: #ffd54d; -} - -a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -header a:link { - color: #f2f7fd; -} - -header a:visited { - color: #f2b5e9; -} - -header a:focus { - background-color: #ffd54d; - color: #004380; -} - -header a:hover { - background-color: #ffd54d; - color: #004380; -} - -header a:active { - background-color: #ffd54d; - color: #003261; - outline-color: #fff6db; -} - -summary:focus { - background-color: #ffd54d; -} - -summary:hover { - background-color: #ffd54d; -} - -summary:active { - background-color: #ffd54d; - color: #003261; - outline-color: #f4ba00; -} - -h2, h3, h4, h5, h6 { - color: #00549e; -} - -.risk-level, .confidence-level { - color: #00549e; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - color: #00549e; -} - -.risk-confidence-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - background-color: #00549e; - color: #fff; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - color: #00549e; -} - -.site-risk-counts-table > tbody > tr { - border-top-color: #00549e; -} - -.alert-type-counts-table > tbody > tr { - border-bottom-color: #00549e; -} - -.alert-type-counts-table th[scope="col"] { - background-color: #00549e; - color: #fff; -} - -.alert-type-counts-table th[scope="col"] { - border-left-color: #fff; -} - -.alerts-table th, .alert-types-table th { - background-color: #306aa0; - color: #fff; -} - -.additional-info-percentages { - color: #00549e; -} - -.insights-table > tbody > tr { - border-bottom-color: #00549e; -} - -.insights-table th[scope="col"] { - background-color: #00549e; - border-left-color: #fff; - color: #fff; -} diff --git a/TestesRealizados1/Squeence/themes/original/main.css b/TestesRealizados1/Squeence/themes/original/main.css deleted file mode 100644 index 050bd3f..0000000 --- a/TestesRealizados1/Squeence/themes/original/main.css +++ /dev/null @@ -1,417 +0,0 @@ -*, *::after, *::before { - box-sizing: border-box; -} - -h1, h2, h3, h4, h5, h6 { - margin: 0; - padding: 0; -} - -pre, ul { - margin: 0; -} - -ol { - list-style-type: none; -} - -h1 { - font-size: 3em; -} - -h2 { - font-size: 2em; -} - -h3, h4, h5, h6 { - font-size: 1em; -} - -html { - box-sizing: border-box; - font-family: Verdana, sans-serif; - line-height: 1.5; -} - -body { - margin: 1.5em 0; -} - -@media screen and (min-width: 50em) { - body { - margin: 1.5em 2ch; - padding: 1.5em 2ch; - } -} - -a:active, header a:active { - outline-style: solid; -} - -header, main { - margin: 0 auto; - max-width: 90ch; - padding: 1.5em 4ch; -} - -header { - border-radius: .25em .25em 0 0; -} - -main { - border-radius: 0 0 .25em .25em; -} - -summary { - cursor: pointer; -} - -.contents { - margin-top: 1.5em; -} - -main > section { - margin-bottom: 4.5em; -} - -.about-this-report > section { - margin-bottom: 3em; -} - -.summaries section { - margin-bottom: 3em; -} - -h2 { - margin-bottom: .75em; -} - -h3 { - margin-bottom: 1.5em; -} - -h4 { - margin-bottom: 1.5em; -} - -.report-parameters--container h4 { - margin-top: 1.5em; -} - -p { - margin: 1.5em 0; -} - -p:first-of-type { - margin-top: 0; -} - -p:last-of-type { - margin-bottom: 0; -} - -.contents li, .alerts li, .alert-types > ol > li { - margin-top: 1.5em; -} - -.alert-types h4 { - margin-bottom: 0; -} - -a { - border-radius: .125em; -} - -caption { - margin-bottom: 1.5em; - text-align: left; -} - -code, .request-method-n-url { - overflow-wrap: anywhere; - white-space: break-spaces; -} - -table { - border-collapse: collapse; -} - -.report-description--container, .report-parameters--container { - margin-left: 2ch; - padding: 0 2ch; -} - -.about-this-report h3, .summaries h3, .appendix h3 { - border-bottom: .05em solid; -} - -.alerts h4 { - text-align: center; -} - -.alerts ol { - padding-left: 0; -} - -.alerts--site-li { - border: .05em solid; - border-radius: .25em; - margin-left: 2ch; - padding: 1.5em 3ch; -} - -.contents ol { - list-style-position: inside; - list-style-type: square; - padding-left: 4ch; -} - -.contexts-list, .sites-list { - list-style-type: square; -} - -.risk-confidence-counts-table { - width: 100%; -} - -.risk-confidence-counts-table tr { - height: 4.5em; -} - -.risk-confidence-counts-table thead > tr { - height: 3em; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table th[scope="rowgroup"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.risk-confidence-counts-table th[scope="row"] { - padding-right: 5%; -} - -@media screen and (max-width: 50em) { - .risk-confidence-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.risk-confidence-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.risk-confidence-counts-table > tbody > tr { - border-top: .05em solid; -} - -.risk-confidence-counts-table th[scope="row"], .risk-confidence-counts-table td { - vertical-align: top; -} - -.risk-confidence-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.risk-confidence-counts-table th[scope="colgroup"], .risk-confidence-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.risk-confidence-counts-table td, .risk-confidence-counts-table th[scope="col"], .risk-confidence-counts-table th[scope="row"] { - text-align: right; -} - -.site-risk-counts-table { - width: 100%; -} - -.site-risk-counts-table tr { - height: 4.5em; -} - -.site-risk-counts-table thead > tr:first-of-type { - height: 3em; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table th[scope="col"] { - hyphens: auto; - overflow-wrap: anywhere; - word-break: break-all; -} - -.site-risk-counts-table th[scope="row"] { - padding-right: 1%; -} - -@media screen and (max-width: 50em) { - .site-risk-counts-table th[scope="row"] { - padding-right: 1ch; - } -} - -.site-risk-counts-table th[scope="rowgroup"] { - padding: 0 .5ch; - vertical-align: middle; -} - -.site-risk-counts-table > tbody > tr { - border-top: .05em solid; -} - -.site-risk-counts-table th[scope="row"], .site-risk-counts-table td { - vertical-align: top; -} - -.site-risk-counts-table th[scope="col"] { - vertical-align: bottom; -} - -.site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - font-family: monospace, monospace; - font-weight: bold; -} - -.site-risk-counts-table th[scope="colgroup"], .site-risk-counts-table th[scope="rowgroup"] { - font-weight: normal; -} - -.site-risk-counts-table td, .site-risk-counts-table th[scope="col"], .site-risk-counts-table th[scope="row"] { - text-align: right; -} - -.alert-type-counts-table { - width: 100%; -} - -.alert-type-counts-table th, .alert-type-counts-table td { - padding: 0 1rem; - text-align: left; - vertical-align: top; -} - -.alert-type-counts-table td:nth-last-of-type(2) { - padding-left: 1.5rem; -} - -.alert-type-counts-table > tbody > tr { - border-bottom: 0.05em dotted; -} - -.alert-type-counts-table th[scope="col"] { - border-left: 1rem solid; -} - -.alert-type-counts-table th[scope="col"]:first-of-type { - border-left: 0; -} - -.alert-type-counts-table th[scope="col"]:last-of-type, .alert-type-counts-table td:last-of-type { - text-align: right; -} - -.alert-type-counts-table th[scope="col"], .alert-type-counts-table th[scope="row"] { - font-weight: normal; -} - -.alert-type-counts-table th[scope="row"], .alert-type-counts-table td { - padding-bottom: 1.5em; -} - -.alert-type-counts-table thead > th:first-of-type { - width: 45%; -} - -.alerts-table, .alert-types-table, .insights-table { - border-collapse: separate; - border-spacing: 2ch 1.5em; - width: 100%; -} - -.alerts-table th, .alerts-table td, .alert-types-table th, .alert-types-table td, .insights-table td, .insights-table th { - vertical-align: top; -} - -.alerts-table td, .alert-types-table td, .insights-table td { - overflow-wrap: anywhere; -} - -.alerts-table th, .alert-types-table th, .insights-table th { - padding: 0 1ch; -} - -.alerts-table td, .alert-types-table td { - padding: 0 2ch; -} - -.insights-table td { - padding: 0 1ch; -} - -.alerts-table summary { - margin-bottom: 1.5em; -} - -.alert-tags-list { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-tags-list > li { - margin-top: 0; -} - -.request-body, .response-body { - margin-top: 1.5em; -} - -.request-method-n-url { - margin-bottom: 0; -} - -.alert-types-table { - padding-top: 0; -} - -.alert-types-table th { - width: 20%; -} - -.alert-types-table ol { - list-style-position: inside; - list-style-type: square; - padding-left: 0; -} - -.alert-types-table li:not(:first-of-type) { - margin-top: 1.5em; -} - -p.alert-types-intro { - margin-bottom: 3em; -} - -.zap-logo { - height: 1em; - margin-right: .25ch; - width: 1em; -} - -h1, h2 { - font-family: Georgia, serif; -} - -.risk-level, .confidence-level, .included-risk-codes, .included-confidence-codes, .additional-info-percentages { - font-family: monospace, monospace; -} - -.context, .site, .request-method-n-url { - font-family: monospace, monospace; -} diff --git a/TestesRealizados1/Squeence/zap32x32.png b/TestesRealizados1/Squeence/zap32x32.png deleted file mode 100644 index 9c1019ffb2ad500434d78f20f5a624bd660e6735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1933 zcmV;82Xgp{P)LZ&X_*%IgUcU=kqE(b z4NRzXHHacGqA;V7EOd-rLRUsK6M0)>lNA+QA(1s>0WooNopVsi`f~3%&(A;3?F-PB zvOj!oo}80&pL3q?@9q2jJ@8;-E^rih7x)VQ$FTzF0Ce^0)w*%xMg@9CT^);$`@`-S z|D^%X0-G{2GScem>Zq-)#c><}&YnG+{?@;fz2@5u5&VQI{0HC&b5Eb8v=CMzq8Xh{uDUJ;6-8cvHPPw(V1AXlBMlio^B!;`1mR7lQz6stN1n` zVSRiJ3Jh}IHmwUh{p952jC=DbQ>IW{T+Bm{EyTg%86hH)s*G@RBZ6ZD zR~$s-xgh|tIK<*bMohZnrPKSTebm&{(An8JZUCD%Zw|w-XamM3aZ{E@QkJ_Sh=4&b zVlZMR6MN-LA+KI)MxOZY4_$EN7gpcl|GBy+*}SFI&@zE+1c5&ojb?% zH-610omUXmkc0pc4MCuY3JRI#ep;zPz!%CkF{7fMRjXD}R#rwLkr?x}`Sa(qYu7G1 z4zIhf6b}b*b0|Z?2bxNbAlb*&-!+hzmq$fKMaqhiM-T+Gw6t*h_U({ddb?6-2&w|A zpn{45bPqNps$5aDKvhCrw+1VURUz5a1;EaoJE^Lw8q=z_wl+#jOPTPwnarrD$C>b1 zeBZ~~fqr423P90ogC0=PH?8Vm*#v}(0|k?r!xzizShj2#GiT1Ey}f-@07XSb?AWn` zo)51w@$*j*Sf2pBs|*LhoR?u5{SD7JEun@R9Ak(IM2sO~gs2fb$L0Oj{d{ntiOR}K z4jw#6R#w)CK$a|7Ld#z-Gd=bqy@><~t0b(&SH%x3{Wghj{ro$E>8w7|8!?eI&lp@s zaK#WcLS%r`jo>*Bw)ZCgII)AS>wjbG)~z%&G>ix$H+M2U56vZe;WP9n69iWA)shSX z`fak)9$cP#M-^Drp9UIWRk0R)RT8QshN)UI2q2optfzJ|r}}xe?|y;IjENjOcI+Mi z7cX9-`|VS7cbpDGkWxfn15~wP#HQ4&KGGL8Zqzd_CM6=?Fb}vQxI!o{fa9gn`BpRU zy|It{{Ct|4nwT|f*5LO}o;*oeSs7W&e}iV^hCM-${BO{>Jm(%YOnIR)X)V55tW|8v z^2ET^D*YDvtkSPaPoj^^$IF?s{&lVgQFL zf4TNCRPNcLzb)TB`ne$0!%HlF+%?X3TygP?!H8f?C?W&GVvG#277}_4P&Z27wKi^_ z`UMY9O6QgM5f&|4M0R!--M6}buJEI=4km*jh{gB1;;i$G!4U@|f*8RtASQ%eXNt)N z2*#qQRjl#oYmeiff0@FG0rvrUs1Grl_V)4yJq|S&*HyA`hPcY4iwPqM T`!Z{P00000NkvXXu0mjf{kVU6 diff --git a/relatorio/imgs/email-invalido.png b/relatorio/imgs/email-invalido.png new file mode 100644 index 0000000000000000000000000000000000000000..c2f11b7de19ff65833d011fde3fece59f4e5b937 GIT binary patch literal 21858 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 IHyvR83q0izP5=M^ literal 0 HcmV?d00001 diff --git a/relatorio/imgs/email-unique.png b/relatorio/imgs/email-unique.png new file mode 100644 index 0000000000000000000000000000000000000000..00c12f47ee44e7ca428feef9e4d3c958056f5bf7 GIT binary patch literal 23167 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 literal 0 HcmV?d00001 diff --git a/relatorio/imgs/login-fuzzing.png b/relatorio/imgs/login-fuzzing.png new file mode 100644 index 0000000000000000000000000000000000000000..4c84093e458a2af5e537d091ea99e263f6eadb0c GIT binary patch literal 178687 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�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

-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 literal 0 HcmV?d00001 diff --git a/relatorio/imgs/stack-trace.png b/relatorio/imgs/stack-trace.png new file mode 100644 index 0000000000000000000000000000000000000000..97dd6d73d7a26aed11f5b01759bade967258900e GIT binary patch literal 81233 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 B9i;#O literal 0 HcmV?d00001 diff --git a/relatorio/relatorio.aux b/relatorio/relatorio.aux index 45cd9ed..ec14879 100644 --- a/relatorio/relatorio.aux +++ b/relatorio/relatorio.aux @@ -17,19 +17,19 @@ \@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Identity Management Testing}{4}{subsection.3.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Authentication Testing}{6}{subsection.3.4}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Authorization Testing}{6}{subsection.3.5}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.6}Session Management Testing}{6}{subsection.3.6}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.7}Input Validation Testing}{6}{subsection.3.7}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.8}Testing for Error Handling}{7}{subsection.3.8}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.9}Client Side Testing}{7}{subsection.3.9}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {4}Web Application Security Firewall}{8}{section.4}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Information Gathering}{8}{subsection.4.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Configuration and Deployment Management Testing}{8}{subsection.4.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Identity Management Testing}{8}{subsection.4.3}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Authentication Testing}{8}{subsection.4.4}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.5}Authorization Testing}{8}{subsection.4.5}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.6}Session Management Testing}{8}{subsection.4.6}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.7}Input Validation Testing}{8}{subsection.4.7}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.8}Testing for Error Handling}{8}{subsection.4.8}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {4.9}Client Side Testing}{8}{subsection.4.9}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {5}Conclusions}{8}{section.5}\protected@file@percent } -\gdef \@abspage@last{8} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.6}Session Management Testing}{7}{subsection.3.6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.7}Input Validation Testing}{7}{subsection.3.7}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.8}Testing for Error Handling}{8}{subsection.3.8}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.9}Client Side Testing}{8}{subsection.3.9}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4}Web Application Security Firewall}{9}{section.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Information Gathering}{9}{subsection.4.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Configuration and Deployment Management Testing}{9}{subsection.4.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Identity Management Testing}{9}{subsection.4.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Authentication Testing}{9}{subsection.4.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.5}Authorization Testing}{9}{subsection.4.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.6}Session Management Testing}{9}{subsection.4.6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.7}Input Validation Testing}{9}{subsection.4.7}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.8}Testing for Error Handling}{9}{subsection.4.8}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.9}Client Side Testing}{9}{subsection.4.9}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5}Conclusions}{9}{section.5}\protected@file@percent } +\gdef \@abspage@last{9} diff --git a/relatorio/relatorio.log b/relatorio/relatorio.log index f80f565..1556e23 100644 --- a/relatorio/relatorio.log +++ b/relatorio/relatorio.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.29 (MiKTeX 26.2) (preloaded format=pdflatex 2026.5.30) 30 MAY 2026 22:04 +This is pdfTeX, Version 3.141592653-2.6-1.40.29 (MiKTeX 26.2) (preloaded format=pdflatex 2026.5.30) 31 MAY 2026 13:10 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -1275,19 +1275,8 @@ LaTeX Font Info: Font shape `T1/Raleway-OsF/bold/n' aliased to (Font) `T1/Raleway-OsF/b/n' on input line 40. LaTeX Font Info: Font shape `T1/Raleway-OsF/b/n' will be (Font) scaled to size 12.0pt on input line 40. -\g__tcobox_out_iow=\write6 -\openout6 = `relatorio.listing'. - -LaTeX Font Info: Font shape `T1/cmtt/bx/n' in size <10.95> not available -(Font) Font shape `T1/cmtt/m/n' tried instead on input line 64. -LaTeX Font Info: Font shape `T1/cmtt/bx/n' in size <9> not available -(Font) Font shape `T1/cmtt/m/n' tried instead on input line 64. - (relatorio.listing -LaTeX Font Info: Font shape `T1/Raleway-OsF/m/n' will be -(Font) scaled to size 9.0pt on input line 1. -) [3] LaTeX Font Info: Trying to load font information for TS1+Raleway-OsF on inpu -t line 70. +t line 43. (C:\Users\lcorp\AppData\Local\Programs\MiKTeX\tex/latex/raleway\ts1raleway-osf. fd @@ -1295,13 +1284,35 @@ File: TS1Raleway-OsF.fd 2025/04/09 (autoinst) Font definitions for TS1/Raleway- OsF. ) LaTeX Font Info: Font shape `TS1/Raleway-OsF/m/n' will be -(Font) scaled to size 10.95pt on input line 70. - [4{C:/Users/lcorp/AppData/Local/Programs/MiKTeX/fonts/enc/dvips/raleway/a_2drk -ug.enc}] +(Font) scaled to size 10.95pt on input line 43. +\g__tcobox_out_iow=\write6 \openout6 = `relatorio.listing'. - (relatorio.listing) [5] -Overfull \hbox (6.24345pt too wide) in paragraph at lines 152--153 +LaTeX Font Info: Font shape `T1/cmtt/bx/n' in size <10.95> not available +(Font) Font shape `T1/cmtt/m/n' tried instead on input line 72. +LaTeX Font Info: Font shape `T1/cmtt/bx/n' in size <9> not available +(Font) Font shape `T1/cmtt/m/n' tried instead on input line 72. + (relatorio.listing +LaTeX Font Info: Font shape `T1/Raleway-OsF/m/n' will be +(Font) scaled to size 9.0pt on input line 1. +) [3{C:/Users/lcorp/AppData/Local/Programs/MiKTeX/fonts/enc/dvips/raleway/a_2dr +kug.enc}] [4] +\openout6 = `relatorio.listing'. + + (relatorio.listing) +<./imgs/email-unique.png, id=202, 475.7775pt x 361.35pt> +File: ./imgs/email-unique.png Graphic file (type png) + +Package pdftex.def Info: ./imgs/email-unique.png used on input line 130. +(pdftex.def) Requested size: 226.48395pt x 172.01245pt. + [5 <./imgs/email-unique.png (PNG copy)>] +<./imgs/email-invalido.png, id=223, 504.88625pt x 541.02126pt> +File: ./imgs/email-invalido.png Graphic file (type png) + +Package pdftex.def Info: ./imgs/email-invalido.png used on input line 141. +(pdftex.def) Requested size: 226.48395pt x 242.69781pt. + [6 <./imgs/email-invalido.png (PNG copy)>] +Overfull \hbox (6.24345pt too wide) in paragraph at lines 167--168 []\T1/Raleway-OsF/b/n/10.95 Tentativa com Script Di-reto: \T1/Raleway-OsF/m/n/1 0.95 In-se-ri-mos o pay-load tra-di-ci-o-nal \T1/cmtt/m/n/10.95