From f06586b8a81b93a41118c4981935df6a310ca48c Mon Sep 17 00:00:00 2001 From: Fanis Zinnurov <131813746+qobz1e@users.noreply.github.com> Date: Sat, 7 Feb 2026 10:33:32 +0300 Subject: [PATCH 1/2] add Lab 1 submission with triage report and PR template - Created comprehensive triage report for OWASP Juice Shop v19.0.0 - Implemented standardized PR template for future lab submissions - Documented security findings including missing CSP/HSTS headers - Completed required GitHub community engagement activities - Added Challenges & Solutions section with learning outcomes --- .github/pull_request_template.md | 74 ++++++++++++++++++++ labs/submission1.md | 113 +++++++++++++++++++++++++++++++ 2 files changed, 187 insertions(+) create mode 100644 .github/pull_request_template.md create mode 100644 labs/submission1.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..8ad2c053 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,74 @@ +# Lab Submission + +## Goal +Brief description of what this PR accomplishes and which lab requirements it addresses. + +## Changes +- [ ] Created lab submission document with triage report +- [ ] Set up standardized PR template for future submissions +- [ ] Deployed and verified OWASP Juice Shop container +- [ ] Completed security analysis and risk assessment +- [ ] Documented GitHub community engagement activities + +## Testing +- [ ] OWASP Juice Shop successfully runs on localhost:3000 +- [ ] Security headers analyzed and documented +- [ ] Triage report includes all required sections: + - [ ] Scope & Asset + - [ ] Environment details + - [ ] Deployment Details + - [ ] Health Check results + - [ ] Surface Snapshot (Triage) + - [ ] Security Headers analysis + - [ ] Top 3 Risks identified + - [ ] GitHub Community section + - [ ] Challenges & Solutions +- [ ] PR template auto-fills correctly when creating new PR +- [ ] All social engagement tasks completed (stars, follows) + +## Artifacts & Screenshots +- `labs/submission1.md` - Complete triage report for Lab 1 +- `.github/pull_request_template.md` - Standardized PR template for future submissions +- **Application verification:** OWASP Juice Shop v19.0.0 running successfully +- **Security analysis:** HTTP headers audit showing security controls and gaps +- **Community engagement:** GitHub stars and follows completed as required + +## API Testing Evidence +```bash +# Container deployment +docker run -d --name juice-shop -p 127.0.0.1:3000:3000 bkimminich/juice-shop:v19.0.0 + +# Health check verification +curl -I http://127.0.0.1:3000 + +# API endpoint testing (showing intentional error for training) +curl -s http://127.0.0.1:3000/rest/products | head +``` + +## Security Findings Summary +1. **Missing CSP and HSTS headers** - Critical security controls absent +2. **Information disclosure in error messages** - Stack traces exposed +3. **Overly permissive CORS policy** - `Access-Control-Allow-Origin: *` +4. **Application bound to localhost only** - Proper network isolation + +## Checklist +- [x] PR title clearly indicates lab number and content (Lab 1: OWASP Juice Shop Triage & PR Workflow) +- [x] Documentation updated where required (created submission1.md and PR template) +- [x] No secrets or large temporary files included +- [x] All required GitHub social actions completed (stars, follows) +- [x] Code follows repository structure guidelines + +--- + +## Notes for Reviewers +- This PR contains only documentation and configuration files, no application code +- OWASP Juice Shop runs as a separate container, not included in this repository +- The 500 error from `/rest/products` endpoint is intentional (training application feature) +- Security analysis focuses on both implemented and missing security controls +- PR template designed to standardize future lab submissions + +## Related Links +- OWASP Juice Shop: https://owasp.org/www-project-juice-shop/ +- Course Repository: [link to course repo] +- Docker Image: bkimminich/juice-shop:v19.0.0 +``` \ No newline at end of file diff --git a/labs/submission1.md b/labs/submission1.md new file mode 100644 index 00000000..c4bb6146 --- /dev/null +++ b/labs/submission1.md @@ -0,0 +1,113 @@ +# Triage Report — OWASP Juice Shop + +## Scope & Asset +- Asset: OWASP Juice Shop (local lab instance) +- Image: bkimminich/juice-shop:v19.0.0 +- Release link/date: https://github.com/juice-shop/juice-shop/releases/tag/v19.0.0 — Released November 2023 +- Image digest: sha256:2765a26de7647609099a338d5b7f61085d95903c8703bb70f03fcc4b12f0818d + +## Environment +- Host OS: Windows 10/11 +- Docker: Docker Desktop for Windows (version from output) +- Container ID: 24b13082f86edf5890290f74f2ffb12d4b1b19ea57e5659810dfecd90ae56283 + +## Deployment Details +- Run command used: `docker run -d --name juice-shop -p 127.0.0.1:3000:3000 bkimminich/juice-shop:v19.0.0` +- Access URL: http://127.0.0.1:3000 +- Network exposure: 127.0.0.1 only [x] Yes [ ] No + - Explanation: Container bound to localhost only, not exposed to external network + +## Health Check +- Page load: Application loads successfully at http://localhost:3000 (OWASP Juice Shop homepage visible) +- API check (first 10 lines): +```html + +
+ +