如何自己创建一个网站,产品网站建设建议,erp项目管理软件,门户网站怎么开发web端登录页#xff1a;aHR0cHM6Ly93ZWliby5jb20vbG9naW4ucGhw 首先抓包#xff1a;随意输入账号密码。打开开发者工具会发现#xff0c;输入完账号密码之后会分别发一次get请求。 第二次请求的响应结果比较重要#xff0c;在后面做逆向会用到#xff0c;首先请求头中携带…web端登录页aHR0cHM6Ly93ZWliby5jb20vbG9naW4ucGhw 首先抓包随意输入账号密码。打开开发者工具会发现输入完账号密码之后会分别发一次get请求。 第二次请求的响应结果比较重要在后面做逆向会用到首先请求头中携带参数su: MTU3MTIzNDU2Nzg是由用户名进行了base64编码而来。该请求响应如下图
exectime: 7
nonce: OT1XYI
pcid: gz-578eb0e9e0cecca273279e66ad49add8c260
pubkey: EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443
retcode: 0
rsakv: 1330428213
servertime: 1649748442pubkey即为加密公钥。 接下来看登录请求 大部分参数都是前面的请求中有携带只有sp这个参数是做了加密的我们全局搜sp发现搜索结果众多试着搜索“sp:”, “sp”, “sp :”, sp 等等这里搜索“sp ”能搜到结果 可以看到sp是由b赋值的而b在上方出现两次赋值一个if一个else if也就是说b是经由其中一个生成再赋值给sp。我们在两个b的赋值位置都打上断点然后发送登录请求看断点生效位置。 很明显断在了第一个位置这里就是sp的加密入口b就是明文密码 而加密所需参数me.servertime, me.nonce都是前面提到的公钥也有了。把代码扒出 e.servertime me.servertime;
e.nonce me.nonce;
e.pwencode rsa2;
e.rsakv me.rsakv;
var f new sinaSSOEncoder.RSAKey;
f.setPublic(me.rsaPubkey, 10001);
b f.encrypt([me.servertime, me.nonce].join(\t) \n b)实例化的sinaSSOEncoder.RSAKey为函数bq 加密处为bt函数 两者都存在于index.js文件中并且处于同一个匿名函数内所以只需要把匿名函数内的代码全部扒出即可运行之后缺啥补啥。 function getsp(pwd) {key EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443var f new RSAKey;f.setPublic(key, 10001);b f.encrypt([1649745222, UQXOS8].join(\t) \n pwd)return b;}由于只是做测试我把加密入口的代码直接写死了如果要做实际登录记得每次都从前面的请求中获取js调试工具运行如下