OWASP Juice Shop
- כתובת
- http://localhost:3005
- סוג
- Web App (SPA + REST)
- תאריך סריקה
- 2026-11-13
- סוג סריקה
- Baseline פסיבי
ניתוח ותעדוף
Claude — שכבת ניתוח (דמו)הסריקה האוטומטית העלתה 31 ממצאים גולמיים. לאחר איחוד כפילויות וסינון רעש, זוהו 4 בעיות ייחודיות — אחת בחומרה גבוהה (ספריית JavaScript פגיעה) ושתיים בינוניות (חיזוק כותרות אבטחה והגדרות שיתוף חוצה-דומיין). יתר הממצאים הם חשיפות מידע בעלות ערך נמוך. אף ממצא לא אומת אקטיבית — כולם דורשים אימות אנושי לפני דיווח סופי. חולשות הליבה של אפליקציה מסוג זה (הרשאות והזרקות) אינן מכוסות בסריקה פסיבית זו ומחייבות בדיקה אקטיבית נפרדת.
ספריית JavaScript פגיעה
זוהתה ספריית צד-לקוח עם חולשה ידועה. חולשות בספריות נפוצות ממופות ומנוצלות בקלות על ידי סורקים אוטומטיים של תוקפים, ולכן זו הבעיה בעלת העדיפות הגבוהה ביותר שאותרה בסריקה זו.
לזהות את שם הספרייה והגרסה המדויקת, לשדרג לגרסה מתוקנת, ולהטמיע ניטור תלויות (SCA) בצנרת הפיתוח כדי לתפוס חולשות עתידיות.
לאמת ידנית את שם הספרייה, הגרסה וה-CVE הספציפי, ולוודא שהחולשה רלוונטית לאופן השימוש בפועל.
חוסר בכותרות אבטחה (הגנה-לעומק)
אוחדו 14 ממצאים גולמיים לנושא אחד: חוסר בסט כותרות אבטחה (CSP, Anti-clickjacking, X-Content-Type-Options, Permissions-Policy, CORP/COEP/COOP ועוד). בפני עצמן אינן חולשה ישירה, אך היעדרן מגדיל משמעותית את הנזק האפשרי מחולשות אחרות — למשל XSS ו-clickjacking.
להגדיר סט כותרות אבטחה מלא ברמת השרת/אפליקציה. להתחיל ב-CSP (עם מדיניות הדרגתית שלא תשבור פונקציונליות) וב-Anti-clickjacking.
זיהוי אמין (הכותרות קיימות או חסרות). מומלץ לוודא שה-CSP החדש אינו שובר רכיבים באפליקציה.
הגדרות שיתוף חוצה-דומיין רחבות
אוחדו 6 ממצאים: הגדרות CORS רחבות והכללת JavaScript חוצה-דומיין. הגדרה רחבה מדי עלולה לאפשר לאתרים חיצוניים לגשת למשאבים, אך ייתכן שחלק מכוון (CDN) — ולכן נדרש אימות.
לצמצם את מדיניות ה-CORS לדומיינים מורשים בלבד, ולהסיר הכללת JS חוצה-דומיין שאינה נחוצה.
לבדוק אילו נקודות קצה מחזירות Access-Control-Allow-Origin רחב, והאם הן חושפות מידע רגיש.
חשיפת מידע וטכנולוגיות (ערך נמוך)
קובץ זה מאחד כ-10 זיהויים בעלי ערך נמוך: תיעוד API (Swagger), נקודות metrics, robots.txt, כותרות המזהות טכנולוגיה, וחשיפת timestamp. מידע זה מסייע לתוקף במיפוי אך ברובו אינו חולשה בפני עצמה — מסווג כ'רעש' בעל סיכון גבוה ל-false-positive.
להגביל גישה לתיעוד ולנקודות ניטור (אימות או רשת פנימית) ולהסיר כותרות חושפות מיותרות — כעבודת ניקיון, לא כעדיפות.
לוודא שנקודות רגישות (metrics, swagger) אינן נגישות ציבורית בסביבת ייצור.
נספח · ממצאים גולמיים(31)הצגה
| חומרה גבוהה | 1 | |
| חומרה בינונית | 3 | |
| חומרה נמוכה | 6 | |
| חומרה מידע | 21 |
חומרה גבוהה
(1)גבוההVulnerable JS LibraryF-015/Vulnerable Component/CWE-1395ZAPטרם אומת
The identified library appears to be vulnerable.
- GET http://localhost:3005/vendor.js
Upgrade to the latest version of the affected library.
חומרה בינונית
(3)בינוניתPrometheus Metrics - DetectF-016/Information Disclosure/CWE-200Nucleiטרם אומת
Prometheus metrics page was detected.
- http://localhost:3005/metrics
בינוניתContent Security Policy (CSP) Header Not Set×5F-017/Security Headers / Config/CWE-693ZAPטרם אומת
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.
- GET http://localhost:3005
- GET http://localhost:3005/ftp
- GET http://localhost:3005/ftp/encrypt.pyc
- GET http://localhost:3005/ftp/package.json.bak
- GET http://localhost:3005/sitemap.xml
Ensure that your web server, application server, load balancer, etc. is configured to set the Content-Security-Policy header.
בינוניתCross-Domain Misconfiguration×5F-018/Other/CWE-264ZAPטרם אומת
Web browser data loading may be possible, due to a Cross Origin Resource Sharing (CORS) misconfiguration on the web server.
- GET http://localhost:3005
- GET http://localhost:3005/robots.txt
- GET http://localhost:3005/runtime.js
- GET http://localhost:3005/sitemap.xml
- GET http://localhost:3005/styles.css
Ensure that sensitive data is not available in an unauthenticated manner (using IP address white-listing, for instance). Configure the "Access-Control-Allow-Origin" HTTP header to a more restrictive set of domains, or remove all CORS headers entirely, to allow the web browser to enforce the Same Origin Policy (SOP) in a more restrictive manner.
חומרה נמוכה
(6)נמוכהCross-Domain JavaScript Source File Inclusion×5F-019/Injection / Logic/CWE-829ZAPטרם אומת
The page includes one or more script files from a third-party domain.
- GET http://localhost:3005
- GET http://localhost:3005
- GET http://localhost:3005/
- GET http://localhost:3005/sitemap.xml
- GET http://localhost:3005/sitemap.xml
Ensure JavaScript source files are loaded from only trusted sources, and the sources can't be controlled by end users of the application.
נמוכהCross-Origin-Embedder-Policy Header Missing or Invalid×5F-020/Security Headers / Config/CWE-693ZAPטרם אומת
Cross-Origin-Embedder-Policy header is a response header that prevents a document from loading any cross-origin resources that don't explicitly grant the document permission (using CORP or CORS).
- GET http://localhost:3005
- GET http://localhost:3005/
- GET http://localhost:3005/ftp
- GET http://localhost:3005/juice-shop/build/routes/fileServer.js:59:18
- GET http://localhost:3005/sitemap.xml
Ensure that the application/web server sets the Cross-Origin-Embedder-Policy header appropriately, and that it sets the Cross-Origin-Embedder-Policy header to 'require-corp' for documents. If possible, ensure that the end user uses a standards-compliant and modern web browser that supports the Cross-Origin-Embedder-Policy header (https://caniuse.com/mdn-http_headers_cross-origin-embedder-policy).
נמוכהCross-Origin-Opener-Policy Header Missing or Invalid×5F-021/Security Headers / Config/CWE-693ZAPטרם אומת
Cross-Origin-Opener-Policy header is a response header that allows a site to control if others included documents share the same browsing context. Sharing the same browsing context with untrusted documents might lead to data leak.
- GET http://localhost:3005
- GET http://localhost:3005/
- GET http://localhost:3005/ftp
- GET http://localhost:3005/juice-shop/build/routes/fileServer.js:59:18
- GET http://localhost:3005/sitemap.xml
Ensure that the application/web server sets the Cross-Origin-Opener-Policy header appropriately, and that it sets the Cross-Origin-Opener-Policy header to 'same-origin' for documents. 'same-origin-allow-popups' is considered as less secured and should be avoided. If possible, ensure that the end user uses a standards-compliant and modern web browser that supports the Cross-Origin-Opener-Policy header (https://caniuse.com/mdn-http_headers_cross-origin-opener-policy).
נמוכהDangerous JS Functions×2F-022/Other/CWE-749ZAPטרם אומת
A dangerous JS function seems to be in use that would leave the site vulnerable.
- GET http://localhost:3005/main.js
- GET http://localhost:3005/vendor.js
See the references for security advice on the use of these functions.
נמוכהDeprecated Feature Policy Header Set×5F-023/Security Headers / Config/CWE-16ZAPטרם אומת
The header has now been renamed to Permissions-Policy.
- GET http://localhost:3005
- GET http://localhost:3005/main.js
- GET http://localhost:3005/polyfills.js
- GET http://localhost:3005/runtime.js
- GET http://localhost:3005/sitemap.xml
Ensure that your web server, application server, load balancer, etc. is configured to set the Permissions-Policy header instead of the Feature-Policy header.
נמוכהTimestamp Disclosure - Unix×5F-024/Information Disclosure/CWE-497ZAPטרם אומת
A timestamp was disclosed by the application/web server. - Unix
- GET http://localhost:3005
- GET http://localhost:3005
- GET http://localhost:3005
- GET http://localhost:3005/sitemap.xml
- GET http://localhost:3005/sitemap.xml
Manually confirm that the timestamp data is not sensitive, and that the data cannot be aggregated to disclose exploitable patterns.
חומרה מידע
(21)מידעAdd DOM EventListener - DetectionF-025/Injection / LogicNucleiטרם אומת
Identifies the use of JavaScript addEventListener calls in the DOM.
- http://localhost:3005
מידעDeprecated Feature-Policy Header - DetectionF-026/Security Headers / ConfigNucleiטרם אומת
Detected the presence of the deprecated Feature-Policy HTTP response header. The Feature-Policy header has been deprecated and replaced by the Permissions-Policy header. While Feature-Policy is still supported in some browsers for backward compatibility, it is recommended to migrate to Permissions-Policy for future-proofing web applications.
- http://localhost:3005
מידעFingerprintHub Technology FingerprintF-027/Information Disclosure/CWE-200Nucleiטרם אומת
FingerprintHub Technology Fingerprint tests run in nuclei.
- http://localhost:3005
מידעHTTP Missing Security HeadersF-028/Security Headers / Config/CWE-693Nucleiטרם אומת
This template searches for missing HTTP security headers. The impact of these missing headers can vary.
- http://localhost:3005
מידעHTTP Missing Security HeadersF-029/Security Headers / Config/CWE-693Nucleiטרם אומת
This template searches for missing HTTP security headers. The impact of these missing headers can vary.
- http://localhost:3005
מידעHTTP Missing Security HeadersF-030/Security Headers / Config/CWE-693Nucleiטרם אומת
This template searches for missing HTTP security headers. The impact of these missing headers can vary.
- http://localhost:3005
מידעHTTP Missing Security HeadersF-031/Security Headers / Config/CWE-693Nucleiטרם אומת
This template searches for missing HTTP security headers. The impact of these missing headers can vary.
- http://localhost:3005
מידעHTTP Missing Security HeadersF-032/Security Headers / Config/CWE-693Nucleiטרם אומת
This template searches for missing HTTP security headers. The impact of these missing headers can vary.
- http://localhost:3005
מידעHTTP Missing Security HeadersF-033/Security Headers / Config/CWE-693Nucleiטרם אומת
This template searches for missing HTTP security headers. The impact of these missing headers can vary.
- http://localhost:3005
מידעHTTP Missing Security HeadersF-034/Security Headers / Config/CWE-693Nucleiטרם אומת
This template searches for missing HTTP security headers. The impact of these missing headers can vary.
- http://localhost:3005
מידעHTTP Missing Security HeadersF-035/Security Headers / Config/CWE-693Nucleiטרם אומת
This template searches for missing HTTP security headers. The impact of these missing headers can vary.
- http://localhost:3005
מידעMissing Subresource IntegrityF-036/Vulnerable Component/CWE-353Nucleiטרם אומת
Checks if external script and stylesheet tags in the HTML response are missing the Subresource Integrity (SRI) attribute.
- http://localhost:3005/
מידעOWASP Juice ShopF-037/OtherNucleiטרם אומת
מידעPublic Swagger API - DetectF-038/Information Disclosure/CWE-200Nucleiטרם אומת
Public Swagger API was detected.
- http://localhost:3005/api-docs/swagger.json
מידעX-Recruiting HeaderF-039/Security Headers / ConfigNucleiטרם אומת
Websites that advertise jobs via HTTP headers
- http://localhost:3005
מידעrobots.txt endpoint proberF-040/Information DisclosureNucleiטרם אומת
מידעrobots.txt fileF-041/Information DisclosureNucleiטרם אומת
מידעsecurity.txt FileF-042/Information DisclosureNucleiטרם אומת
File similar to robots.txt but intended to be read by humans wishing to contact a website’s owner about security issues. Often defines a security policy and contact details.
- http://localhost:3005/.well-known/security.txt
מידעModern Web Application×5F-043/Other/CWE--1ZAPטרם אומת
The application appears to be a modern web application. If you need to explore it automatically then the Client Spider may well be more effective than the standard one.
- GET http://localhost:3005
- GET http://localhost:3005/
- GET http://localhost:3005/juice-shop/build/routes/fileServer.js:59:18
- GET http://localhost:3005/juice-shop/node_modules/express/lib/router/layer.js:95:5
- GET http://localhost:3005/sitemap.xml
This is an informational alert and so no changes are required.
מידעStorable and Cacheable Content×2F-044/Other/CWE-524ZAPטרם אומת
The response contents are storable by caching components such as proxy servers, and may be retrieved directly from the cache, rather than from the origin server by the caching servers, in response to similar requests from other users. If the response data is sensitive, personal or user-specific, this may result in sensitive information being leaked. In some cases, this may even result in a user gaining complete control of the session of another user, depending on the configuration of the caching components in use in their environment. This is primarily an issue where "shared" caching servers such as "proxy" caches are configured on the local network. This configuration is typically found in corporate or educational environments, for instance.
- GET http://localhost:3005/ftp
- GET http://localhost:3005/robots.txt
Validate that the response does not contain sensitive, personal or user-specific information. If it does, consider the use of the following HTTP response headers, to limit, or prevent the content being stored and retrieved from the cache by another user: Cache-Control: no-cache, no-store, must-revalidate, private Pragma: no-cache Expires: 0 This configuration directs both HTTP 1.0 and HTTP 1.1 compliant caching servers to not store the response, and to not retrieve the response (without validation) from the cache, in response to a similar request.
מידעStorable but Non-Cacheable Content×5F-045/Other/CWE-524ZAPטרם אומת
The response contents are storable by caching components such as proxy servers, but will not be retrieved directly from the cache, without validating the request upstream, in response to similar requests from other users.
- GET http://localhost:3005
- GET http://localhost:3005/assets/public/favicon_js.ico
- GET http://localhost:3005/runtime.js
- GET http://localhost:3005/sitemap.xml
- GET http://localhost:3005/styles.css
