锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务,锦州广厦维修电脑,公司IT外包服务
topFlag1 设为首页
topFlag3 收藏本站
 
maojin003 首 页 公司介绍 服务项目 服务报价 维修流程 IT外包服务 服务器维护 技术文章 常见故障
锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务技术文章
看我如何在短时间内对Shopify五万多个子域名进行劫持

作者: 佚名  日期:2018-10-19 17:48:57   来源: 本站整理

 
今天我要分享的是5万多个Shopify平台子域名劫持漏洞的发现过程。首先,我要说明的是,该漏洞不仅只存在于Shopify平台系统,还存在其它几个云服务平台系统中。在过去几周时间里,我们陆续联系了存在漏洞的各家厂商,Shopify平台的快速反应、认识透彻和持续跟进的处置能力给我们留下了深刻印象。
Shopify 是一个面向中小型企业的多渠道电商服务平台,它集建站、销售和宣传服务,帮助用户通过线上网店或社交媒体随时随地销售产品,Shopify 为全球 60 多万商家提供了线上服务,在高峰期每秒处理 8 万个请求。
Shopify的子域名劫持漏洞
在Shopify的域名测试中,如果遇到以下两种网页响应,那么目标网站就可能存在子域名劫持漏洞:


那接下来,如何来确定是否真的存在漏洞呢?
首先,需要来看两种DNS记录信息:
一种是网页应用名称映射,也就是myshopname.myshopify.com的域名别名记录;
另外就是看DNS映射,也就是shops.myshopify.com的域名别名记录。
当然,还有其它方法,我们在此不作详解。我们就来认真看看以上两种DNS记录信息。
网页应用名称映射
该例子中,我们可以为指向buckhacker.shopify.com的shop.buckhacker.com映射设置一条别名记录(CNAME)。以下是对shop.buckhacker.com的nslookup信息:

如果在Shopify记录中,商店名称(像这里的buckhacker)未被注册认领(claim),那么,我们可以注册认领它,然后进行子域名劫持测试。那如何知道某个商店名称是否被注册认领(claim)了呢?
在Shopify账号注册阶段,需要强制填写你的商店名称(Store Name),填写之后,那么Shopify将会把这个Store Name分配为其免费的二级域名地址,如你填写的Store Name是bag,其二级域名就是http://bag.myshopify.com。在这里,如果你填写的商店名称是被别人注册过的,那么,系统会有提示。就像以下两种不可用和可用的商店名称注册状态:


在该过程中,如果我们开启了Burp抓包的话,可以看到一个发往 REST API的请求,以下两种操作分别对应了两种响应信息:
#1 Unavailable ({“status”:”unavailable”,”message”:null,”host”:”buckhacker.myshopify.com”})
#2 Available ({“status”:”available”,”message”:null,”host”:”buckhacker2.myshopify.com”})
这种方式,能简单测试某个商店名称是否可注册。为此,可以写个小脚本来跑跑,我们的脚本可点此下载。
该场景中,我们以之前我们注册的商店名buckhacker来做演示。如果这个过程中,我们发现某个商店名称是可继续注册的,那么,我们只需在Shopify管理面板中去连接它即可。也就是在如下管理后台中的 “Online Store” 下点击 “Domains”:

然后点击 “Connect existing domain”:

再在其中填写出可能存在漏洞的对应域名:

点击“Next” 和 “Verify Connection”:

这之后,会成功跳转到以下页面:

到了这步,就完成了Shopify的一个子域名劫持测试了。这种情况下,存在漏洞的原因就是,这条别名记录是存在的,而且商店名称是可注册的,这样子域名劫持漏洞很少见,因为你面对的目标是Shopify账号注册时要填写的商店名称,所以,其前提是,需要原来用户对之前的账户完全删除或执行域名变更,才有可能存在子域名劫持漏洞。经过调查,我们发现大约有2%的Shopify网站存在这样的错误配置问题。DNS映射
在这个例子中,存在子域名指向shops.myshopify.com的一条CNAME记录,如:

这算是Shopify上常见的子域名劫持情况了,这种配置下,我们可以创建一个可注册的商店名,再按照像前述的测试方式,在Shopify管理后台中去连接管理其对应的域名。以下是其操作方式,如在我的后台中去连接sales.buckhacker.com:

成功连接后的确认:


大规模测试发现
在之前的文章中,我们介绍过使用Rapid7的Sonar和FDNS数据集工具可以很方便地进行一些漏洞测试利用。

Rapid7的FDNS数据集中包含了大量的CNAMES记录,所以,其实我们要做的就是在这个数据集中寻找CNAME指向shop.myshopify.com或者myshopname.shopify.com的子域名,围绕这两个域名的相关记录,再深入检查是否存在子域名劫持漏洞。

所有的漏洞测试步骤都可用一条命令来实现:
zcat $FDNS_DATASET | strings | grep shopify.com | cut -d “\”” -f 8 | grep -v “shopify.com” | while read subdomain; do python3 ShopifySubdomainTakeoverCheck.py $subdomain; done
这里,我们要解释一下,虽然存在其它子域名劫持漏洞的发现工具,但我们还是自行开发了这个工具来做测试,原因在于,其它工具都是基于Shopify的错误响应页面来检测的,这样会导致大量误报,在这些大量误报中仅有小部分是存在子域劫持漏洞的。我们的脚本和方式虽然简单,但执行了三种检查,即错误响应页面检查、CNAME记录检查和 REST API请求检查 ,最终运行结果相对于更加准确。
如果按照2017年版本的FDNSv2数据集来跑,最终的检测结果非常之多:大约有超过55,000个Shopify子域名存在子域名劫持漏洞。然后,从这些结果中,我们就可以对照数据来判断其它厂商的相关域名是否中招了。当然了,这种类似的漏洞检测方式,也可以适用于对其它域名注册提供商的检查。
总结
这种方式的检测手段,可以大概了解某个目标厂商存在的子域名劫持漏洞情况。在云服务时代,除了传统的进程和堆栈的系统漏洞研究之外,还需要一些新的漏洞研究方法,提高思维高度宽度。抽象点说,整个云服务平台就是一个广泛的操作系统
漏洞上报进程
2018.8.21    通过HackerOne将漏洞上报给Shopify
2018.8.21    Shopify初步响应
2018.8.23   Shopify后续反馈
2018.9.10   公开漏洞
 



热门文章
  • 机械革命S1 PRO-02 开机不显示 黑...
  • 联想ThinkPad NM-C641上电掉电点不...
  • 三星一体激光打印机SCX-4521F维修...
  • 通过串口命令查看EMMC擦写次数和判...
  • IIS 8 开启 GZIP压缩来减少网络请求...
  • 索尼kd-49x7500e背光一半暗且闪烁 ...
  • 楼宇对讲门禁读卡异常维修,读卡芯...
  • 新款海信电视机始终停留在开机界面...
  • 常见打印机清零步骤
  • 安装驱动时提示不包含数字签名的解...
  • 共享打印机需要密码的解决方法
  • 图解Windows 7系统快速共享打印机的...
  • 锦州广厦电脑上门维修

    报修电话:13840665804  QQ:174984393 (联系人:毛先生)   
    E-Mail:174984393@qq.com
    维修中心地址:锦州广厦电脑城
    ICP备案/许可证号:辽ICP备2023002984号-1
    上门服务区域: 辽宁锦州市区
    主要业务: 修电脑,电脑修理,电脑维护,上门维修电脑,黑屏蓝屏死机故障排除,无线上网设置,IT服务外包,局域网组建,ADSL共享上网,路由器设置,数据恢复,密码破解,光盘刻录制作等服务

    技术支持:微软等