一次前端JS加密泄漏导致的越权测试

0x01布景

测试历程中遭遇了一个会话系统,出于守密准绳这边没有截图,本身设想一哈。

0x02交易逻辑

系统机能很简明,即是完结用户A和用户B施行会话,而且能够观察往常的谈话纪录。浮现缺点的点也是在汗青纪录上,经历构造参数能够观察网站内搪塞用户的谈话纪录。

首先,用户倡导盘查汗青纪录的央求时,会发送如下的数据包,而且获得呼应:

能够看到效劳器返回了cid,也即是目下发送数据包的uid用户倡导过的会话称呼,全豹管三条。

再以后,效劳器紧接着发送了第二个数据包:

能够看到呼应包即是要盘查的会话纪录。交易逻辑到此施行停止。

0x03测试

不难想出,能够经历更换uid的方法来观察别人的谈话纪录。但我现实测试后觉察,在第一个数据包若是更换成别人的uid,是能够返回别人的会话称呼的。但到了第二个数据包,发送的uid参数经历了加密,末了了局近似于如下字符串:

zrApelW+58GcN+At5Ons+8EysUAU77xqxj9ko3m7XMo=

大概猜个base64,解出来觉察乱码,理当是加密后的base64。

经历F12观察交易运转央求了哪些文献,末了在一个js文献里觉察了AES加密的音信:

functiont(e){vart=v.enc.Utf8.parse("bPsoyIvIALTcy6OP"),i=v.enc.Utf8.parse(e),a=v.enc.Utf8.parse("W8m2J1I3pQUADWyA8s"),s=v.AES.encrypt(i,t,{iv:a,mode:v.mode.CBC,padding:v.pad.Pkcs7});returns.toString()}

曾经很显然了,这是一个CBC方法的AES加密,暗码是bPsoyIvIALTcy6OP,偏移量是W8m2J1I3pQUADWy,直接把加密后的密文用功具解出来:

这时刻思绪曾经很显然了,咱们能够构造其余人的uid来猎取汗青会话,再对uid施行上述AES加密,把适才猎取到的会话值也一并提交,就能够完结越权观察别人汗青纪录的功效。

0x04了局

测试胜利,无图~

原文链接:


转载请注明:http://www.aierlanlan.com/rzdk/1075.html