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://cdnjs.cloudflare.com +
- http://localhost: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
++ | Confidence | +|||||
---|---|---|---|---|---|---|
User Confirmed | +High | +Medium | +Low | +Total | +||
Risk | +High | +0 (0.0%) |
+ 0 (0.0%) |
+ 0 (0.0%) |
+ 1 (100.0%) |
+ 1 (100.0%) |
+
Medium | +0 (0.0%) |
+ 0 (0.0%) |
+ 0 (0.0%) |
+ 0 (0.0%) |
+ 0 (0.0%) |
+ |
Low | +0 (0.0%) |
+ 0 (0.0%) |
+ 0 (0.0%) |
+ 0 (0.0%) |
+ 0 (0.0%) |
+ |
Informational | +0 (0.0%) |
+ 0 (0.0%) |
+ 0 (0.0%) |
+ 0 (0.0%) |
+ 0 (0.0%) |
+ |
Total | +0 (0.0%) |
+ 0 (0.0%) |
+ 0 (0.0%) |
+ 1 (100.0%) |
+ 1 (100%) |
+
Alert counts by site and risk
++ | Risk | +||||
---|---|---|---|---|---|
+ High (= High) + |
+
+ Medium (>= Medium) + |
+
+ Low (>= Low) + |
+
+ Informational (>= Informational) + |
+ ||
Site | +http://localhost:3000 | + +1 (1) |
+ 0 (1) |
+ 0 (1) |
+ 0 (1) |
+
+
Alert counts by alert type
+Alert type | +Risk | +Count | +
---|---|---|
Cloud Metadata Potentially Exposed | +High | +1 (100.0%) |
+
Total | ++ | 1 | +
Alerts
+-
+
+
+
+
+
+
+
+
+
-
+
+ Risk=High, Confidence=Low (1) +
+-
+
+
-
+
+ http://localhost:3000 (1) +
+-
+
+
-
+
+ Cloud Metadata Potentially Exposed (1) +
+-
+
- +
+ GET http://localhost:3000/latest/meta-data/ +
+ ++
+ ++ +Alert tags ++ + ++ +Alert description ++ +The Cloud Metadata Attack attempts to abuse a misconfigured NGINX server in order to access the instance metadata maintained by cloud service providers such as AWS, GCP and Azure.
+ +All of these providers provide metadata via an internal unroutable IP address '169.254.169.254' - this can be exposed by incorrectly configured NGINX servers and accessed by using this IP address in the Host header field.
++ +Other info ++ +Based on the successful response status code cloud metadata may have been returned in the response. Check the response data to see if any cloud metadata has been returned.
+ +The meta data returned can include information that would allow an attacker to completely compromise the system.
++ +Request + ++Request line and header section (216 bytes)
+ +
+ + +GET http://localhost:3000/latest/meta-data/ HTTP/1.1 +host: 169.254.169.254 +user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0 +pragma: no-cache +cache-control: no-cache + +
+Request body (0 bytes)
+ +
+ + ++ + +Response + ++Status line and header section (466 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, 31 Oct 2024 14:59:54 GMT +ETag: W/"7bc-192e3171820" +Content-Type: text/html; charset=UTF-8 +Content-Length: 1980 +Vary: Accept-Encoding +Date: Thu, 31 Oct 2024 16:53:28 GMT +Connection: keep-alive +Keep-Alive: timeout=5 + +
+Response body (1980 bytes)
+ +
+ + +<!-- + ~ Copyright (c) 2014-2022 Bjoern Kimminich & the OWASP Juice Shop contributors. + ~ SPDX-License-Identifier: MIT + --><!DOCTYPE html><html lang="en"><head> + <meta charset="utf-8"> + <title>Guardian Store</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 id="favicon" rel="icon" type="image/x-icon" href="assets/public/favicon_js.ico"> + <link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.css"> + <script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> + <script> + window.addEventListener("load", function(){ + window.cookieconsent.initialise({ + "palette": { + "popup": { "background": "#546e7a", "text": "#ffffff" }, + "button": { "background": "#558b2f", "text": "#ffffff" } + }, + "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-app-background{background-color:#303030;color:#fff}@charset "UTF-8";@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="mat-app-background blue-lightblue-theme"> + <app-root></app-root> +<script src="runtime.js" type="module"></script><script src="polyfills.js" type="module"></script><script src="vendor.js" type="module"></script><script src="main.js" type="module"></script> + +</body></html>
+ + +Attack + +169.254.169.254
+ +Solution ++ +Do not trust any user data in NGINX configs. In this case it is probably the use of the $host variable which is set from the 'Host' header and can be controlled by an attacker.
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
Appendix
+ +Alert types
+This section contains additional information on the types of alerts in the report.
+-
+
-
+
Cloud Metadata Potentially Exposed
++
++ + + +Source ++ + raised by an active scanner (Cloud Metadata Potentially Exposed) + + ++ +Reference ++ + +
+