GCP - Artifact Registry Persistence
Artifact Registry
有关 Artifact Registry 的更多信息,请查看:
GCP - Artifact Registry Enum依赖混淆
如果虚拟仓库中混合了远程和标准仓库,并且一个包同时存在于两者中,会发生什么?
虚拟仓库中设置的优先级最高的那个会被使用
如果优先级相同:
如果版本相同,则使用虚拟仓库中按字母顺序排列的策略名称
如果不同,则使用最高版本
因此,如果远程仓库具有更高或相同的优先级,就有可能**滥用最高版本(依赖混淆)**在公共包注册表中
这种技术可以用于持久性和无需身份验证的访问,要滥用它只需知道存储在 Artifact Registry 中的库名称,并在公共仓库(例如 Python 的 PyPi)中创建具有更高版本的相同库。
对于持久性,您需要遵循以下步骤:
要求:必须存在虚拟仓库并被使用,必须使用一个在公共仓库中不存在的名称的内部包。
如果不存在,创建远程仓库
将远程仓库添加到虚拟仓库
编辑虚拟注册表的策略,为远程仓库提供更高优先级(或相同)。 运行类似以下命令:
下载合法包,添加恶意代码并在公共仓库中注册具有相同版本的包。每当开发人员安装它时,他们将安装您的包!
有关依赖混淆的更多信息,请查看:
Last updated