Aster Market: Profile Access Control
FreeFix a customer profile authorization bug inside a normal multi-page shopping application.
A secure-coding lab where every learner gets a private, running copy of a vulnerable application and a code editor in the browser. They fix the code and rebuild the app; hidden tests then attack it from the outside, the way an attacker would, to prove the hole is closed and the app still works.
41public List<Order> find(String q) {
42 var sql = "... WHERE no = '" + q + "'";
42 var sql = "... WHERE no = ?";
43 return db.query(sql, ORDER, q);
44}
The hidden tests attack the running app from the outside with real payloads, and use it the way a customer would. A fix passes only when the hole is closed and the app still works.
Each lab also names checks that must pass whatever the score, so a high score cannot hide a missing fix. Changing a test or hiding the bug does not count.
| The app still works | The app is broken | |
|---|---|---|
| The hole is closed | SolvedThe flag is yours. | Broke the featureSafe, but nobody can use it. |
| The hole is still open | Still vulnerableThe attack still works. | Worse than beforeOpen, and broken too. |
Learners attack and break their own copy of the application, so every copy is fenced off from the others.
Every session runs in its own containers and network, with its own files. Nobody else's changes reach it.
Your lab and editor open only for your account, even if someone else gets hold of the address.
Processor, memory and disk are shared fairly, so one heavy build does not slow the other learners.
Instructors group their members into cohorts and assign labs with due dates.
Who solved each lab on time, late, or not yet, and every member's session one click away.
Which flaws learners fix, how many tries a full fix takes, and the check where they get stuck.
Fix a customer profile authorization bug inside a normal multi-page shopping application.
Review how a Node.js trail site turns reviews, names and searches into HTML, and mark every place a visitor's text could become part of the page.
Close the SQL injections in a book catalogue's search, filter and sort without breaking them.
Your instructor or administrator gives you an account. Sign in and start a session.