Skip to content

ZAP baseline,auth, Semgrep and SAST/DAST correlation - #5

Merged
Wilikson173 merged 3 commits into
mainfrom
feature/lab5
Jun 26, 2026
Merged

ZAP baseline,auth, Semgrep and SAST/DAST correlation#5
Wilikson173 merged 3 commits into
mainfrom
feature/lab5

Conversation

@Wilikson173

Copy link
Copy Markdown
Owner

Goal

Complete Lab 5: run DAST with OWASP ZAP (baseline + authenticated) and SAST with Semgrep against Juice Shop v20.0.0; correlate findings from both tools.

Changes

  • submissions/lab5.md – final report with:
    • Task 1: ZAP severity tables, ratio analysis, two auth‑only alerts with explanations
    • Task 2: Semgrep severity breakdown, top‑10 rule frequencies, triage shortcut, false‑positive sample
    • Bonus: SAST/DAST correlation table, deep‑dive on SQL injection, fix and reflection

Testing

All scans completed successfully on a fresh Kali machine.

  • ZAP baseline (unauthenticated):
    • Duration: ~2 min
    • Unique alert types: 10 (Medium 2, Low 5, Info 3)
    • Total alert instances: 41
  • ZAP authenticated (full scan with Automation Framework):
    • Duration: ~12 min
    • Unique alert types: 8 (High 1, Medium 2, Low 1, Info 4)
    • Total alert instances: 38
    • Ratio (auth/baseline instances): 0.8× – explained in report (Ajax Spider did not run in headless container)
  • Semgrep (rules: p/owasp-top-ten, p/javascript, p/secrets):
    • Findings: ERROR 12, WARNING 10 → total 22
    • Top rule: javascript.sequelize.security.audit.sequelize-injection-express (6 occurrences)
  • Correlation: SQL Injection identified in both ZAP (/rest/products/search and /rest/user/login) and Semgrep (routes/search.ts, routes/login.ts).

Container health verified:

docker ps --filter name=juice-shop
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
... bkimminich/juice-shop:v20.0.0 "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 127.0.0.1:3000->3000/tcp juice-shop
curl -s -o /dev/null -w "HTTP %{http_code}\n" http://127.0.0.1:3000/rest/products
HTTP 200

Artifacts & Screenshots

  • submissions/lab5.md – full analysis (this PR)
  • Scanner outputs are not committed (excluded by .gitignore; they are regeneratable).

Checklist

  • Title follows feat(labN): <topic> style (this PR is feat(lab5): ...)
  • No secrets or large temp files committed
  • Submission file exists at submissions/lab5.md

Cre-eD and others added 3 commits June 12, 2026 21:17
…ame limit

Threagile uses the model title as the risks.xlsx sheet name; the shipped
41-char title crashed report generation at the Excel step ('the sheet name
length exceeds the 31 characters limit'), leaving JSONs/diagrams but no
risks.xlsx or report.pdf. Verified full output with threagile/threagile:0.9.1.
Also documented the pitfall in lab2.md.

Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
@Wilikson173
Wilikson173 merged commit eb8cd48 into main Jun 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants