声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!
目标网站:
aHR0cDovL3Bhc3Nwb3J0LjU4LmNvbS9sb2dpbg==
输入错误账号密码、抓包得知password、token、fingerprint被加密。
图1
直接搜索token的值,发现其就在之前的请求响应中,参数简单,直接构造即可。
图2
fingerprint同理,也在之前的请求响应cookie中。这里的finger2其实都是浏览器的环境信息,复制使用即可,或者看最后我的分析。
图3
全局搜索username,这里第三个JS文件比较可疑,进入再搜索username
图4
可以看到这里为参数的构成方法,我们在password前面打上断点,重新点击登录,成功断下。可以看到password为n.encrypt()这个函数加密所得,因此跟进这个函数看下
图5 在该函数的返回处(return)打上断点,按F8让它继续跑。可以看出传入的e为明文密码,o实际上就是那串固定的数字,而t和n都为undefined。i.rsaExponent和i.rsaModulus经过搜索与测试,均为固定值:
图6 实际上到这里,已经可以知道它使用了RSA的指数与模量进行加密(详细请自行百度了解),因此只要解密出encryptString这个函数即可,继续跟进看看
图7 总共就400多行代码,全部复制到本地,在开头加一句window=global;即可使用
图8 得出的密文与浏览器相同。这里插一句,这个RSA其实为一个变种,正常的RSA加密,每次返回的密文都不相同的。 最后再看下finger2吧。直接搜索,在这里打上断点,刷新页面,可以看到生成了结果
图9 跟进这个对象看一下,这里的Fingerprint2就是下方的t对象,它的get方法就是获取浏览器的环境信息
图10
随便跟进一个看一下
图11
具体就不扣了,环境信息全部写死也没关系,感兴趣的自己扣下哈。
— END —