当前位置 : 主页 > 编程语言 > python >

js逆向案例

来源:互联网 收集:自由互联 发布时间:2022-10-14
js逆向案例 目录 零、概述 一、请求参数|Cookie|Referer校验(⭐) 1、案例1_有道翻译 2、案例2_百度翻译 二、参数响应如何获取AES、DES、RSA(⭐) 1、案例3_建筑市场_AES 2、案例4_毛毛租_

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(232, 232, 232); background: rgb(249, 249, 249);">严禁带着抓取目的对网站进行研究或对网站造成不稳定等影响,请遵循网站所规定的一切robots.txt协议,建议仅限学习练习

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

    1、案例1_有道翻译

    (1)案例网址: 点击网址,execjs调用或python还原逻辑

    js逆向案例_加密解密

    (2)案例反爬点:

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

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

    • 定位到js文件,通过搜索关键词发现r = v.generateSaltSign(n)这一段js即是生成参数salt、sign、Its、bv的方法
    • js逆向案例_搜索_02

    • 点击进入 v.generateSaltSign(n)这个方法,
    直接找到salt、sign、Its、bv这4个参数js的生成方法

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

    js逆向案例_加密解密_03

    • cookie、Referer校验,其中cookie是由首页Set-Cookie而得,referer直接加在header里即可,较简单
    • js逆向案例_python_04

    • 最终代码、待上传
    2、案例2_百度翻译
    • (1)案例网址: 点击网址,execjs调用
    • js逆向案例_加密解密_05

    • (2)案例反爬点:
    请求参数sign、token可变,请求头cookie反爬校验
    • (3)案例分析:采用​​sign:​​关键词搜索精准定位js文件,直接找到sign、token生成位置
    • js逆向案例_python_06

    • 点击进入f(n),找到sign生成的js,其中这段js差i参数,i就是window.gtk为定值,还差个n函数,点击扣出即可,这里js较长,直接用execjs调用解析即可
    • js逆向案例_加密解密_07

    • cookie、token,toke可以从页面响应里直接搜到;逻辑上是第一次请求首页拿到cookie,再带着cookie进行第二次请求,正则提取响应里面的token即可,第三次请求即可正常翻译
    • js逆向案例_python_08


    • js逆向案例_python_09

    • 最终代码、待上传

    二、参数响应加密解密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逆向案例_python_15

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

    js逆向案例_搜索_16

    最终代码、待上传

    2、案例4_毛毛租_AES

    (1)案例网址: 点击网址,execjs调用或python直接还原

    js逆向案例_搜索_17

    (2)案例反爬点:

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

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

    • aes加密,直接找key,iv,mode方式,用python还原即可
    • js逆向案例_搜索_18

    • 本案例既可以用js,也可以用python直接还原加密解密
    • js逆向案例_python_19

    • 最终代码、待上传
    3、案例5_翼龙登录_DES
    • (1) 案例网址:点击网址
    • js逆向案例_加密解密_20

    • (2)案例反爬点:​​des加密登录密码参数,暂不做图形验证​​
    • js逆向案例_搜索_21

    • (3)案例分析:直接搜索关键词​​encrypt​​​精准定位,扣js或者python还原都可以
    • js逆向案例_加密解密_22


    • js逆向案例_python_23

    • 最终代码、待上传
    4、案例6_房天下登录_RSA

    (1)案例网址: 点击网址,execjs调用或python直接还原

    js逆向案例_加密解密_24

    (2)案例反爬点:

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

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

    • 方法1: 尝试​​new RSAKeyPair​​​搜索找到类公钥复制下来即可,用python还原测试成功
    • js逆向案例_python_25


    • js逆向案例_python_26

    • 尝试直接搜索​​​setPublicKey​​​找到公钥,用python还原(此种方法实践后发现与网页生成结果不一致,舍弃)。
    • js逆向案例_python_27

      js逆向案例_加密解密_28

    • 方法2:扣js通过搜索关键词​​pwd:​​​,找到关键位置
    • js逆向案例_python_29

    • 点击进入encryptedString方法,直接将RSA整个js文件扣下来,其中​​key_to_encode​​​也通过全局搜索,扣出相应js代码
    • js逆向案例_加密解密_30


    • js逆向案例_加密解密_31

    • 本案例直接用js调用加密,拼接js代码,运行如下;
    • js逆向案例_加密解密_32

    • 最终代码、待上传

    三、其它js混淆(⭐⭐)

    下一篇文章待发布


上一篇:CAD 在openlayers 中实现思路
下一篇:没有了
网友评论