声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!
这篇文章寻找加密的参数,咸鱼哥已经写过了,请看 这里。只所以再写是因为那时候水平不够,对某个加密的字符串始终不知道怎么解密,也是看了别人的文章才知道有那么个库。要不然还真的无从下手,后来发现其实好简单的。让我来慢慢分析吧。
一、抓包分析,其接口地址在这里:
它的加密参数如下:
二、全局搜索 cid=,定位到这里:
三、打上断点后重新请求一次:
四、跟进堆栈,看到这里:
看到了cid和md5这两个参数都出来了,再次跟到上一层:
这里的"\x65\x76\x61\x6c",就是eval的十六进制形式,一切都豁然开朗,copy下来再控制台上运行一下:
结果出来了,当你兴致勃勃的在node上运行时,报错了:
splic不是一个函数,确实也没见过 splic这个函数,只见过 split,从这代码上看,也确实比较像split:
'D7BWAcHNgdwUwEbmAJgKwE40DZiBpvARkF3o4ABlIGYzSAWEcg6latagdmoA5gBjAOwCGAWzjVcgQgtAjUGAQt0AssYGq4wBtZgaSNgSAJY816gCZrBI3ruDqhkACICALgOAAzdQBs4AZ2AUK6bBwDKAWQAJYD44AA8rAEk9Dy9uFxsrAFc3BEcAex4AawB9Hi0hHVYAMQBPAEUAJRgrbCKAJwBVADkAYQA3UIANABUALQBxEoAFJphgcDq4NqjgF0cQUIALHSsXSBds0JdQ+3U+dRdFuD1nPnsBRxdRcGtF8cmI/atxlxogA==='['\x73\x70\x6c\x69\x63']('\x7c')
splic前面的这一串是个加密的字符串,有点像base64,但不是,肯定不是普通的字符串。这下尴尬了。
尴尬分割线
___________________________________________________________________
再分析,splic是一个字符串的方法,直接在浏览器上看呗:
跟进去后,来到这里:
将整个代码复制下来,添加到刚才的js文件里面去,再次运行,结果已经出来了:
至此,分析完毕,收工!
大家有兴趣的可以了解下 LZString 这个库,其github地址:
https://github.com/pieroxy/lz-string/
写这篇文章的目的只有一个:多用浏览器的控制台跟进函数,会有意想不到的收获!共勉。