js逆向案例

js逆向案例_小白JS逆向

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还原逻辑
    在这里插入图片描述

  • (2)案例反爬点:

    请求参数salt、sign、Its、bv可变,请求头cookie和referer反爬校验
    

    在这里插入图片描述

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

    • 定位到js文件,通过搜索关键词发现r = v.generateSaltSign(n)这一段js即是生成参数salt、sign、Its、bv的方法
      在这里插入图片描述

    • 点击进入 v.generateSaltSign(n)这个方法,

      直接找到salt、sign、Its、bv这4个参数js的生成方法
      

      ,有两种可以解析加密参数,1种是通过直接扣出这段js通过execjs来解析,另1种是通过python还原js逻辑解析;由于该段js逻辑加密一目了然,所以我们选择python还原js逻辑进行解析
      在这里插入图片描述

    • cookie、Referer校验,其中cookie是由首页Set-Cookie而得,referer直接加在header里即可,较简单
      在这里插入图片描述

    • 最终代码、待上传

2、案例2_百度翻译
  • (1)案例网址: 点击网址,execjs调用
    在这里插入图片描述

  • (2)案例反爬点:

    请求参数sign、token可变,请求头cookie反爬校验
    

    在这里插入图片描述

  • (3)案例分析:采用sign:关键词搜索精准定位js文件,直接找到sign、token生成位置
    在这里插入图片描述

    • 点击进入f(n),找到sign生成的js,其中这段js差i参数,i就是window.gtk为定值,还差个n函数,点击扣出即可,这里js较长,直接用execjs调用解析即可
      在这里插入图片描述
    • cookie、token,toke可以从页面响应里直接搜到;逻辑上是第一次请求首页拿到cookie,再带着cookie进行第二次请求,正则提取响应里面的token即可,第三次请求即可正常翻译
      在这里插入图片描述
      在这里插入图片描述
    • 最终代码、待上传

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

1、案例3_建筑市场_AES
  • (1)案例网址: 点击网址,execjs调用,或者python还原
    在这里插入图片描述

  • (2)案例反爬点:

    Cryptojs_AES_CBC加密, 响应加密返回的hexStr
    

    在这里插入图片描述

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

    • 方法1:选择python直接还原aes,直接搜索’decrypt’,找到key和iv,进行还原
      在这里插入图片描述
      在这里插入图片描述

    • 方法2:js还原,通过XHR断点来定位, 翻页断点看堆栈右侧栏的堆栈Call Stack,往堆栈前面的方法撒鱼式打断点,然后调试
      在这里插入图片描述在这里插入图片描述

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

    • 本案例不用扣js,对于CryptoJS加密解密的了解,直接找出key,iv,再确定加密模式,然后写js代码即可。aes校验工具
      在这里插入图片描述

    • 最终代码、待上传

2、案例4_毛毛租_AES
  • (1)案例网址: 点击网址,execjs调用或python直接还原
    在这里插入图片描述

  • (2)案例反爬点:

    Cryptojs_AES_CBC加密, 响应加密返回的base64Str,请求参数也是相同加密
    

    在这里插入图片描述

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

    • aes加密,直接找key,iv,mode方式,用python还原即可
      在这里插入图片描述
    • 本案例既可以用js,也可以用python直接还原加密解密
      在这里插入图片描述
    • 最终代码、待上传
3、案例5_翼龙登录_DES
  • (1) 案例网址:点击网址在这里插入图片描述
  • (2)案例反爬点:des加密登录密码参数,暂不做图形验证
    在这里插入图片描述
  • (3)案例分析:直接搜索关键词encrypt精准定位,扣js或者python还原都可以
    在这里插入图片描述
    在这里插入图片描述
    • 最终代码、待上传
4、案例6_房天下登录_RSA
  • (1)案例网址: 点击网址,execjs调用或python直接还原
    在这里插入图片描述

  • (2)案例反爬点:

    rsa加密登录密码参数、referer校验
    

    在这里插入图片描述

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

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

三、其它js混淆(⭐⭐)

下一篇文章待发布
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值