js逆向案例一二

目录

      • 零、概述
      • 一、请求参数|Cookie|Referer校验(⭐)
        • 1、案例1_有道翻译
        • 2、案例2_百度翻译
      • 二、参数响应加密解密AES、DES、RSA(⭐)
        • 1、案例3_建筑市场_AES
        • 2、案例4_毛毛租_AES
        • 3、案例5_翼龙登录_DES
        • 4、案例6_房天下登录_RSA
      • 三、其它js混淆(⭐⭐)
        • 下一篇文章待发布

零、概述

  • 难度系数一颗星,简单的js逆向,适合初级新手练习,每个案例1小时内可完成破解
  • 涉及到md5、aes、des、rsa,本地需安装node环境,然后再安装crypto-js库: npm install -g crypto-js
  • base64、des、aes、rsa、eval加密解密、url编码工具
  • eval之js的加密解密工具
  • sojson_v6、v5、v4加密工具
  • obfuscator混淆
  • 各种useragent合集
  • js当中遇到base64、window.btoa、window.atob处理方法
  • python还原AES、DES、RSA等加密解密代码
  • 严禁带着攻击目的对网站进行研究或对网站造成不稳定等影响,请遵循网站所规定的一切robots.txt协议,建议仅限学习练习

一、请求参数|Cookie|Referer校验(⭐)

1、案例1_有道翻译

  • (1)案例网址: 点击网址,execjs调用或python还原逻辑
    js逆向案例一二_第1张图片

  • (2)案例反爬点:请求参数salt、sign、Its、bv可变,请求头cookie和referer反爬校验
    js逆向案例一二_第2张图片

  • (3)案例分析:采用salt:关键词搜索精准定位js文件

    • 定位到js文件,通过搜索关键词发现r = v.generateSaltSign(n)这一段js即是生成参数salt、sign、Its、bv的方法
      js逆向案例一二_第3张图片
    • 点击进入 v.generateSaltSign(n)这个方法,直接找到salt、sign、Its、bv这4个参数js的生成方法,有两种可以解析加密参数,1种是通过直接扣出这段js通过execjs来解析,另1种是通过python还原js逻辑解析;由于该段js逻辑加密一目了然,所以我们选择python还原js逻辑进行解析
      js逆向案例一二_第4张图片
    • cookie、Referer校验,其中cookie是由首页Set-Cookie而得,referer直接加在header里即可,较简单
      在这里插入图片描述
    • 最终代码、待上传

2、案例2_百度翻译

  • (1)案例网址: 点击网址,execjs调用
    js逆向案例一二_第5张图片
  • (2)案例反爬点:请求参数sign、token可变,请求头cookie反爬校验
    js逆向案例一二_第6张图片
  • (3)案例分析:采用sign:关键词搜索精准定位js文件,直接找到sign、token生成位置
    js逆向案例一二_第7张图片
    • 点击进入f(n),找到sign生成的js,其中这段js差i参数,i就是window.gtk为定值,还差个n函数,点击扣出即可,这里js较长,直接用execjs调用解析即可
      js逆向案例一二_第8张图片
    • cookie、token,toke可以从页面响应里直接搜到;逻辑上是第一次请求首页拿到cookie,再带着cookie进行第二次请求,正则提取响应里面的token即可,第三次请求即可正常翻译
      在这里插入图片描述
      js逆向案例一二_第9张图片
    • 最终代码、待上传

二、参数响应加密解密AES、DES、RSA(⭐)

1、案例3_建筑市场_AES

  • (1)案例网址: 点击网址,execjs调用,或者python还原
    js逆向案例一二_第10张图片

  • (2)案例反爬点:Cryptojs_AES_CBC加密, 响应加密返回的hexStr
    在这里插入图片描述

  • (3)案例分析:aes解密既可以python还原也可以通过js调用

    • 方法1:选择python直接还原aes,直接搜索’decrypt’,找到key和iv,进行还原
      js逆向案例一二_第11张图片
      js逆向案例一二_第12张图片

    • 方法2:js还原,通过XHR断点来定位, 翻页断点看堆栈右侧栏的堆栈Call Stack,往堆栈前面的方法撒鱼式打断点,然后调试
      js逆向案例一二_第13张图片js逆向案例一二_第14张图片

    • 逐步调试,直接找到关键方法,熟悉加密的,一眼就能看出这是cryptojs里面的aes之cbc加密模式,根据js的逻辑enc.Hex.parse,可以判断出响应式16进制的字符串。选择用python的aes库还原
      js逆向案例一二_第15张图片

    • 本案例不用扣js,对于CryptoJS加密解密的了解,直接找出key,iv,再确定加密模式,然后写js代码即可。aes校验工具
      js逆向案例一二_第16张图片

    • 最终代码、待上传

2、案例4_毛毛租_AES

  • (1)案例网址: 点击网址,execjs调用或python直接还原
    js逆向案例一二_第17张图片

  • (2)案例反爬点:Cryptojs_AES_CBC加密, 响应加密返回的base64Str,请求参数也是相同加密
    js逆向案例一二_第18张图片

  • (3)案例分析:通过搜索词encrypt断点来定位,直接找到js关键加密解密的位置,此为cryptojs里面的aes之cbc加密解密模式,响应是base64字符串(选择用python的aes库还原)

    • aes加密,直接找key,iv,mode方式,用python还原即可
      js逆向案例一二_第19张图片
    • 本案例既可以用js,也可以用python直接还原加密解密
      js逆向案例一二_第20张图片
    • 最终代码、待上传

3、案例5_翼龙登录_DES

  • (1) 案例网址:点击网址js逆向案例一二_第21张图片
  • (2)案例反爬点:des加密登录密码参数,暂不做图形验证
    js逆向案例一二_第22张图片
  • (3)案例分析:直接搜索关键词encrypt精准定位,扣js或者python还原都可以
    js逆向案例一二_第23张图片
    js逆向案例一二_第24张图片
    • 最终代码、待上传

4、案例6_房天下登录_RSA

  • (1)案例网址: 点击网址,execjs调用或python直接还原
    js逆向案例一二_第25张图片

  • (2)案例反爬点:rsa加密登录密码参数、referer校验
    js逆向案例一二_第26张图片

  • (3)案例分析:方法1:由于已经知道是RSA加密,可以选择用python还原,对于python还原的RSA有两种方式,一种是js对应的是setPublicKey已事先生成,另一种是new RSAKeyPair的方式。也可以扣js

    • 方法1: 尝试new RSAKeyPair搜索找到类公钥复制下来即可,用python还原测试成功
      js逆向案例一二_第27张图片
      js逆向案例一二_第28张图片
      尝试直接搜索setPublicKey找到公钥,用python还原(此种方法实践后发现与网页生成结果不一致,舍弃)。
      js逆向案例一二_第29张图片js逆向案例一二_第30张图片
    • 方法2:扣js通过搜索关键词pwd:,找到关键位置
      js逆向案例一二_第31张图片
    • 点击进入encryptedString方法,直接将RSA整个js文件扣下来,其中key_to_encode也通过全局搜索,扣出相应js代码
      js逆向案例一二_第32张图片
      js逆向案例一二_第33张图片
    • 本案例直接用js调用加密,拼接js代码,运行如下;
      js逆向案例一二_第34张图片
    • 最终代码、待上传

三、其它js混淆(⭐⭐)

下一篇文章待发布

你可能感兴趣的:(SpiderCrawl,javascript,python)