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

目标网站:
aHR0cDovL3d3dy50bXNmLmNvbS9pbmRleC5qc3A=

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

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

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

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

 同时欢迎关注我的公众号“逆向新手”,逆向系列将持续更新!
JS逆向 | 某售房网高度混淆及浏览器指纹分析(一)

相关文章:

  • 2021-11-14
  • 2021-10-27
  • 2022-12-23
  • 2021-11-27
  • 2021-11-29
  • 2021-04-07
  • 2022-01-07
  • 2022-12-23
猜你喜欢
  • 2021-07-26
  • 2021-07-31
  • 2021-12-12
  • 2021-07-21
  • 2022-12-23
  • 2022-01-08
  • 2022-12-23
相关资源
相似解决方案