漏洞原理
在 mongo-express 的 collection.js 中,checkValidIndexJSON 和 checkValidJSON 在处理消息体 document 内容时使用的 addDoc.getValue 和 addIndexDoc.getValue 方法没有进行检验,导致在知晓用户密码情况下可以执行js代码
const addDoc = CodeMirror.fromTextArea(document.getElementById('document'), {
mode: {
name: 'javascript', json: true },
indentUnit: 4,
electricChars: true,
matchBrackets: true,
lineNumbers: true,
theme: ME_SETTINGS.codeMirrorEditorTheme,
});
const addIndexDoc = CodeMirror.fromTextArea(document.getElementById('index'), {
mode: {
name