SSO分析

0x00 前言

学习SSO。

0x01 未登陆的情况下淘宝登陆过程

登陆淘宝会跳转如下地址

https://login.taobao.com/member/login.jhtml?redirectURL=https://www.taobao.com/

登陆成功会设置一大堆.taobao.com域的cookie。

0x02 登陆的情况下淘宝登陆流程

会直接登陆上,通过上面知道设置一大堆.taobao.com域的cookie,让.taobao.com的站直接是登陆状态。共享之前登陆的session。

0x03 未登陆淘宝情况下天猫登陆流程

打开首页

https://www.tmall.com/

他会使用jonsp打开如下地址,对淘宝的登陆状态进行查询。

https://top-tmm.taobao.com/login_api.do?0.14341601766896606

jsonp的数据内容大部分为空,所以没有自动登陆,所以进入下面的手动登陆流程。

点击天猫登陆,会跳转到如下地址。

https://login.tmall.com/?redirectURL=https://www.tmall.com/

而里面有一个form表单

提交到如下地址。

https://login.taobao.com/member/login.jhtml?redirectURL=https://www.tmall.com/

使用burp抓取请求包看下

可以看到在这里输入账号密码登陆淘宝。burp查看数据方便,可是有关其他的数据太多了,返回包也不太方便,接下来直接使用开发者工具里面的networdk进行查看。如下图。

在淘宝登陆成功的情况下,login.taobao.com返回的html,会有带token的跳转,跳转到pass.tmall.com,地址如下。

https://pass.tmall.com/add?_tb_token_=f353e53a37a3e&ck1=&uc1=cookie14=UoTeOLn8Rt5hNg==;lng=zh_CN;cookie16=W5iHLLyFPlMGbLDwA+dvAGZqLg==;cookie15=WqG3DMC9VAQiUQ==;&login=true&opi=8.8.8.8&target=https://www.tmall.com/

再看看pass.tmall.com返回的数据包。

拿着token去请求pass.tmall.com,tmall登陆成功,设置了一大堆cookies,从而使天猫登陆成功。

0x04 登陆淘宝情况下登陆天猫流程

打开首页

https://www.tmall.com/

他会使用jonsp打开如下地址,对淘宝的登陆状态进行查询。

https://top-tmm.taobao.com/login_api.do?0.14341601766896606

jsonp的返回情况。

然后跳转到

https://tmcc.tmall.com/pass.htm

然后给了一个302跳转,如下图

跳转到

https://login.taobao.com/jump?target=https://tmcc.tmall.com/pass.htm?tbpm=1

跳到上面这个地址后,就很重要,因为login.taobao.com,接下来跳转的地址,是带有cookie的,带_tb_token_的。

https://pass.tmall.com/add?cookie2=13b223cb7a56cd346032ca5373e050cd&t=b9a4f9218e3db5cec0f95330b35817c6&_tb_token_=f353e53a37a3e&lid=xxxxxx&uc1=cookie14=UoTeOLn8SQINvg==;lng=zh_CN;&login=true&opi=11.128.43.24&target=https://tmcc.tmall.com/pass.htm?tbpm=1

如下图

设置一大堆cookie,最后tmall可以成功访问需要登陆的资源。

0x05 参考

https://www.jianshu.com/p/7c852e294a76