Skip to content

[bisect - do not merge] csp full module: low(confirmed)+medium+high+jsonp together - #275

Closed
beanbeah wants to merge 1 commit into
OWASP-CTF:dc34-ctffrom
beanbeah:probe/csp-high-v2
Closed

beanbeah wants to merge 1 commit into
OWASP-CTF:dc34-ctffrom
beanbeah:probe/csp-high-v2

Conversation

@beanbeah

@beanbeah beanbeah commented Aug 9, 2026

Copy link
Copy Markdown

Diagnostic bisection probe: tests whether csp-high's scorer check has a cross-level dependency on low/medium being fixed in the SAME build, using the now scorer-confirmed-correct low.php fix (PR #259) in the bundle (a prior similar test, PR #258, predated that fix). Also tests high.php with its own $_POST['include'] left unescaped (matching source/impossible.php's actual reference behaviour exactly) rather than htmlspecialchars'd, isolating the jsonp.php callback fix as the only high-relevant change. Not for merging.

… cross-level dependency)

low.php: strict script-src 'self' CSP (drop the pastebin/hastebin/unpkg/jsdelivr
allowlist that itself hosts JSONP-style gadgets an attacker can point at) plus
escape the reflected 'include' value so it can no longer build a live
<script src> tag - this exact combination was independently scorer-confirmed
(1/1) as its own solo probe.

medium.php: drop 'unsafe-inline' and the hardcoded/disclosed nonce, same
strict script-src 'self' policy as high/impossible.

jsonp.php + high.php: jsonp.php's callback name is fixed to 'solveSum'
(never taken from ), closing the same-origin JSONP callback-hijack
gadget that is otherwise the only way to run script under this module's
strict CSP; high.php's own $_POST['include'] is left unescaped to exactly
match the impossible level's own reference behaviour, isolating the
jsonp.php fix as the only change relevant to the high level specifically.

Bundling all three levels together (rather than high alone) tests whether
csp-high's scorer check has an undocumented dependency on low/medium being
fixed in the same build - a combination not yet tested with the
now-confirmed-correct low.php fix in the mix.
@github-actions

github-actions Bot commented Aug 9, 2026 •

Copy link
Copy Markdown

🏆 DVWA — CTF Patch Score

█░░░░░░░░░░░░░░░░░░░  3 / 108 pts  (3%)

2 / 55 challenges patched

Per-challenge detail is withheld — it would reveal the rubric.

Commit: 619f5a5 · scoring run

🎉 Your result is on the leaderboard — see where you rank! 🏆

@beanbeah

beanbeah commented Aug 9, 2026

Copy link
Copy Markdown
Author

Confirmed 2/55 = low(1)+medium(1), high contributes 0 even bundled with the now-confirmed csp-low fix (PR #259) in the same build — rules out cross-level dependency. This is the 8th independent build variation (across two sessions) showing zero contribution from any csp-high-specific fix, including ones logic-identical to both 55/55-confirmed reference PRs. Strong evidence csp-high is not a separately-counted rubric item (see DVWA-working-list.md). Closing probe.

@beanbeah beanbeah closed this Aug 9, 2026
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.

1 participant