Open isayme opened 6 years ago
getcookies包存在后门代码, 目前已经被发现并从 npmjs.org 中删除.
getcookies
2018-05-02T08:26:01.000Z
May 2, 2018 (3:47 pm)
2018年05月04日 15时50分
恶意包包括: getcookies, express-cookies, http-fetch-cookies, 其中后门代码在getcookies中.
express-cookies
http-fetch-cookies
由于 npm 已经删除了上述恶意包, 无法正常获取信息. 但是作为镜像的 npm.taobao.org 当前仍旧可以获取信息. 此后的信息都是从 npm.taobao.org 获取. 同时为了避免失效, 获取到的信息都有留存.
npm.taobao.org
发布人的信息: dustin87 <dustin.heidenreich@hotmail.com> https://npm.taobao.org/~dustin87
dustin87 <dustin.heidenreich@hotmail.com> https://npm.taobao.org/~dustin87
三个包的留存 getcookies 包信息: https://registry.npm.taobao.org/getcookies 备份 版本备份: https://github.com/isayme/blog/blob/master/issues/13/getcookies/
三个包的留存
包信息: https://registry.npm.taobao.org/getcookies 备份 版本备份: https://github.com/isayme/blog/blob/master/issues/13/getcookies/
包信息: https://registry.npm.taobao.org/express-cookies 备份 版本备份: https://github.com/isayme/blog/blob/master/issues/13/express-cookies/
包信息: https://registry.npm.taobao.org/http-fetch-cookies 备份 版本备份: https://github.com/isayme/blog/blob/master/issues/13/http-fetch-cookies/
首次上传时间: 2018-03-22T07:45:55.796Z, 上传人邮箱: dustin.heidenreich@hotmail.com
2018-03-22T07:45:55.796Z
dustin.heidenreich@hotmail.com
包内的 History.md 文件描述此包创建于2012-05-28. 其实这个包是从 cookie@0.3.1 修改而来, History.md 的信息都是cookie的记录, 存在误导.
2012-05-28
History.md
cookie
首次上传时间: 2018-03-22T07:46:26.847Z, 上传人: dustin.heidenreich@hotmail.com
2018-03-22T07:46:26.847Z
包内的 History.md 文件描述此包创建于2014-02-15. 其实这个包是从 cookie-parser@1.4.3 修改而来, History.md 的信息都是cookie-parser的记录, 存在误导.
2014-02-15
cookie-parser
首次上传时间: 2018-04-12T12:44:43.189Z, 上传人: dustin.heidenreich@hotmail.com 此包为空包, 暂无更多信息.
2018-04-12T12:44:43.189Z
expess-cookies 依赖 getcookies; http-fetch-cookies 依赖 expess-cookies; mailparser 依赖 http-fetch-cookies;
mailparser └── http-fetch-cookies └── express-cookies └──getcookies
其中 mailparser 存在一定的文档下载量:
mailparser
仅 mailparser 2.2.1 2.2.2 2.2.3 三个版本分别依赖了 http-fetch-cookies 的 1.0.0 1.0.0 1.0.1 版本, 目前 mailparser 的这三个版本已经删除, 备份: https://github.com/isayme/blog/blob/master/issues/13/mailparser/ 其中 mailparser@2.2.1 发布于 2018-04-12T12:45:09.611Z, mailparser@2.2.2 发布于 2018-04-12T12:46:40.121Z, mailparser@2.2.3 发布于 2018-04-12T12:52:13.451Z. 有趣的是: mailparser 在 2018年3月11日 GMT+8 下午6:18 就已经标记为 deprecated.
2.2.1
2.2.2
2.2.3
1.0.0
1.0.1
mailparser@2.2.1
2018-04-12T12:45:09.611Z
mailparser@2.2.2
2018-04-12T12:46:40.121Z
mailparser@2.2.3
2018-04-12T12:52:13.451Z
2018年3月11日 GMT+8 下午6:18
deprecated
攻击者通过headers构建上传恶意代码并执行:
headers
req.headers
COMMAND
CODE
0xfffe
0xfffa
示例 code buffer:
var codebuffer = `(function() { return function (...args) { console.log(args) } })()` require('vm')['runInThisContext'](codebuffer)('we', 'can', 'do', 'anything', 'here') require('vm')['runInThisContext'](codebuffer)(module.exports, require, req, res, next)
背景
getcookies
包存在后门代码, 目前已经被发现并从 npmjs.org 中删除.相关报道
2018-05-02T08:26:01.000Z
May 2, 2018 (3:47 pm)
2018年05月04日 15时50分
基本信息
恶意包包括:
getcookies
,express-cookies
,http-fetch-cookies
, 其中后门代码在getcookies
中.发布人的信息:
dustin87 <dustin.heidenreich@hotmail.com> https://npm.taobao.org/~dustin87
留存
express-cookies
包信息: https://registry.npm.taobao.org/express-cookies 备份 版本备份: https://github.com/isayme/blog/blob/master/issues/13/express-cookies/
http-fetch-cookies
包信息: https://registry.npm.taobao.org/http-fetch-cookies 备份 版本备份: https://github.com/isayme/blog/blob/master/issues/13/http-fetch-cookies/
三个包的基本信息
getcookies
首次上传时间:![image](https://user-images.githubusercontent.com/1747852/39673977-bdc5accc-5177-11e8-9309-7cd38fa19373.png)
2018-03-22T07:45:55.796Z
, 上传人邮箱:dustin.heidenreich@hotmail.com
包内的 History.md 文件描述此包创建于
2012-05-28
. 其实这个包是从 cookie@0.3.1 修改而来,History.md
的信息都是cookie
的记录, 存在误导.express-cookies
首次上传时间:![image](https://user-images.githubusercontent.com/1747852/39674107-a2a0cd08-5179-11e8-908e-80d6272bdb5a.png)
2018-03-22T07:46:26.847Z
, 上传人:dustin.heidenreich@hotmail.com
包内的 History.md 文件描述此包创建于
2014-02-15
. 其实这个包是从 cookie-parser@1.4.3 修改而来,History.md
的信息都是cookie-parser
的记录, 存在误导.http-fetch-cookies
首次上传时间:
此包为空包, 暂无更多信息.
2018-04-12T12:44:43.189Z
, 上传人:dustin.heidenreich@hotmail.com
谁在用这些包?
expess-cookies 依赖 getcookies; http-fetch-cookies 依赖 expess-cookies; mailparser 依赖 http-fetch-cookies;
其中![image](https://user-images.githubusercontent.com/1747852/39674679-0179041e-5182-11e8-9df1-a4dbaf44775a.png)
mailparser
存在一定的文档下载量:仅
mailparser
2.2.1
2.2.2
2.2.3
三个版本分别依赖了http-fetch-cookies
的1.0.0
1.0.0
1.0.1
版本, 目前mailparser
的这三个版本已经删除, 备份: https://github.com/isayme/blog/blob/master/issues/13/mailparser/ 其中mailparser@2.2.1
发布于2018-04-12T12:45:09.611Z
,mailparser@2.2.2
发布于2018-04-12T12:46:40.121Z
,mailparser@2.2.3
发布于2018-04-12T12:52:13.451Z
. 有趣的是:mailparser
在2018年3月11日 GMT+8 下午6:18
就已经标记为deprecated
.后门机制
攻击者通过
headers
构建上传恶意代码并执行:req.headers
中 gCOMMAND
hCODE
;COMMAND
是0xfffe
时重置 code buffer;COMMAND
是0xfffe
/0xfffa
以外的值时加载CODE
至 code buffer;COMMAND
是0xfffa
时执行 code buffer 的代码, 其中 code buffer 返回一个函数.示例 code buffer: