今日网站

aHR0cHM6Ly93ZWIuemtoMzYwLmNvbS9saXN0L2MtMjYwMTg2Lmh0bWw/c2hvd1R5cGU9cGljJmNscD0x

这个网站是在某交流群看到的,随手保存下来作为今天的素材

抓包分析与加密定位

先看看抓包的结果,可以看到请求的header中包含两个未知的参数,分别是zkhszkhst进一步检索参数zkhstzkhs,可以发现这两个参数的值没有做过混淆

并且都有对应的搜索结果

可以在文件中找到下面这几个关键位置

加密分析

在逻辑里比较明显的是

e.headers.zkhs = o,e.headers.zkhst = r

这行代码预示我们要分析的是or这两个变量

这两个变量的赋值分别可以在上面的 js 逻辑中找到

o = u()("body=".concat(i, "&params=").concat(o, "&sign_token=").concat(r), r)
r = Object(s.f)("zkhst")

接下来只要单点调试即可,先来看o的生成

o的逻辑是将所有的参数拼接,传入u()中计算

这里的参数是一个逗号表达式,最后得到的传入参数是r

r = ("body=".concat(i, "&params=").concat(o, "&sign_token=").concat(r)

这里较为明显的未知参数是body以及sign_token

可以通过断点分析得到下面的结果,这个结果就是计算后的r

body={"brandId":"","catalogueId":"260186","cityCode":350100,"clp":true,"extraFilter":{"inStock":false,"showIndustryFeatured":false},"from":0,"fz":false,"keyword":"","productFilter":{"brandIds":[""],"properties":{}},"rangeFilter":null,"searchType":{"notNeedCorrect":false},"size":20,"sort":0}&params={"traceId":"213681131613962067063"}&sign_token=799c9842f09c490196047064e10dead8

网站的开发很贴心了,还在逻辑里加了console.log

bodyparmas都是查询参数,body中包含了城市信息之类的内容,这个需要根据要爬取的内容修改

除此之外还有sign_token未知,这个就是另一个要分析的参数zkhst

zkhst 获取

经过调试得到下面这个结果,在定位的js中有一个switch控制流

918行,会进行一次判断,如果r = Object(s.f)("zkhst")没有获取到值,会进入到Object(l.i)();这个逻辑。如果有值会break进入926行的逻辑。

所以需要先把Object(s.f)("zkhst")的值变为undefinde,进入s.f中,可以看到下面这段逻辑

 h = function(t{
        t = document.cookie.match(new RegExp("(^| )".concat(t, "=([^;]*)(;|$)")));
        return null != t ? decodeURIComponent(t[2]) : null
    }

可以得到zkhst是从cookie中得出的,直接清除cookie中的zkhst就能进入生成的逻辑

所以清除浏览器缓存/cookie

顺利进入(l.i)(),可以看到下面这串逻辑

并且在network中也的到印证这个zkhst是由页面请求返回得到的。

至此两个加密参数均已得到,就可以获取页面的数据了。

好了,今天的文章就到这里了,我们下次再会~

©著作权归作者所有:来自51CTO博客作者mob604756e9577d的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Python 爬虫进阶必备 | 某爬虫练习站之 js 混淆
  2. Python 爬虫进阶必备 | 某k12注册加密参数分析
  3. Python 爬虫进阶必备 | 某壁纸网站请求头参数与用户指纹 sign 加
  4. css选择器的优先级解释以及结构伪类的用法
  5. Kafka参数broker.id详解
  6. 数十亿用户的Facebook如何进行贝叶斯系统调优?
  7. js第一课 引入方式 参数 函数
  8. js引入方式、变量与常量的声明与使用方式、函数与高阶函数,实例演
  9. 分位数回归, Oaxaca分解, Quaids模型, 非参数估计程序

随机推荐

  1. android videoview 没有画面的一个原因
  2. Android系统上实现应用程序的静默安装
  3. LinearLayout和RelativeLayout
  4. Android(安卓)studio使用与设置
  5. android 使用DigestUtilsmd5加密的方法
  6. Android之事件分发机制总结
  7. 善用Android预定义样式
  8. android 页面显示不下时怎么办?
  9. 如何在多个LinearLayout中添加分隔线?
  10. Android五岁了