JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)

声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!

目标网站:
aHR0cDovL3d3dy50bXNmLmNvbS9pbmRleC5qc3A=

 先打开F12,输入链接,回车。目标参数如下:
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第1张图片
 搜索其中的参数,发现基本搜不到,猜测均被混淆。查看堆栈如下:
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第2张图片
 经过分析,generateData比较可疑,点开看下
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第3张图片

 在上图所示处下断点,清空cookie后刷新页面(因为这个请求返回了cookie,所以需清空cookie才能断上),可以看到参数位置确实在这里。单步运行到a[Sj](f),控制台看下
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第4张图片
 a为一个对象,这里调用了它的getpackStr方法,F11跟进看下
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第5张图片

 继续运行到这,调用了getMachineCode方法,即上面的红框部分,看下分别是什么
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第6张图片

 看着像是获取浏览器环境信息,跟进看看
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第7张图片
 经分析,第一个为获取cookie键为BSFIT_UUID的值,这里为空,返回undefined,因此三元运算为true,返回new w($f,Mj),w对象如下
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第8张图片
 其它的同理,这里就不一一分析了
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第9张图片
 跳出getMachineCode方法,继续运行
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第10张图片
 这里又是一堆浏览器指纹信息,而且已经生成了。这里先不管,篇幅原因,下一篇再分析。
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第11张图片
 最后将e排序并返回,图3中的 a[Sj](f) 即为e,继续往下运行
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第12张图片
 这一大段for循环,将t中符合一定逻辑的push到f中
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第13张图片
 最后将f传入下方的ha方法中,跟进看下
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第14张图片
 tf永远不等于bh和ch,所以switch总会进入到default中,这里即在构造参数,最终构造出如下:
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第15张图片
 最后再经过一定运算,通过SHA256散列后返回
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第16张图片
 加上时间戳
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第17张图片
 再加上刚才的散列,形成最终全部的参数
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第18张图片
 后面就是拿去请求了
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)_第19张图片
 前面的this[Y],下一篇再写,大家可以自己先试下~

 同时欢迎关注我的公众号“逆向新手”,逆向系列将持续更新!

你可能感兴趣的:(JS逆向 | 某售房网高度混淆及浏览器指纹分析(一))