magento go是ebay旗下的一个电商平台,有超过200000活跃店铺。利用该越权漏洞,仅仅使用一个HTTP请求就可以给任意店铺添加管理员账号,从而实现免费购物的梦想。目前该漏洞已经修复。
首先创建两个测试店铺,其中一家店铺https://targetaccount.gostorego.com/的账号信息如下图所示。
在另外一个浏览器会话中,使用管理员账号mlitchfield73登陆第一家测试店铺,https://securatary.gostorego.com/。在账号管理中添加账号,并给予管理员权限。
下面就是见证奇迹的时刻,我们要把在securatary.gostorego.com店铺中添加的管理员账号变到targetaaccount.gostorego.com店铺中。
原始请求。
修改HOST字段为我们的攻击目标网店,这个案例中是targetaccount.gostorego.com。
服务器返回302跳转信息。
页面跳转到http://targetaccount.gostorego.com/的登陆页面 。现在我们就可以使用刚刚添加的账号登陆了。
可以看到我们的用户身份是http://targetaccount.gostorego.com的管理员。
现在使用targetaccount店铺原先的创始人账号gbamforth登陆,可以看到我们的管理员账号已经成功添加了。
Magento还支持用户对自己的店铺绑定域名。这次漏洞对绑定自己域名的用户也是有效的。
如果该域名不存在,返回的信息如下。
对于这次攻击我还提出了一种隐身模式。使用上述的攻击方法,我们可以使用自己创建的管理员账号登陆。之后我们的一些操作也都会被记录下来。使用隐蔽模式,我们修改商品价格,发放购物卡等等操作都会“模拟”成原店铺的创始人的操作,这样看起来就不会很可疑了。(原作者没有详细介绍所谓的隐身模式,个人觉得可能是在修改商品的时候同样存在这种方式的越权)
via http://www.securatary.com 翻译整理by litdg@freebuf