声明
本文仅供学习参考,请勿用于其他途径,违者后果自负!
前言
目标网站:aHR0cHM6Ly93d3cudG84dG8uY29tL25ld19sb2dpbi5waHA=
接口:aHR0cHM6Ly93d3cudG84dG8uY29tL25ld19sb2dpbi5waHA=
参数分析
抓包看到有两处加密,分别是val和pwd。
由于该请求不是xhr,所以没有办法在这里下xhr断点。只能通过搜索关键字去找加密的文件,搜索password会发现有很多js文件。通过观察js文件的名字,发现了端倪。
loginAndReg.js
命名的文件很可疑,跳入该文件继续搜索关键字。
一共7处,分别打上断点,重新请求。
断点断在133行,此时的usernum还是明文,F8跳到下一个断点,发现此时已经将密码的val设置为密文,val函数中的值是一个函数。看名字就知道是一个rsa加密,直接将明文传入生成密文。然后将密码设置为密文。
136行发现username也是同样操作,都是将加密后的结果设置为密文。
既然加密函数找到了,直接跳进观看加密逻辑。
将加密后的结果进行编码。
先把内层的函数拿下来,encodeURIComponent是js的自带函数直接使用就可以了。
继续跳入就可以看到rsa的全部逻辑都在这里了,直接cv到本地。
navigator未定义,直接在开头定义一个。
navigator = {};
重新加载代码发现window未定义。
同理,在开头定义一下。
window = this;
重新加载发现没有问题了。
然后把加密函数写一下
function rsaString(str) {
return encodeURIComponent(RSAUtilszb.encryptfun(str));
}
重新加载,运行。
最后得到结果。
这里只是将pwd进行了加密,username的加密也是一样的,将参数改变一下即可。