I’ll let them say it:
“This codelab is built around Gruyere /ɡruːˈjɛər/ – a small, cheesy web application that allows its users to publish snippets of text and store assorted files. ‘Unfortunately,’ Gruyere has multiple security bugs ranging from cross-site scripting and cross-site request forgery, to information disclosure, denial of service, and remote code execution. The goal of this codelab is to guide you through discovering some of these bugs and learning ways to fix them both in Gruyere and in general.”
They take a unique approach, categorizing the challenges into white-box, black-box and code-examination groups, depending of course on how much you know or get to see. There are hints scattered through the challenges just to make the quest trickier – because you’ve gotta find them.