2920 lines
143 KiB
HTML
2920 lines
143 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>ZAP by Checkmarx Scanning Report</title>
|
||
<link
|
||
href="Default%5EPolicy/normalize/normalize.css" rel="stylesheet">
|
||
<link
|
||
href="Default%5EPolicy/themes/original/main.css" rel="stylesheet">
|
||
<link
|
||
href="Default%5EPolicy/themes/original/colors.css" rel="stylesheet">
|
||
</head>
|
||
<body>
|
||
<header>
|
||
<h1>ZAP by Checkmarx Scanning Report</h1>
|
||
<p>
|
||
<span>Generated with</span> <a href="https://zaproxy.org"><img
|
||
src="Default%5EPolicy/zap32x32.png" alt="The ZAP logo" class="zap-logo">ZAP</a>
|
||
<span>on Thu 28 May 2026, at 06:58:33</span>
|
||
</p>
|
||
<p>ZAP Version: 2.17.0</p>
|
||
<p>
|
||
ZAP by <a href="https://checkmarx.com/">Checkmarx</a>
|
||
</p>
|
||
</header>
|
||
|
||
<main>
|
||
|
||
<section id="contents" class="contents">
|
||
<h2>Contents</h2>
|
||
<nav>
|
||
<ol>
|
||
<li><a
|
||
href="#about-this-report">About This Report</a>
|
||
<ol>
|
||
|
||
<li><a
|
||
href="#report-parameters">Report Parameters</a></li>
|
||
</ol></li>
|
||
<data-th-block>
|
||
<li><a
|
||
href="#summaries">Summaries</a>
|
||
<ol>
|
||
<li><a
|
||
href="#risk-confidence-counts">Alert Counts by Risk and Confidence</a></li>
|
||
<li><a
|
||
href="#site-risk-counts">Alert Counts by Site and Risk</a></li>
|
||
<li><a
|
||
href="#alert-type-counts">Alert Counts by Alert Type</a></li>
|
||
<li><a
|
||
href="#insights">Insights</a></li>
|
||
</ol></li>
|
||
<li><a
|
||
href="#alerts">Alerts</a>
|
||
<ol>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li><a
|
||
href="#alerts--risk-3-confidence-1"><span>Risk</span>=<span
|
||
class="risk-level">High</span>, <span>Confidence</span>=<span
|
||
class="confidence-level">Low</span> <span>(1)</span></a></li>
|
||
|
||
|
||
|
||
|
||
|
||
<li><a
|
||
href="#alerts--risk-2-confidence-3"><span>Risk</span>=<span
|
||
class="risk-level">Medium</span>, <span>Confidence</span>=<span
|
||
class="confidence-level">High</span> <span>(2)</span></a></li>
|
||
|
||
<li><a
|
||
href="#alerts--risk-2-confidence-2"><span>Risk</span>=<span
|
||
class="risk-level">Medium</span>, <span>Confidence</span>=<span
|
||
class="confidence-level">Medium</span> <span>(2)</span></a></li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li><a
|
||
href="#alerts--risk-1-confidence-2"><span>Risk</span>=<span
|
||
class="risk-level">Low</span>, <span>Confidence</span>=<span
|
||
class="confidence-level">Medium</span> <span>(2)</span></a></li>
|
||
|
||
<li><a
|
||
href="#alerts--risk-1-confidence-1"><span>Risk</span>=<span
|
||
class="risk-level">Low</span>, <span>Confidence</span>=<span
|
||
class="confidence-level">Low</span> <span>(1)</span></a></li>
|
||
|
||
|
||
|
||
|
||
|
||
<li><a
|
||
href="#alerts--risk-0-confidence-3"><span>Risk</span>=<span
|
||
class="risk-level">Informational</span>, <span>Confidence</span>=<span
|
||
class="confidence-level">High</span> <span>(1)</span></a></li>
|
||
|
||
<li><a
|
||
href="#alerts--risk-0-confidence-2"><span>Risk</span>=<span
|
||
class="risk-level">Informational</span>, <span>Confidence</span>=<span
|
||
class="confidence-level">Medium</span> <span>(2)</span></a></li>
|
||
|
||
|
||
|
||
</ol></li>
|
||
<li><a
|
||
href="#appendix">Appendix</a>
|
||
<ol>
|
||
<li><a
|
||
href="#alert-types">Alert Types</a></li>
|
||
</ol></li>
|
||
</data-th-block>
|
||
</ol>
|
||
</nav>
|
||
</section>
|
||
|
||
<section
|
||
id="about-this-report" class="about-this-report">
|
||
<h2>About This Report</h2>
|
||
|
||
|
||
|
||
<section
|
||
id="report-parameters">
|
||
<h3>Report Parameters</h3>
|
||
<div class="report-parameters--container">
|
||
<h4>Contexts</h4>
|
||
|
||
|
||
<p>No contexts were selected, so all contexts were included by default.</p>
|
||
|
||
|
||
<h4>Sites</h4>
|
||
|
||
<p>The following sites were included:</p>
|
||
<ul class="sites-list">
|
||
<li><span class="site">http://20.60.0.1:3000</span></li>
|
||
</ul>
|
||
|
||
<p>(If no sites were selected, all sites were included by default.)</p>
|
||
<p>An included site must also be within one of the included contexts for its data to be included in the report.</p>
|
||
|
||
<h4>Risk levels</h4>
|
||
<p>
|
||
<span>Included</span>:
|
||
|
||
<span class="included-risk-codes"><span class="risk-level">High</span>, <span class="risk-level">Medium</span>, <span class="risk-level">Low</span>, <span class="risk-level">Informational</span></span>
|
||
</p>
|
||
<p>
|
||
<span>Excluded</span>:
|
||
<span>None</span>
|
||
|
||
</p>
|
||
|
||
<h4>Confidence levels</h4>
|
||
<p>
|
||
<span>Included</span>:
|
||
|
||
|
||
<span class="included-confidence-codes"><span class="confidence-level">User Confirmed</span>, <span class="confidence-level">High</span>, <span class="confidence-level">Medium</span>, <span class="confidence-level">Low</span></span>
|
||
</p>
|
||
<p>
|
||
<span>Excluded</span>:
|
||
|
||
|
||
<span class="included-confidence-codes"> <span class="confidence-level">User Confirmed</span>, <span class="confidence-level">High</span>, <span class="confidence-level">Medium</span>, <span class="confidence-level">Low</span>, <span class="confidence-level">False Positive</span></span>
|
||
</p>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
<section>
|
||
|
||
</section>
|
||
|
||
<section id="summaries" class="summaries">
|
||
<h2>Summaries</h2>
|
||
|
||
<section
|
||
id="risk-confidence-counts">
|
||
<h3>Alert Counts by Risk and Confidence</h3>
|
||
<table class="risk-confidence-counts-table">
|
||
<caption>
|
||
<p>This table shows the number of alerts for each level of risk and confidence included in the report.</p>
|
||
<p>(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.)</p>
|
||
</caption>
|
||
<colgroup>
|
||
<col>
|
||
<col>
|
||
</colgroup>
|
||
<colgroup>
|
||
<col
|
||
style="width: 14.0%"><col
|
||
style="width: 14.0%"><col
|
||
style="width: 14.0%"><col
|
||
style="width: 14.0%">
|
||
<col style="width: 14.0%">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<td colspan="2" rowspan="2"></td>
|
||
<th scope="colgroup"
|
||
colspan="5">Confidence</th>
|
||
</tr>
|
||
<tr>
|
||
<th scope="col">User Confirmed</th>
|
||
<th scope="col">High</th>
|
||
<th scope="col">Medium</th>
|
||
<th scope="col">Low</th>
|
||
<th scope="col">Total</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<th scope="rowgroup"
|
||
rowspan="5">Risk</th>
|
||
<th scope="row">High</th>
|
||
<td><span>0</span><br> <span
|
||
class="additional-info-percentages">(0.0%)</span></td>
|
||
<td><span>0</span><br> <span
|
||
class="additional-info-percentages">(0.0%)</span></td>
|
||
<td><span>0</span><br> <span
|
||
class="additional-info-percentages">(0.0%)</span></td>
|
||
<td><span>1</span><br> <span
|
||
class="additional-info-percentages">(9.1%)</span></td>
|
||
<td><span>1</span><br> <span class="additional-info-percentages">(9.1%)</span></td>
|
||
</tr>
|
||
<tr>
|
||
|
||
<th scope="row">Medium</th>
|
||
<td><span>0</span><br> <span
|
||
class="additional-info-percentages">(0.0%)</span></td>
|
||
<td><span>2</span><br> <span
|
||
class="additional-info-percentages">(18.2%)</span></td>
|
||
<td><span>2</span><br> <span
|
||
class="additional-info-percentages">(18.2%)</span></td>
|
||
<td><span>0</span><br> <span
|
||
class="additional-info-percentages">(0.0%)</span></td>
|
||
<td><span>4</span><br> <span class="additional-info-percentages">(36.4%)</span></td>
|
||
</tr>
|
||
<tr>
|
||
|
||
<th scope="row">Low</th>
|
||
<td><span>0</span><br> <span
|
||
class="additional-info-percentages">(0.0%)</span></td>
|
||
<td><span>0</span><br> <span
|
||
class="additional-info-percentages">(0.0%)</span></td>
|
||
<td><span>2</span><br> <span
|
||
class="additional-info-percentages">(18.2%)</span></td>
|
||
<td><span>1</span><br> <span
|
||
class="additional-info-percentages">(9.1%)</span></td>
|
||
<td><span>3</span><br> <span class="additional-info-percentages">(27.3%)</span></td>
|
||
</tr>
|
||
<tr>
|
||
|
||
<th scope="row">Informational</th>
|
||
<td><span>0</span><br> <span
|
||
class="additional-info-percentages">(0.0%)</span></td>
|
||
<td><span>1</span><br> <span
|
||
class="additional-info-percentages">(9.1%)</span></td>
|
||
<td><span>2</span><br> <span
|
||
class="additional-info-percentages">(18.2%)</span></td>
|
||
<td><span>0</span><br> <span
|
||
class="additional-info-percentages">(0.0%)</span></td>
|
||
<td><span>3</span><br> <span class="additional-info-percentages">(27.3%)</span></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Total</th>
|
||
<td><span>0</span><br> <span
|
||
class="additional-info-percentages">(0.0%)</span></td>
|
||
<td><span>3</span><br> <span
|
||
class="additional-info-percentages">(27.3%)</span></td>
|
||
<td><span>6</span><br> <span
|
||
class="additional-info-percentages">(54.5%)</span></td>
|
||
<td><span>2</span><br> <span
|
||
class="additional-info-percentages">(18.2%)</span></td>
|
||
<td><span>11</span><br> <span
|
||
class="additional-info-percentages">(100%)</span></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
|
||
<section
|
||
id="site-risk-counts">
|
||
<h3>Alert Counts by Site and Risk</h3>
|
||
<table class="site-risk-counts-table">
|
||
<caption>
|
||
<p>This table shows, for each site for which one or more alerts were raised, the number of alerts raised at each risk level.</p>
|
||
<p>Alerts with a confidence level of "False Positive" have been excluded from these counts.</p>
|
||
<p>(The numbers in brackets are the number of alerts raised for the site at or above that risk level.)</p>
|
||
</caption>
|
||
<colgroup>
|
||
<col>
|
||
<col>
|
||
</colgroup>
|
||
<colgroup>
|
||
<col
|
||
style="width: 16.25%"><col
|
||
style="width: 16.25%"><col
|
||
style="width: 16.25%"><col
|
||
style="width: 16.25%">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<td colspan="2" rowspan="2"></td>
|
||
<th scope="colgroup" colspan="4">Risk</th>
|
||
</tr>
|
||
<tr>
|
||
<th scope="col">
|
||
<span>High</span><br> <span
|
||
class="additional-info-percentages">(= High)</span>
|
||
</th>
|
||
<th scope="col">
|
||
<span>Medium</span><br> <span
|
||
class="additional-info-percentages">(>= Medium)</span>
|
||
</th>
|
||
<th scope="col">
|
||
<span>Low</span><br> <span
|
||
class="additional-info-percentages">(>= Low)</span>
|
||
</th>
|
||
<th scope="col">
|
||
<span>Informational</span><br> <span
|
||
class="additional-info-percentages">(>= Informational)</span>
|
||
</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<th scope="rowgroup"
|
||
rowspan="1">Site</th>
|
||
<th scope="row">http://20.60.0.1:3000</th>
|
||
|
||
<td><span>1</span><br> <span
|
||
class="additional-info-percentages">(1)</span></td>
|
||
<td><span>4</span><br> <span
|
||
class="additional-info-percentages">(5)</span></td>
|
||
<td><span>3</span><br> <span
|
||
class="additional-info-percentages">(8)</span></td>
|
||
<td><span>3</span><br> <span
|
||
class="additional-info-percentages">(11)</span></td>
|
||
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
|
||
<section
|
||
id="alert-type-counts">
|
||
<h3>Alert Counts by Alert Type</h3>
|
||
<table class="alert-type-counts-table">
|
||
<caption>
|
||
<p>This table shows the number of alerts of each alert type, together with the alert type's risk level.</p>
|
||
<p>(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.)</p>
|
||
</caption>
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Alert type</th>
|
||
<th scope="col">Risk</th>
|
||
<th scope="col">Count</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<th scope="row"><a
|
||
href="#alert-type-0">SQL Injection</a></th>
|
||
<td class="risk-level">High</td>
|
||
<td><span>1</span><br> <span
|
||
class="additional-info-percentages">(9.1%)</span></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row"><a
|
||
href="#alert-type-1">Content Security Policy (CSP) Header Not Set</a></th>
|
||
<td class="risk-level">Medium</td>
|
||
<td><span>5</span><br> <span
|
||
class="additional-info-percentages">(45.5%)</span></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row"><a
|
||
href="#alert-type-2">Cross-Domain Misconfiguration</a></th>
|
||
<td class="risk-level">Medium</td>
|
||
<td><span>5</span><br> <span
|
||
class="additional-info-percentages">(45.5%)</span></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row"><a
|
||
href="#alert-type-3">Missing Anti-clickjacking Header</a></th>
|
||
<td class="risk-level">Medium</td>
|
||
<td><span>3</span><br> <span
|
||
class="additional-info-percentages">(27.3%)</span></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row"><a
|
||
href="#alert-type-4">Session ID in URL Rewrite</a></th>
|
||
<td class="risk-level">Medium</td>
|
||
<td><span>5</span><br> <span
|
||
class="additional-info-percentages">(45.5%)</span></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row"><a
|
||
href="#alert-type-5">Private IP Disclosure</a></th>
|
||
<td class="risk-level">Low</td>
|
||
<td><span>1</span><br> <span
|
||
class="additional-info-percentages">(9.1%)</span></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row"><a
|
||
href="#alert-type-6">Timestamp Disclosure - Unix</a></th>
|
||
<td class="risk-level">Low</td>
|
||
<td><span>5</span><br> <span
|
||
class="additional-info-percentages">(45.5%)</span></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row"><a
|
||
href="#alert-type-7">X-Content-Type-Options Header Missing</a></th>
|
||
<td class="risk-level">Low</td>
|
||
<td><span>5</span><br> <span
|
||
class="additional-info-percentages">(45.5%)</span></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row"><a
|
||
href="#alert-type-8">Modern Web Application</a></th>
|
||
<td class="risk-level">Informational</td>
|
||
<td><span>5</span><br> <span
|
||
class="additional-info-percentages">(45.5%)</span></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row"><a
|
||
href="#alert-type-9">Session Management Response Identified</a></th>
|
||
<td class="risk-level">Informational</td>
|
||
<td><span>1</span><br> <span
|
||
class="additional-info-percentages">(9.1%)</span></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row"><a
|
||
href="#alert-type-10">User Agent Fuzzer</a></th>
|
||
<td class="risk-level">Informational</td>
|
||
<td><span>5</span><br> <span
|
||
class="additional-info-percentages">(45.5%)</span></td>
|
||
</tr>
|
||
</tbody>
|
||
<tfoot>
|
||
<tr>
|
||
<th scope="row">Total</th>
|
||
<td></td>
|
||
<td>11</td>
|
||
</tr>
|
||
</tfoot>
|
||
</table>
|
||
</section>
|
||
|
||
<section
|
||
id="insights">
|
||
<h3 class="left-header">Insights</h3>
|
||
<table class="insights-table">
|
||
<caption>
|
||
<p>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.</p>
|
||
</caption>
|
||
<thead>
|
||
<tr>
|
||
<th scope="col">Level</th>
|
||
<th scope="col">Reason</th>
|
||
<th scope="col">Site</th>
|
||
<th scope="col">Description</th>
|
||
<th scope="col">Statistic</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
<tr>
|
||
<td class="risk-2">
|
||
<div>Medium</div>
|
||
</td>
|
||
<td>
|
||
<div>Exceeded Low</div>
|
||
</td>
|
||
<td>
|
||
<div></div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of memory used</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>80 </div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-1">
|
||
<div>Low</div>
|
||
</td>
|
||
<td>
|
||
<div>Warning</div>
|
||
</td>
|
||
<td>
|
||
<div></div>
|
||
</td>
|
||
<td>
|
||
<div>ZAP errors logged - see the zap.log file for details</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>380 </div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-1">
|
||
<div>Low</div>
|
||
</td>
|
||
<td>
|
||
<div>Warning</div>
|
||
</td>
|
||
<td>
|
||
<div></div>
|
||
</td>
|
||
<td>
|
||
<div>ZAP warnings logged - see the zap.log file for details</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>122 </div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-1">
|
||
<div>Low</div>
|
||
</td>
|
||
<td>
|
||
<div>Exceeded Low</div>
|
||
</td>
|
||
<td>
|
||
<div></div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of network failures</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>5 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-1">
|
||
<div>Low</div>
|
||
</td>
|
||
<td>
|
||
<div>Exceeded High</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of responses with status code 4xx</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>50 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-1">
|
||
<div>Low</div>
|
||
</td>
|
||
<td>
|
||
<div>Exceeded High</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of slow responses</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>51 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of responses with status code 1xx</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>1 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of responses with status code 2xx</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>46 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of responses with status code 3xx</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>3 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of responses with status code 5xx</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>2 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of endpoints with content type application/javascript</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>9 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of endpoints with content type application/json</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>5 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of endpoints with content type application/octet-stream</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>2 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of endpoints with content type image/jpeg</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>6 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of endpoints with content type image/png</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>3 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of endpoints with content type image/x-icon</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>1 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of endpoints with content type text/css</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>1 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of endpoints with content type text/html</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>65 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of endpoints with content type text/markdown</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>1 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of endpoints with content type text/plain</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>1 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of endpoints with method GET</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>97 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Percentage of endpoints with method POST</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>2 %</div>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="risk-0">
|
||
<div>Info</div>
|
||
</td>
|
||
<td>
|
||
<div>Informational</div>
|
||
</td>
|
||
<td>
|
||
<div>http://20.60.0.1:3000</div>
|
||
</td>
|
||
<td>
|
||
<div>Count of total endpoints</div>
|
||
</td>
|
||
<td align="center">
|
||
<div>173 </div>
|
||
</td>
|
||
</tr>
|
||
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
</section>
|
||
|
||
<section id="alerts" class="alerts">
|
||
<h2>Alerts</h2>
|
||
<ol>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li id="alerts--risk-3-confidence-1">
|
||
<h3>
|
||
<span>Risk</span>=<span
|
||
class="risk-level">High</span>, <span>Confidence</span>=<span
|
||
class="confidence-level">Low</span> <span>(1)</span>
|
||
</h3>
|
||
<ol>
|
||
|
||
<li class="alerts--site-li">
|
||
<h4>
|
||
<span class="site">http://20.60.0.1:3000</span> <span>(1)</span>
|
||
</h4>
|
||
<ol>
|
||
|
||
<li>
|
||
<h5>
|
||
<a
|
||
href="#alert-type-0">SQL Injection</a> <span>(1)</span>
|
||
</h5>
|
||
<ol>
|
||
<li><details>
|
||
<summary>
|
||
<span class="request-method-n-url">GET http://20.60.0.1:3000/rest/products/search?q=%27%28</span>
|
||
</summary>
|
||
|
||
<table class="alerts-table">
|
||
<tr>
|
||
<th scope="row">Alert tags</th>
|
||
<td>
|
||
<ul class="alert-tags-list">
|
||
<li>
|
||
<span>POLICY_SEQUENCE = </span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/A03_2021-Injection/">OWASP_2021_A03</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://www.zaproxy.org/docs/desktop/addons/common-library/alerttags/#compliance">PCI_DSS</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://cwe.mitre.org/data/definitions/89.html">CWE-89</a></span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_QA_CICD = </span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_DEV_CICD = </span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/2025/A05_2025-Injection/">OWASP_2025_A05</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/07-Input_Validation_Testing/05-Testing_for_SQL_Injection">WSTG-v42-INPV-05</a></span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_API = </span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_DEV_FULL = </span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_QA_STD = </span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_QA_FULL = </span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_PENTEST = </span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://www.zaproxy.org/docs/desktop/addons/common-library/alerttags/#compliance">HIPAA</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/www-project-top-ten/2017/A1_2017-Injection.html">OWASP_2017_A01</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/API-Security/editions/2023/en/0xaa-unsafe-consumption-of-apis/">API_2023_API10</a></span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_DEV_STD = </span>
|
||
</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Alert description</th>
|
||
<td>
|
||
<p>SQL injection may be possible.</p>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Request</th>
|
||
<td><details open="open">
|
||
<summary>Request line and header section (307 bytes)</summary>
|
||
|
||
<pre><code>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/
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="request-body" open="open">
|
||
<summary>Request body (0 bytes)</summary>
|
||
|
||
<pre><code></code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Response</th>
|
||
<td><details open="open">
|
||
<summary>Status line and header section (362 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="response-body" open="open">
|
||
<summary>Response body (309 bytes)</summary>
|
||
|
||
<pre><code>{
|
||
"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"
|
||
}
|
||
}</code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Parameter</th>
|
||
<td><pre><code>q</code></pre></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Attack</th>
|
||
<td><pre><code>'(</code></pre></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Evidence</th>
|
||
<td><pre><code>HTTP/1.1 500 Internal Server Error</code></pre></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Solution</th>
|
||
<td>
|
||
<p>Do not trust client side input, even if there is client side validation in place.</p>
|
||
|
||
<p>In general, type check all data on the server side.</p>
|
||
|
||
<p>If the application uses JDBC, use PreparedStatement or CallableStatement, with parameters passed by '?'</p>
|
||
|
||
<p>If the application uses ASP, use ADO Command Objects with strong type checking and parameterized queries.</p>
|
||
|
||
<p>If database Stored Procedures can be used, use them.</p>
|
||
|
||
<p>Do *not* concatenate strings into queries in the stored procedure, or use 'exec', 'exec immediate', or equivalent functionality!</p>
|
||
|
||
<p>Do not create dynamic SQL queries using simple string concatenation.</p>
|
||
|
||
<p>Escape all data received from the client.</p>
|
||
|
||
<p>Apply an 'allow list' of allowed characters, or a 'deny list' of disallowed characters in user input.</p>
|
||
|
||
<p>Apply the principle of least privilege by using the least privileged database user possible.</p>
|
||
|
||
<p>In particular, avoid using the 'sa' or 'db-owner' database users. This does not eliminate SQL injection, but minimizes its impact.</p>
|
||
|
||
<p>Grant the minimum database access that is necessary for the application.</p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
</details></li>
|
||
</ol>
|
||
</li>
|
||
|
||
</ol>
|
||
</li>
|
||
|
||
</ol>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
<li id="alerts--risk-2-confidence-3">
|
||
<h3>
|
||
<span>Risk</span>=<span
|
||
class="risk-level">Medium</span>, <span>Confidence</span>=<span
|
||
class="confidence-level">High</span> <span>(2)</span>
|
||
</h3>
|
||
<ol>
|
||
|
||
<li class="alerts--site-li">
|
||
<h4>
|
||
<span class="site">http://20.60.0.1:3000</span> <span>(2)</span>
|
||
</h4>
|
||
<ol>
|
||
|
||
<li>
|
||
<h5>
|
||
<a
|
||
href="#alert-type-1">Content Security Policy (CSP) Header Not Set</a> <span>(1)</span>
|
||
</h5>
|
||
<ol>
|
||
<li><details>
|
||
<summary>
|
||
<span class="request-method-n-url">GET http://20.60.0.1:3000</span>
|
||
</summary>
|
||
|
||
<table class="alerts-table">
|
||
<tr>
|
||
<th scope="row">Alert tags</th>
|
||
<td>
|
||
<ul class="alert-tags-list">
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/A05_2021-Security_Misconfiguration/">OWASP_2021_A05</a></span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_QA_STD = </span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_PENTEST = </span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://www.zaproxy.org/docs/desktop/addons/common-library/alerttags/#systemic">SYSTEMIC</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://cwe.mitre.org/data/definitions/693.html">CWE-693</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/www-project-top-ten/2017/A6_2017-Security_Misconfiguration.html">OWASP_2017_A06</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/2025/A02_2025-Security_Misconfiguration/">OWASP_2025_A02</a></span>
|
||
</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Alert description</th>
|
||
<td>
|
||
<p>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.</p>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Request</th>
|
||
<td><details open="open">
|
||
<summary>Request line and header section (228 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="request-body" open="open">
|
||
<summary>Request body (0 bytes)</summary>
|
||
|
||
<pre><code></code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Response</th>
|
||
<td><details open="open">
|
||
<summary>Status line and header section (467 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="response-body">
|
||
<summary>Response body (9903 bytes)</summary>
|
||
|
||
<pre><code><!--
|
||
~ 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>
|
||
</code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
|
||
|
||
|
||
<tr>
|
||
<th scope="row">Solution</th>
|
||
<td>
|
||
<p>Ensure that your web server, application server, load balancer, etc. is configured to set the Content-Security-Policy header.</p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
</details></li>
|
||
</ol>
|
||
</li>
|
||
|
||
<li>
|
||
<h5>
|
||
<a
|
||
href="#alert-type-4">Session ID in URL Rewrite</a> <span>(1)</span>
|
||
</h5>
|
||
<ol>
|
||
<li><details>
|
||
<summary>
|
||
<span class="request-method-n-url">GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvk6yvM&sid=pd0V5LZ93y-FQn8oAAAA</span>
|
||
</summary>
|
||
|
||
<table class="alerts-table">
|
||
<tr>
|
||
<th scope="row">Alert tags</th>
|
||
<td>
|
||
<ul class="alert-tags-list">
|
||
<li>
|
||
<span><a href="https://cwe.mitre.org/data/definitions/598.html">CWE-598</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/A01_2021-Broken_Access_Control/">OWASP_2021_A01</a></span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_QA_STD = </span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_PENTEST = </span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://www.zaproxy.org/docs/desktop/addons/common-library/alerttags/#systemic">SYSTEMIC</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/06-Session_Management_Testing/04-Testing_for_Exposed_Session_Variables">WSTG-v42-SESS-04</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/www-project-top-ten/2017/A3_2017-Sensitive_Data_Exposure.html">OWASP_2017_A03</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/2025/A01_2025-Broken_Access_Control/">OWASP_2025_A01</a></span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_DEV_STD = </span>
|
||
</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Alert description</th>
|
||
<td>
|
||
<p>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.</p>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Request</th>
|
||
<td><details open="open">
|
||
<summary>Request line and header section (317 bytes)</summary>
|
||
|
||
<pre><code>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/
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="request-body" open="open">
|
||
<summary>Request body (0 bytes)</summary>
|
||
|
||
<pre><code></code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Response</th>
|
||
<td><details open="open">
|
||
<summary>Status line and header section (231 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="response-body" open="open">
|
||
<summary>Response body (612 bytes)</summary>
|
||
|
||
<pre><code>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}]</code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Parameter</th>
|
||
<td><pre><code>sid</code></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Evidence</th>
|
||
<td><pre><code>pd0V5LZ93y-FQn8oAAAA</code></pre></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Solution</th>
|
||
<td>
|
||
<p>For secure content, put session ID in a cookie. To be even more secure consider using a combination of cookie and URL rewrite.</p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
</details></li>
|
||
</ol>
|
||
</li>
|
||
|
||
</ol>
|
||
</li>
|
||
|
||
</ol>
|
||
</li>
|
||
|
||
<li id="alerts--risk-2-confidence-2">
|
||
<h3>
|
||
<span>Risk</span>=<span
|
||
class="risk-level">Medium</span>, <span>Confidence</span>=<span
|
||
class="confidence-level">Medium</span> <span>(2)</span>
|
||
</h3>
|
||
<ol>
|
||
|
||
<li class="alerts--site-li">
|
||
<h4>
|
||
<span class="site">http://20.60.0.1:3000</span> <span>(2)</span>
|
||
</h4>
|
||
<ol>
|
||
|
||
<li>
|
||
<h5>
|
||
<a
|
||
href="#alert-type-2">Cross-Domain Misconfiguration</a> <span>(1)</span>
|
||
</h5>
|
||
<ol>
|
||
<li><details>
|
||
<summary>
|
||
<span class="request-method-n-url">GET http://20.60.0.1:3000/robots.txt</span>
|
||
</summary>
|
||
|
||
<table class="alerts-table">
|
||
<tr>
|
||
<th scope="row">Alert tags</th>
|
||
<td>
|
||
<ul class="alert-tags-list">
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/A01_2021-Broken_Access_Control/">OWASP_2021_A01</a></span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_QA_STD = </span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_PENTEST = </span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://www.zaproxy.org/docs/desktop/addons/common-library/alerttags/#systemic">SYSTEMIC</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/2025/A01_2025-Broken_Access_Control/">OWASP_2025_A01</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/www-project-top-ten/2017/A5_2017-Broken_Access_Control.html">OWASP_2017_A05</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://cwe.mitre.org/data/definitions/264.html">CWE-264</a></span>
|
||
</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Alert description</th>
|
||
<td>
|
||
<p>Web browser data loading may be possible, due to a Cross Origin Resource Sharing (CORS) misconfiguration on the web server.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Other info</th>
|
||
<td>
|
||
<p>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.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Request</th>
|
||
<td><details open="open">
|
||
<summary>Request line and header section (239 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="request-body" open="open">
|
||
<summary>Request body (0 bytes)</summary>
|
||
|
||
<pre><code></code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Response</th>
|
||
<td><details open="open">
|
||
<summary>Status line and header section (378 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="response-body" open="open">
|
||
<summary>Response body (28 bytes)</summary>
|
||
|
||
<pre><code>User-agent: *
|
||
Disallow: /ftp</code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
|
||
|
||
<tr>
|
||
<th scope="row">Evidence</th>
|
||
<td><pre><code>Access-Control-Allow-Origin: *</code></pre></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Solution</th>
|
||
<td>
|
||
<p>Ensure that sensitive data is not available in an unauthenticated manner (using IP address white-listing, for instance).</p>
|
||
|
||
<p>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.</p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
</details></li>
|
||
</ol>
|
||
</li>
|
||
|
||
<li>
|
||
<h5>
|
||
<a
|
||
href="#alert-type-3">Missing Anti-clickjacking Header</a> <span>(1)</span>
|
||
</h5>
|
||
<ol>
|
||
<li><details>
|
||
<summary>
|
||
<span class="request-method-n-url">POST http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvk6yux&sid=pd0V5LZ93y-FQn8oAAAA</span>
|
||
</summary>
|
||
|
||
<table class="alerts-table">
|
||
<tr>
|
||
<th scope="row">Alert tags</th>
|
||
<td>
|
||
<ul class="alert-tags-list">
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/A05_2021-Security_Misconfiguration/">OWASP_2021_A05</a></span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_QA_STD = </span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_PENTEST = </span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://cwe.mitre.org/data/definitions/1021.html">CWE-1021</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://www.zaproxy.org/docs/desktop/addons/common-library/alerttags/#systemic">SYSTEMIC</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/11-Client-side_Testing/09-Testing_for_Clickjacking">WSTG-v42-CLNT-09</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/www-project-top-ten/2017/A6_2017-Security_Misconfiguration.html">OWASP_2017_A06</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/2025/A02_2025-Security_Misconfiguration/">OWASP_2025_A02</a></span>
|
||
</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Alert description</th>
|
||
<td>
|
||
<p>The response does not protect against 'ClickJacking' attacks. It should include either Content-Security-Policy with 'frame-ancestors' directive or X-Frame-Options.</p>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Request</th>
|
||
<td><details open="open">
|
||
<summary>Request line and header section (408 bytes)</summary>
|
||
|
||
<pre><code>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/
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="request-body" open="open">
|
||
<summary>Request body (2 bytes)</summary>
|
||
|
||
<pre><code>40</code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Response</th>
|
||
<td><details open="open">
|
||
<summary>Status line and header section (213 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="response-body" open="open">
|
||
<summary>Response body (2 bytes)</summary>
|
||
|
||
<pre><code>ok</code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Parameter</th>
|
||
<td><pre><code>x-frame-options</code></pre></td>
|
||
</tr>
|
||
|
||
|
||
<tr>
|
||
<th scope="row">Solution</th>
|
||
<td>
|
||
<p>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.</p>
|
||
|
||
<p>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.</p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
</details></li>
|
||
</ol>
|
||
</li>
|
||
|
||
</ol>
|
||
</li>
|
||
|
||
</ol>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li id="alerts--risk-1-confidence-2">
|
||
<h3>
|
||
<span>Risk</span>=<span
|
||
class="risk-level">Low</span>, <span>Confidence</span>=<span
|
||
class="confidence-level">Medium</span> <span>(2)</span>
|
||
</h3>
|
||
<ol>
|
||
|
||
<li class="alerts--site-li">
|
||
<h4>
|
||
<span class="site">http://20.60.0.1:3000</span> <span>(2)</span>
|
||
</h4>
|
||
<ol>
|
||
|
||
<li>
|
||
<h5>
|
||
<a
|
||
href="#alert-type-5">Private IP Disclosure</a> <span>(1)</span>
|
||
</h5>
|
||
<ol>
|
||
<li><details>
|
||
<summary>
|
||
<span class="request-method-n-url">GET http://20.60.0.1:3000/rest/admin/application-configuration</span>
|
||
</summary>
|
||
|
||
<table class="alerts-table">
|
||
<tr>
|
||
<th scope="row">Alert tags</th>
|
||
<td>
|
||
<ul class="alert-tags-list">
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/A01_2021-Broken_Access_Control/">OWASP_2021_A01</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/www-project-top-ten/2017/A3_2017-Sensitive_Data_Exposure.html">OWASP_2017_A03</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/2025/A01_2025-Broken_Access_Control/">OWASP_2025_A01</a></span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_QA_STD = </span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_PENTEST = </span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://cwe.mitre.org/data/definitions/497.html">CWE-497</a></span>
|
||
</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Alert description</th>
|
||
<td>
|
||
<p>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.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Other info</th>
|
||
<td>
|
||
<p>192.168.99.100:3000</p>
|
||
|
||
<p>192.168.99.100:4200</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Request</th>
|
||
<td><details open="open">
|
||
<summary>Request line and header section (314 bytes)</summary>
|
||
|
||
<pre><code>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/
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="request-body" open="open">
|
||
<summary>Request body (0 bytes)</summary>
|
||
|
||
<pre><code></code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Response</th>
|
||
<td><details open="open">
|
||
<summary>Status line and header section (389 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="response-body">
|
||
<summary>Response body (23513 bytes)</summary>
|
||
|
||
<pre><code>{"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}}}}</code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
|
||
|
||
<tr>
|
||
<th scope="row">Evidence</th>
|
||
<td><pre><code>192.168.99.100:3000</code></pre></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Solution</th>
|
||
<td>
|
||
<p>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.</p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
</details></li>
|
||
</ol>
|
||
</li>
|
||
|
||
<li>
|
||
<h5>
|
||
<a
|
||
href="#alert-type-7">X-Content-Type-Options Header Missing</a> <span>(1)</span>
|
||
</h5>
|
||
<ol>
|
||
<li><details>
|
||
<summary>
|
||
<span class="request-method-n-url">GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvk6yOd</span>
|
||
</summary>
|
||
|
||
<table class="alerts-table">
|
||
<tr>
|
||
<th scope="row">Alert tags</th>
|
||
<td>
|
||
<ul class="alert-tags-list">
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/A05_2021-Security_Misconfiguration/">OWASP_2021_A05</a></span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_QA_STD = </span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_PENTEST = </span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://www.zaproxy.org/docs/desktop/addons/common-library/alerttags/#systemic">SYSTEMIC</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://cwe.mitre.org/data/definitions/693.html">CWE-693</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/www-project-top-ten/2017/A6_2017-Security_Misconfiguration.html">OWASP_2017_A06</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/2025/A02_2025-Security_Misconfiguration/">OWASP_2025_A02</a></span>
|
||
</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Alert description</th>
|
||
<td>
|
||
<p>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.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Other info</th>
|
||
<td>
|
||
<p>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.</p>
|
||
|
||
<p>At "High" threshold this scan rule will not alert on client or server error responses.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Request</th>
|
||
<td><details open="open">
|
||
<summary>Request line and header section (292 bytes)</summary>
|
||
|
||
<pre><code>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/
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="request-body" open="open">
|
||
<summary>Request body (0 bytes)</summary>
|
||
|
||
<pre><code></code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Response</th>
|
||
<td><details open="open">
|
||
<summary>Status line and header section (230 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="response-body" open="open">
|
||
<summary>Response body (96 bytes)</summary>
|
||
|
||
<pre><code>0{"sid":"pd0V5LZ93y-FQn8oAAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}</code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Parameter</th>
|
||
<td><pre><code>x-content-type-options</code></pre></td>
|
||
</tr>
|
||
|
||
|
||
<tr>
|
||
<th scope="row">Solution</th>
|
||
<td>
|
||
<p>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.</p>
|
||
|
||
<p>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.</p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
</details></li>
|
||
</ol>
|
||
</li>
|
||
|
||
</ol>
|
||
</li>
|
||
|
||
</ol>
|
||
</li>
|
||
|
||
<li id="alerts--risk-1-confidence-1">
|
||
<h3>
|
||
<span>Risk</span>=<span
|
||
class="risk-level">Low</span>, <span>Confidence</span>=<span
|
||
class="confidence-level">Low</span> <span>(1)</span>
|
||
</h3>
|
||
<ol>
|
||
|
||
<li class="alerts--site-li">
|
||
<h4>
|
||
<span class="site">http://20.60.0.1:3000</span> <span>(1)</span>
|
||
</h4>
|
||
<ol>
|
||
|
||
<li>
|
||
<h5>
|
||
<a
|
||
href="#alert-type-6">Timestamp Disclosure - Unix</a> <span>(1)</span>
|
||
</h5>
|
||
<ol>
|
||
<li><details>
|
||
<summary>
|
||
<span class="request-method-n-url">GET http://20.60.0.1:3000</span>
|
||
</summary>
|
||
|
||
<table class="alerts-table">
|
||
<tr>
|
||
<th scope="row">Alert tags</th>
|
||
<td>
|
||
<ul class="alert-tags-list">
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/A01_2021-Broken_Access_Control/">OWASP_2021_A01</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/www-project-top-ten/2017/A3_2017-Sensitive_Data_Exposure.html">OWASP_2017_A03</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/2025/A01_2025-Broken_Access_Control/">OWASP_2025_A01</a></span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_PENTEST = </span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://cwe.mitre.org/data/definitions/497.html">CWE-497</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://www.zaproxy.org/docs/desktop/addons/common-library/alerttags/#systemic">SYSTEMIC</a></span>
|
||
</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Alert description</th>
|
||
<td>
|
||
<p>A timestamp was disclosed by the application/web server. - Unix</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Other info</th>
|
||
<td>
|
||
<p>1666666667, which evaluates to: 2022-10-24 22:57:47.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Request</th>
|
||
<td><details open="open">
|
||
<summary>Request line and header section (228 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="request-body" open="open">
|
||
<summary>Request body (0 bytes)</summary>
|
||
|
||
<pre><code></code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Response</th>
|
||
<td><details open="open">
|
||
<summary>Status line and header section (467 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="response-body">
|
||
<summary>Response body (9903 bytes)</summary>
|
||
|
||
<pre><code><!--
|
||
~ 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>
|
||
</code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
|
||
|
||
<tr>
|
||
<th scope="row">Evidence</th>
|
||
<td><pre><code>1666666667</code></pre></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Solution</th>
|
||
<td>
|
||
<p>Manually confirm that the timestamp data is not sensitive, and that the data cannot be aggregated to disclose exploitable patterns.</p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
</details></li>
|
||
</ol>
|
||
</li>
|
||
|
||
</ol>
|
||
</li>
|
||
|
||
</ol>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
<li id="alerts--risk-0-confidence-3">
|
||
<h3>
|
||
<span>Risk</span>=<span
|
||
class="risk-level">Informational</span>, <span>Confidence</span>=<span
|
||
class="confidence-level">High</span> <span>(1)</span>
|
||
</h3>
|
||
<ol>
|
||
|
||
<li class="alerts--site-li">
|
||
<h4>
|
||
<span class="site">http://20.60.0.1:3000</span> <span>(1)</span>
|
||
</h4>
|
||
<ol>
|
||
|
||
<li>
|
||
<h5>
|
||
<a
|
||
href="#alert-type-9">Session Management Response Identified</a> <span>(1)</span>
|
||
</h5>
|
||
<ol>
|
||
<li><details>
|
||
<summary>
|
||
<span class="request-method-n-url">GET http://20.60.0.1:3000/rest/continue-code/</span>
|
||
</summary>
|
||
|
||
<table class="alerts-table">
|
||
<tr>
|
||
<th scope="row">Alert tags</th>
|
||
<td>
|
||
<ul class="alert-tags-list">
|
||
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Alert description</th>
|
||
<td>
|
||
<p>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.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Other info</th>
|
||
<td>
|
||
<p>json:continueCode</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Request</th>
|
||
<td><details open="open">
|
||
<summary>Request line and header section (297 bytes)</summary>
|
||
|
||
<pre><code>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/
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="request-body" open="open">
|
||
<summary>Request body (0 bytes)</summary>
|
||
|
||
<pre><code></code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Response</th>
|
||
<td><details open="open">
|
||
<summary>Status line and header section (384 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="response-body" open="open">
|
||
<summary>Response body (79 bytes)</summary>
|
||
|
||
<pre><code>{"continueCode":"y1OzBZxNpnLrM5WmgEKv8XakQ7DA6LcQGJ6yOlV9Pow1jYqbz2eRB34oE5mM"}</code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Parameter</th>
|
||
<td><pre><code>continueCode</code></pre></td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Evidence</th>
|
||
<td><pre><code>continueCode</code></pre></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Solution</th>
|
||
<td>
|
||
<p>This is an informational alert rather than a vulnerability and so there is nothing to fix.</p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
</details></li>
|
||
</ol>
|
||
</li>
|
||
|
||
</ol>
|
||
</li>
|
||
|
||
</ol>
|
||
</li>
|
||
|
||
<li id="alerts--risk-0-confidence-2">
|
||
<h3>
|
||
<span>Risk</span>=<span
|
||
class="risk-level">Informational</span>, <span>Confidence</span>=<span
|
||
class="confidence-level">Medium</span> <span>(2)</span>
|
||
</h3>
|
||
<ol>
|
||
|
||
<li class="alerts--site-li">
|
||
<h4>
|
||
<span class="site">http://20.60.0.1:3000</span> <span>(2)</span>
|
||
</h4>
|
||
<ol>
|
||
|
||
<li>
|
||
<h5>
|
||
<a
|
||
href="#alert-type-8">Modern Web Application</a> <span>(1)</span>
|
||
</h5>
|
||
<ol>
|
||
<li><details>
|
||
<summary>
|
||
<span class="request-method-n-url">GET http://20.60.0.1:3000</span>
|
||
</summary>
|
||
|
||
<table class="alerts-table">
|
||
<tr>
|
||
<th scope="row">Alert tags</th>
|
||
<td>
|
||
<ul class="alert-tags-list">
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/A05_2021-Security_Misconfiguration/">OWASP_2021_A05</a></span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_QA_STD = </span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_PENTEST = </span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://www.zaproxy.org/docs/desktop/addons/common-library/alerttags/#systemic">SYSTEMIC</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/www-project-top-ten/2017/A6_2017-Security_Misconfiguration.html">OWASP_2017_A06</a></span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://owasp.org/Top10/2025/A02_2025-Security_Misconfiguration/">OWASP_2025_A02</a></span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_DEV_STD = </span>
|
||
</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Alert description</th>
|
||
<td>
|
||
<p>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.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Other info</th>
|
||
<td>
|
||
<p>No links have been found while there are scripts, which is an indication that this is a modern web application.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Request</th>
|
||
<td><details open="open">
|
||
<summary>Request line and header section (228 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="request-body" open="open">
|
||
<summary>Request body (0 bytes)</summary>
|
||
|
||
<pre><code></code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Response</th>
|
||
<td><details open="open">
|
||
<summary>Status line and header section (467 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="response-body">
|
||
<summary>Response body (9903 bytes)</summary>
|
||
|
||
<pre><code><!--
|
||
~ 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>
|
||
</code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
|
||
|
||
<tr>
|
||
<th scope="row">Evidence</th>
|
||
<td><pre><code><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></code></pre></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Solution</th>
|
||
<td>
|
||
<p>This is an informational alert and so no changes are required.</p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
</details></li>
|
||
</ol>
|
||
</li>
|
||
|
||
<li>
|
||
<h5>
|
||
<a
|
||
href="#alert-type-10">User Agent Fuzzer</a> <span>(1)</span>
|
||
</h5>
|
||
<ol>
|
||
<li><details>
|
||
<summary>
|
||
<span class="request-method-n-url">GET http://20.60.0.1:3000/socket.io/?EIO=4&transport=polling&t=Pvk7mTy</span>
|
||
</summary>
|
||
|
||
<table class="alerts-table">
|
||
<tr>
|
||
<th scope="row">Alert tags</th>
|
||
<td>
|
||
<ul class="alert-tags-list">
|
||
<li>
|
||
<span>CUSTOM_PAYLOADS = </span>
|
||
</li>
|
||
<li>
|
||
<span>POLICY_PENTEST = </span>
|
||
</li>
|
||
<li>
|
||
<span><a href="https://www.zaproxy.org/docs/desktop/addons/common-library/alerttags/#systemic">SYSTEMIC</a></span>
|
||
</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Alert description</th>
|
||
<td>
|
||
<p>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.</p>
|
||
</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<th scope="row">Request</th>
|
||
<td><details open="open">
|
||
<summary>Request line and header section (398 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="request-body" open="open">
|
||
<summary>Request body (0 bytes)</summary>
|
||
|
||
<pre><code></code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Response</th>
|
||
<td><details open="open">
|
||
<summary>Status line and header section (230 bytes)</summary>
|
||
|
||
<pre><code>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
|
||
|
||
</code></pre>
|
||
|
||
|
||
</details> <details class="response-body" open="open">
|
||
<summary>Response body (96 bytes)</summary>
|
||
|
||
<pre><code>0{"sid":"Xorp3Pbs1alpY9B3AAGq","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}</code></pre>
|
||
|
||
|
||
</details></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Parameter</th>
|
||
<td><pre><code>Header User-Agent</code></pre></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Attack</th>
|
||
<td><pre><code>Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)</code></pre></td>
|
||
</tr>
|
||
|
||
|
||
</table>
|
||
|
||
</details></li>
|
||
</ol>
|
||
</li>
|
||
|
||
</ol>
|
||
</li>
|
||
|
||
</ol>
|
||
</li>
|
||
|
||
|
||
|
||
</ol>
|
||
</section>
|
||
|
||
<section id="appendix" class="appendix">
|
||
<h2>Appendix</h2>
|
||
|
||
<section id="alert-types" class="alert-types">
|
||
<h3>Alert Types</h3>
|
||
<p class="alert-types-intro">This section contains additional information on the types of alerts in the report.</p>
|
||
<ol>
|
||
<li
|
||
id="alert-type-0">
|
||
<h4>SQL Injection</h4>
|
||
<table class="alert-types-table">
|
||
<tr>
|
||
<th scope="row">Source</th>
|
||
<td>
|
||
|
||
<span>raised by an active scanner</span> <span>(<a
|
||
href="https://www.zaproxy.org/docs/alerts/40018/">SQL Injection</a>)
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">CWE ID</th>
|
||
<td><a
|
||
href="https://cwe.mitre.org/data/definitions/89.html">89</a></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">WASC ID</th>
|
||
<td>19</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Reference</th>
|
||
<td>
|
||
<ol>
|
||
<li><a
|
||
href="https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html">https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html</a></li>
|
||
</ol>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</li>
|
||
<li
|
||
id="alert-type-1">
|
||
<h4>Content Security Policy (CSP) Header Not Set</h4>
|
||
<table class="alert-types-table">
|
||
<tr>
|
||
<th scope="row">Source</th>
|
||
<td>
|
||
|
||
<span>raised by a passive scanner</span> <span>(<a
|
||
href="https://www.zaproxy.org/docs/alerts/10038/">Content Security Policy (CSP) Header Not Set</a>)
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">CWE ID</th>
|
||
<td><a
|
||
href="https://cwe.mitre.org/data/definitions/693.html">693</a></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">WASC ID</th>
|
||
<td>15</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Reference</th>
|
||
<td>
|
||
<ol>
|
||
<li><a
|
||
href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP">https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP</a></li>
|
||
<li><a
|
||
href="https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html">https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html</a></li>
|
||
<li><a
|
||
href="https://www.w3.org/TR/CSP/">https://www.w3.org/TR/CSP/</a></li>
|
||
<li><a
|
||
href="https://w3c.github.io/webappsec-csp/">https://w3c.github.io/webappsec-csp/</a></li>
|
||
<li><a
|
||
href="https://web.dev/articles/csp">https://web.dev/articles/csp</a></li>
|
||
<li><a
|
||
href="https://caniuse.com/#feat=contentsecuritypolicy">https://caniuse.com/#feat=contentsecuritypolicy</a></li>
|
||
<li><a
|
||
href="https://content-security-policy.com/">https://content-security-policy.com/</a></li>
|
||
</ol>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</li>
|
||
<li
|
||
id="alert-type-2">
|
||
<h4>Cross-Domain Misconfiguration</h4>
|
||
<table class="alert-types-table">
|
||
<tr>
|
||
<th scope="row">Source</th>
|
||
<td>
|
||
|
||
<span>raised by a passive scanner</span> <span>(<a
|
||
href="https://www.zaproxy.org/docs/alerts/10098/">Cross-Domain Misconfiguration</a>)
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">CWE ID</th>
|
||
<td><a
|
||
href="https://cwe.mitre.org/data/definitions/264.html">264</a></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">WASC ID</th>
|
||
<td>14</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Reference</th>
|
||
<td>
|
||
<ol>
|
||
<li><a
|
||
href="https://vulncat.fortify.com/en/detail?category=HTML5&subcategory=Overly%20Permissive%20CORS%20Policy">https://vulncat.fortify.com/en/detail?category=HTML5&subcategory=Overly%20Permissive%20CORS%20Policy</a></li>
|
||
</ol>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</li>
|
||
<li
|
||
id="alert-type-3">
|
||
<h4>Missing Anti-clickjacking Header</h4>
|
||
<table class="alert-types-table">
|
||
<tr>
|
||
<th scope="row">Source</th>
|
||
<td>
|
||
|
||
<span>raised by a passive scanner</span> <span>(<a
|
||
href="https://www.zaproxy.org/docs/alerts/10020/">Anti-clickjacking Header</a>)
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">CWE ID</th>
|
||
<td><a
|
||
href="https://cwe.mitre.org/data/definitions/1021.html">1021</a></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">WASC ID</th>
|
||
<td>15</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Reference</th>
|
||
<td>
|
||
<ol>
|
||
<li><a
|
||
href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options">https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options</a></li>
|
||
</ol>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</li>
|
||
<li
|
||
id="alert-type-4">
|
||
<h4>Session ID in URL Rewrite</h4>
|
||
<table class="alert-types-table">
|
||
<tr>
|
||
<th scope="row">Source</th>
|
||
<td>
|
||
|
||
<span>raised by a passive scanner</span> <span>(<a
|
||
href="https://www.zaproxy.org/docs/alerts/3/">Session ID in URL Rewrite</a>)
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">CWE ID</th>
|
||
<td><a
|
||
href="https://cwe.mitre.org/data/definitions/598.html">598</a></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">WASC ID</th>
|
||
<td>13</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Reference</th>
|
||
<td>
|
||
<ol>
|
||
<li><a
|
||
href="https://seclists.org/webappsec/2002/q4/111">https://seclists.org/webappsec/2002/q4/111</a></li>
|
||
</ol>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</li>
|
||
<li
|
||
id="alert-type-5">
|
||
<h4>Private IP Disclosure</h4>
|
||
<table class="alert-types-table">
|
||
<tr>
|
||
<th scope="row">Source</th>
|
||
<td>
|
||
|
||
<span>raised by a passive scanner</span> <span>(<a
|
||
href="https://www.zaproxy.org/docs/alerts/2/">Private IP Disclosure</a>)
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">CWE ID</th>
|
||
<td><a
|
||
href="https://cwe.mitre.org/data/definitions/497.html">497</a></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">WASC ID</th>
|
||
<td>13</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Reference</th>
|
||
<td>
|
||
<ol>
|
||
<li><a
|
||
href="https://datatracker.ietf.org/doc/html/rfc1918">https://datatracker.ietf.org/doc/html/rfc1918</a></li>
|
||
</ol>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</li>
|
||
<li
|
||
id="alert-type-6">
|
||
<h4>Timestamp Disclosure - Unix</h4>
|
||
<table class="alert-types-table">
|
||
<tr>
|
||
<th scope="row">Source</th>
|
||
<td>
|
||
|
||
<span>raised by a passive scanner</span> <span>(<a
|
||
href="https://www.zaproxy.org/docs/alerts/10096/">Timestamp Disclosure</a>)
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">CWE ID</th>
|
||
<td><a
|
||
href="https://cwe.mitre.org/data/definitions/497.html">497</a></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">WASC ID</th>
|
||
<td>13</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Reference</th>
|
||
<td>
|
||
<ol>
|
||
<li><a
|
||
href="https://cwe.mitre.org/data/definitions/200.html">https://cwe.mitre.org/data/definitions/200.html</a></li>
|
||
</ol>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</li>
|
||
<li
|
||
id="alert-type-7">
|
||
<h4>X-Content-Type-Options Header Missing</h4>
|
||
<table class="alert-types-table">
|
||
<tr>
|
||
<th scope="row">Source</th>
|
||
<td>
|
||
|
||
<span>raised by a passive scanner</span> <span>(<a
|
||
href="https://www.zaproxy.org/docs/alerts/10021/">X-Content-Type-Options Header Missing</a>)
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">CWE ID</th>
|
||
<td><a
|
||
href="https://cwe.mitre.org/data/definitions/693.html">693</a></td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">WASC ID</th>
|
||
<td>15</td>
|
||
</tr>
|
||
<tr>
|
||
<th scope="row">Reference</th>
|
||
<td>
|
||
<ol>
|
||
<li><a
|
||
href="https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/compatibility/gg622941(v=vs.85)">https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/compatibility/gg622941(v=vs.85)</a></li>
|
||
<li><a
|
||
href="https://owasp.org/www-community/Security_Headers">https://owasp.org/www-community/Security_Headers</a></li>
|
||
</ol>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</li>
|
||
<li
|
||
id="alert-type-8">
|
||
<h4>Modern Web Application</h4>
|
||
<table class="alert-types-table">
|
||
<tr>
|
||
<th scope="row">Source</th>
|
||
<td>
|
||
|
||
<span>raised by a passive scanner</span> <span>(<a
|
||
href="https://www.zaproxy.org/docs/alerts/10109/">Modern Web Application</a>)
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
|
||
|
||
|
||
</table>
|
||
</li>
|
||
<li
|
||
id="alert-type-9">
|
||
<h4>Session Management Response Identified</h4>
|
||
<table class="alert-types-table">
|
||
<tr>
|
||
<th scope="row">Source</th>
|
||
<td>
|
||
|
||
<span>raised by a passive scanner</span> <span>(<a
|
||
href="https://www.zaproxy.org/docs/alerts/10112/">Session Management Response Identified</a>)
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
|
||
|
||
<tr>
|
||
<th scope="row">Reference</th>
|
||
<td>
|
||
<ol>
|
||
<li><a
|
||
href="https://www.zaproxy.org/docs/desktop/addons/authentication-helper/session-mgmt-id/">https://www.zaproxy.org/docs/desktop/addons/authentication-helper/session-mgmt-id/</a></li>
|
||
</ol>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</li>
|
||
<li
|
||
id="alert-type-10">
|
||
<h4>User Agent Fuzzer</h4>
|
||
<table class="alert-types-table">
|
||
<tr>
|
||
<th scope="row">Source</th>
|
||
<td>
|
||
|
||
<span>raised by an active scanner</span> <span>(<a
|
||
href="https://www.zaproxy.org/docs/alerts/10104/">User Agent Fuzzer</a>)
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
|
||
|
||
<tr>
|
||
<th scope="row">Reference</th>
|
||
<td>
|
||
<ol>
|
||
<li><a
|
||
href="https://owasp.org/wstg">https://owasp.org/wstg</a></li>
|
||
</ol>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</li>
|
||
</ol>
|
||
</section>
|
||
</section>
|
||
|
||
</main>
|
||
</body>
|
||
</html>
|
||
|
||
|
||
|