声明:本文只做技术交流,不提供源码,如有侵权,请告知删除,谢谢。
今天来看 亚马逊 登陆参数 metadata1 的 破解 加密位置。
目标网址:
https://www.amazon.cn/ap/signin?_encoding=UTF8&ignoreAuthState=1&openid.assoc_handle=cnflex&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.ns.pape=http%3A%2F%2Fspecs.openid.net%2Fextensions%2Fpape%2F1.0&openid.pape.max_auth_age=0&openid.return_to=https%3A%2F%2Fwww.amazon.cn%2F%3Fref_%3Dnav_ya_signin&switch_account=
目的:登陆参数 metadata1 的加密位置。
随便输入一个账号和密码,进行抓包分析:
请求URL:https://www.amazon.cn/ap/signin
请求方式:POST
请求参数:
/********************************************************************/
这是一篇面向新手的水文,读者可以先找找这个加密的位置,如果找到了,下文就没必要看了,如果实在找不到再看文章也可以。
/*******************************************************************/
确定真的要往下看吗?真的真的比较水哦!!!
全局搜索 metadata1 ,啥也没有,也不是 XHR加载的,用油猴也Hook不到关键位置,我们直接来分析这个字串吧:
ECdITeCs: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
除了冒号,其他的字符都符合 base64码表(base64码表:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=")里面的字符,那我们来解码试试:
确实有理由相信,这是经过base64编码后的字串,再用:拼接。
像上篇文章一样Hook window.btoa函数?你会发现,根本就Hook不住,可是明明调用了编码函数啊,为何?
很可能是它自己定义了另外的编码函数,并没有直接使用btoa,这时的你肯定想碰碰运气,全局搜索 'base64'试试。
忽略第一个,就剩另一个JS文件了,而且看预览,有个大数据,跟进去看看:
在这个js文件里面搜索base64,只有一个地方,看名字:encodeBase64,完全有理由相信 _Q0oQQO 是一个base64的编码函数,来看看是哪里定义的:
在文件内搜索时,注意点击 Aa 和 .*,这样可以排除一下干扰项。一下子就搜到了,如上图,我们在 return 的 位置打上断点:
再次输入用户名和密码,还有验证码,点击登陆,停在了断点的位置:
在控制台打印看看返回了什么:
这就有点像那个冒号后面的那一长串了,再跟堆栈看调用:
依然在控制台打印返回的值:
这就比较像之前的那个 metadata1 参数了。按F8运行,对比下提交的 metadata1 参数看看:
看上去确实是一致的,如果要验证可以先将调试时的结果赋值为变量a,将提交的参数值赋值为b,比对 a 和 b 的值是否相等即可。
经过比对,加密的位置就是这里:
return _O0QO + _S$zSs[19] + _lli11[_S$zSs[15] + (_S$zSs[4] + (_S$zSs[10] + _S$zSs[11]))](_SzZ$(_lli11[_S$zSs[12] + _S$zSs[20] + _S$zSs[13]](_lllLlL), _0o0QO));
代码我就不扣了,太掉头发了,这一大坨代码看着实在是眼花缭乱。
文章确实比较水,水得我都不好意思了。
明天讲讲怎么将这些不那么好看的代码变的好看一点,尽请期待。