该工具会检查 NPM 和 Python Pypi 注册表中每个软件包的每位维护者,查找未注册的域名或这些域名上未注册的 MX 记录。如果某个域名未注册,你可以获取该域名,并在该账户未启用双因素认证的情况下发起密码重置。这使你可以劫持一个软件包并对其进行任意操作。
请勿将其用于非法目的,仅用于检查软件包并将其提交给漏洞赏金计划。
我联系过 NPM 安全团队,但他们对此类漏洞不感兴趣。
另请注意,从 API 返回的维护者并不总是反映真实的维护者,但通常你可以碰碰运气。
首先下载软件包索引!由于服务器极其缓慢,这可能需要很长时间(超过 30 分钟):
wget https://skimdb.npmjs.com/registry/_all_docs
之后只需运行 ./hijagger npm。使用 --help 参数查看所有选项。输出也会自动保存到 output.txt。由于软件包数量庞大,此工具很可能会运行数天。
要轻松在输出中找到命中项,请用 grep 搜索 HIT。颜色标记基于软件包在过去一年的下载量。
该工具会发送大量 DNS 和 whois 请求,因此我建议在专用服务器上运行此工具,以免你的私有 IP 被封锁。
此模式与 NPM 模式的工作原理完全相同,但 pypi API 不会返回软件包的下载量。这些数据只能通过 Google BigQuery 获取,但这会让事情变得非常复杂,因此 Pypi 软件包没有实现基于下载量的下载计数器和颜色标记。
./hijagger pypi