在CMS市场上占有率高达6成的WordPress是个开源的内容管理系统(CMS),而WooCommerce则是免费的电子商务外挂程序。据悉,WooCommerce的安装数量已超过400万,号称有30%的线上商店都采用了该外挂。
然而RIPS安全研究人员Simon Scannell指出,WooCommerce含有一个文章删除漏洞,允许商店经理(Shop Manager)移除服务器上的任何文件,这类的漏洞通常不会造成太大的危害,顶多是删除网站上的index.php文件并造成服务阻断。然而,当辅以WordPress的权限处理漏洞时,却能让攻击者控制整个网站。
WooCommerce提供3种角色权限,分别为客户、商店经理及管理员,其中,商店经理主要负责管理客户、产品及订单,在WooCommerce设定好商店经理的角色之后,WordPress则会赋予它edit_users的能力,并将此一角色存放在WordPress的资料库中,但edit_users的预设值能够编辑所有使用者的信息,包括管理员在内。
为了避免商店经理越权修改管理员资料,每当呼叫edit_users时,WooCommerce就会添加米数据以限制edit_users的能力,只允许它修改客户或产品信息,而不得编辑管理员信息。
然而,取得商店经理权限的攻击者却可利用WooCommerce的文件删除漏洞,直接删除WooCommerce;当WooCommerce被关闭之后,WordPress并没有移除商店经理的权限,同时WooCommerce对该权限所设定的限制也因此而失效,商店经理即能如入无人之境地修改管理员信息,取得系统的管理权限,直接接管整个网站,进而执行任意程序。
WordPress一直没有修改此权限管理上的设计漏洞,因此它也可能影响其它的外挂程序,但因WooCommerce的用户众多,而成为RIPS的研究对象。