Back to projects

Selected project

LMS paywall API
access-control
case study.

Authorized testing found the browser paywall worked, but the backend lesson API still returned paid lesson content to logged-out direct requests.

Role
AppSec tester and report author
Stack
Browser testing, HTTP API, OWASP
Contribution
Testing, evidence, remediation
Outcome
High access-control finding
01

Validated the expected paywall

The assessment started from the normal unpaid-student journey. The lesson page correctly blocked paid content and prompted enrollment in the browser.

02

Checked backend authorization

Public course metadata exposed lesson identifiers. A logged-out request to the lesson API returned a successful response with paid-content fields still present.

03

Confirmed it was systemic

The same behavior repeated against a second paid lesson, while adjacent payment, progress, instructor, and assessment APIs rejected unauthorized access.

04

Produced a remediation path

The report mapped the issue to OWASP broken access control, recommended object-level checks, and retained only sanitized metadata rather than paid lesson bodies.