这篇文章给大家介绍利用Device ID实现对任意Instagram账户的再次劫持的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
通过对设备号(Device ID)的利用,用同一用户移动端设备发起暴力猜解,再次实现对任意Instagram账户的劫持,厉害了!由于该漏洞危害程度较上个漏洞相对较低。
漏洞原理
在上个漏洞中,可以看到,当用户发起密码重置(Password Reset)请求时,用户端移动设备会向Instagram后端发起一个确认码(Pass Code)请求,如下:
POST /api/v1/users/lookup/ HTTP/1.1User-Agent: Instagram 92.0.0.11.114 Android (27/8.1.0; 440dpi; 1080×2150; Xiaomi/xiaomi; Redmi Note 6 Pro; tulip; qcom; en_IN; 152830654)Accept-Language: en-IN, en-USContent-Type: application/x-www-form-urlencoded; charset=UTF-8Accept-Encoding: gzip, deflateHost: i.instagram.comConnection: keep-aliveq=mobile_number&device_id=android-device-id-here
仔细观察上述这个请求,可以发现,其中的终端设备号device ID是Instagram服务器验证终端用户的唯一识别码。当用户用他自己的手机设备发起这个请求时,这个设备号device ID会包含其中。以上请求可以说明,设备号device ID其实是Instagram后台用来验证验证用户身份,进而分发确认码的。
这里要说明的是,device ID是Instagram应用根据用户情况随机生成的一串字符串,那么,我的想法是:如果使用同一个用户终端移动设备,来针对不同Instagram账户发起上述密码重置请求,结果会怎样?经我测试发现,相同移动端设备会产生同一个device ID,可以用它来针对多个Instagram用户,发起上述请求,从而获得与各个Instagram用户对应的多个密码重置确认码。
漏洞利用
由于密码重置确认码有6位数,所以其范围为 000001 到 999999,共一百万种概率。所以,当我们用同一台用户端移动设备发起对多个账户的密码重置确认码请求时,理论上是提高了账户劫持的可能性。例如,如果使用同一台用户端移动设备去请求100,000个用户的密码重置确认码,那么,这样由于Instagram后端将会向这台移动端设备返回确认码,所以,这就有10%的成功率了。相应的,如果我们请求一百万个用户的密码重置确认码,那么,我们可以对确认码每次增加一位,逐位进行破解。
因此,攻击者针对一百万用户,用上述方式进行暴力请求,获得密码重置确认码的成功率绝对是100%的。另外,我们还要注意,确认码只在10分钟之内有效,所以攻击成功的窗口期只有10分钟。结合上个漏洞分析文章中提到的基础设施,引入该漏洞利用方法,一样可以实现对任意Instagram用户的劫持攻击。
关于利用Device ID实现对任意Instagram账户的再次劫持的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/tech/safety/222498.html