Illusion
JavaScript Prototype Injection
Problem
Solution
app.use(basicAuth({
users: { "admin": process.env.SECRET || "admin" },
challenge: true
}))const jsonpatch = require('fast-json-patch')
...
// API
app.post("/change_status", (req, res) => {
let patch = []
Object.entries(req.body).forEach(([service, status]) => {
if (service === "status"){
res.status(400).end("Cannot change all services status")
return
}
patch.push({
"op": "replace",
"path": "/" + service,
"value": status
})
});
jsonpatch.applyPatch(services, patch)
console.log(Object.values(services))
if ("offline" in Object.values(services)){
services.status = "offline"
}
res.json(services)
})



Last updated