Rating:

Taking a careful look at index.js, we noticed that line 57 can call not only methods of converters but also methods of Object.prototype. Thus, we searched JavaScript reference for abusable methods of Object.prototype. After a while, we realized that when we set request.body.input to FLAG_(SessionID) and call Object.prototype.__defineSetter__, we can define a setter that leaks the code of flagConverter. Another request invoked the setter and leaked the code of flagConverter, so we got flag.