前言

最近学习的进度有点缓慢,前段时间研究了下极验的滑动验证的js,怎么说呢,难度还是可以的,之后会写关于极验的一个流程跟加密破解的过程,在这之前呢,我们先了解下另一个知识点---webpack,会对之后研究极验还是有点帮助的。本文会带着大家从了解到实战解决一个webpack打包的网站,网址aHR0cHM6Ly9zeW5jb25odWIuY29zY29zaGlwcGluZy5jb20v


一、webpack是什么?

webpack打包是前端js模块化压缩打包常用的手段,特征明显,比如

!function(x){function xx(n){return ..call(**.exports, ***, ***.exports, xx)}
}()

又或者更直观的表现n["xxx"]这种,你可以大概知道了这是webpack打包的js代码。那我们该怎么解决这类网站呢?说个通用的方法:

1.先去找加密网站的加密入口。这应该是加密网站都必须要做的

2.找到分发器的位置,或者说是加载器,就比如上方中的exports的位置

3.用到了哪些模块就导入哪些模块

4. 将函数入口的地方返回全局,最终返回

二、webpack实战

1.找到加密入口

此网站登录密码是加密的(账号密码随意写都可以,只是了解密码加密的原理,无需注册),我们第一步如标题,先找到加密入口

我们可以看到password的加密方式,Object(o.a)(t),而上方var o = n("MuMZ");是不是有点眼熟,这不是巧了么,这时候我们开始走第二步,看看是不是我们想象中的那样。

2.找到分发器的位置

怎么找?我们此时将其他断点都取消,我们随意在如n("MuMZ")这样的前方打上断点,直接刷新页面,我们进入这个方法中,如下图所示

进去之后我们找到了如下图的分发器的位置

我们把!function自执行的代码全部copy下来,执行的时候会出现window is not defined的报错,我们要做的是定义一下,window=global;要记得我们用到的是f这个函数

3.找模块

我们找到o的方法,上面我们说了var o = n("MuMZ"),如下图

这里我们就直接把整个MuMZ这个模块放入webpack中,然后调用这个模块。我们在外部定义一个变量名,在webpack中让这个变量名与f相等。

我们直接在最下方 sign('MuMZ')调用看报错,你会看到一个经典的报错Cannot read property 'call' of undefined,什么原因呢,是因为你缺少了模块,我们找报错的地方,会找到var r = n("XBrZ");,那我们直接全局搜索,找到后把这个模块继续放进去,继续运行,还出现刚才的经典报错,那就说明还有模块要找,如下图

我的天,这么多,这里我发现了一个让我开心的地方,标记出来的那些方法全在一个js文件中,那我就不一个个模块的去找了,我直接require这个js文件呗

4.返回全局

首先在nodejs中没有btoa,我们在控制平台上看下btoa有没有重新定义写法,这个网站因为是没有自定义写法的,那我们可以直接用buffer来转义,最后我们要把数据返回全局,在外部定义一个desc(),具体代码如下图


总结

这能算典型的webpack网站如何去解决的一个流程,无论里面是否混淆还是里面有很多环境检测,大致流程是这样,你要基于这个流程去解决内部复杂的问题,

webpack不能算是反爬的手段,掌握流程大致上就没有问题了。

