安全技术研究-任意文件下载漏洞(NodeJS)

Express.js漏洞代码

下面的例子是一个Express.js路由,它以不安全的方式从目录中提供文件:

app.use('/', function (req, res) {
    const path = req.path;
    const filename = __dirname + "/public" + path;
    fs.readFile(filename, function (err, data) {
        if (err) {
            res.writeHead(500);
            return res.end(err.toString());
        }
        res.writeHead(200);
        res.end(data);
    });
});

攻击者可以请求以下URL来获取文件系统中的任何位置:

http://example.com/../../../../../etc/passwd

如何防护

验证用户提交的文件名元数据没有被系统或框架文件系统直接使用,并且URL API用于防止路径遍历。

Express.js提供了使用一种安全的方式提供静态文件的功能:express.static中间件.

app.use(express.static('public'));
展开阅读全文

页面更新:2024-05-14

标签:漏洞   文件   攻击者   遍历   路由   文件名   文件系统   静态   路径   方式

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top