JS逆向之webpack打包网站实战相关推荐

  1. Vue+Vue Router+Webpack打包网站基础页面

    Vue+Vue Router+Webpack打包网站基础页面 1.目录结构 2.package.json所需依赖包 {"name": "vue_router_webpac ...

  2. JS逆向之Webpack(二)

    JS逆向之Webpack(二) 难度: ⭐️ 网址如下 https://synconhub.coscoshipping.com/ 需要逆向的值: 登录请求的password 找到加密的位置 看起来想R ...

  3. vue.config.js配置,webpack打包配置详解

    注意: vue-cli3 脚手架搭建完成后,项目目录中没有 vue.config.js 文件,需要手动创建 第一步:手动创建vue.config.js文件, 一般放在和package.json同级目录 ...

  4. 有道js逆向(webpack,调用crypto库实现)【超级详细】

    目录 一.逆向请求参数 全局搜索sign: 二.解密返回参数 1利用node.js 内置密码库crypto 2利用webpack工具半自动扣js 话不多说,直接干 接口:aHR0cHM6Ly9kaWN ...

  5. JS逆向之Webpack 处理2

    本文参考链接:webpack逆向-中远海运-油猴中文网 这个难点在于入口函数调用库是从两个文件中调用的. 首先把入口函数扣出来 其中o.a,o=n("MuMZ"),全局搜索&quo ...

  6. 【JS逆向】某篮球网站返回内容解密

    前言 本文章内容仅仅提供学习与交流,严禁用于商业和非法用途,如侵权请联系删除!!! 一.目标 目标网址:aHR0cHM6Ly93d3cuY2JhbGVhZ3VlLmNvbS9kYXRhLyMvbGVh ...

  7. js逆向爬虫某openLaw网站

    1.解析思路: 按照常规步骤进行抓包:输入错误的账号密码,找到post/get请求地址->看请求表单数据是否加密->全局搜索加密关键字->找到与之相关联的js加密函数,扣出js代码 ...

  8. js逆向 - 某电商网站 fingerprint 参数

    本文仅供学习交流,只提供关键思路不会给出完整代码,严禁用于非法用途,若有侵权请联系我删除! 目标网站:aHR0cHM6Ly93d3cuamQuY29tLw== 目标接口:Cmh0dHBzOi8vYXB ...

  9. 爬虫:JS逆向之Webpack-乾坤大挪移

    本教程仅供技术研究参考,勿做它用! 网上看了几个webpack逆向的教程,写的比较跳跃,初学者实操起来会感觉有点跳跃,重新理了一下,方便初学者一步一步验证. 技术门槛:会使用nodejs调试代码,会浏 ...

最新文章

  1. Java--对象与类(三)
  2. phpinfo.php ctf,这你不是你所常见的PHP文件包含漏洞(利用phpinfo)
  3. Spring AOP动态代理-切面
  4. OpenCV中Mat属性step,step1,elemSize,elemSize1
  5. 需求实在太旺盛,三星电子考虑扩大在华芯片产能
  6. Android Studio: Debug Android SDK Source Code
  7. Microsoft Dynamics CRM server 2013 一般销售流程之 报价单功能详解
  8. 大厂高级前端面试题答案
  9. leetcode 236. 二叉树的最近公共祖先LCA(后序遍历,回溯)
  10. 字符串的切割操作(strtok,split)
  11. IntelliJ IDEA 12 与 Tomcat7 配置
  12. python exec函数 自动代码规范_Python 开发编码规范
  13. C++——动态内存分配new--delete
  14. CCS Product ****** is not currently installed and no compatible version is available 报错调试
  15. LoRa无线通信设计(一)原理
  16. 工业3D互联网可视化三维数字化智能工厂管理系统
  17. web版ppt制作插件impress.js源码注释翻译
  18. MySQL 查询各科前三名
  19. 爬虫项目实操五、用Scrapy爬取当当图书榜单
  20. memcpy的F libc : FORTIFY: memcpy: prevented异常分析处理

热门文章

  1. android 多种形式定时轮训工具类
  2. OBIEE分析开发-使用Echarts展现地图1
  3. ubuntu使用再生龙进行系统盘克隆
  4. 蓝牙spc 5.2新特性总结-LE Audio
  5. js将url地址中的信息转化为对象obj
  6. shell图书管理系统
  7. 200个可爱的人像Lightroom预设让照片拥有一个新的风格
  8. dB、dBm、dBw的区别
  9. 特约专栏 | ASIL分解和应用
  10. php里opendir 返回值,php 目录遍历opendir函数