某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析

文章目录

  • 前言
  • 一、抓包分析
  • 二、参数解析
    • 1.加密定位
    • 2.参数分析
  • 三、响应解密
    • 1.加密定位
  • 总结


前言

今天来水一篇文章,某站webpack打包类型,登录、数据解密参数keyCipher、keySM2Cipher。本文章仅供学习研究,如若侵犯到贵公司权益请联系[email protected]第一时间进行删除;各位朋友切忌用于一切非法途径,否则后果自行承担!


地址:地址就不放了,主要讲思路。。。

一、抓包分析

老规矩,打开登录框输入138****8888,1111111点击登录按钮进行抓包。
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第1张图片

当点击登录后,看第一条请求:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第2张图片
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第3张图片

看响应即可一目了然,当然,他的POST参数和响应如上图,参数没有名称,今天的任务就是找到post参数以及解密响应的数据,接下来寻找加密位置。

二、参数解析

1.加密定位

今天不一样,使用js搜索技巧——加密关键字“encrypt”搜索:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第4张图片

进入js文件找到疑似加密位置,打上断点:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第5张图片

重新抓包:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第6张图片
断住了,这里传入了五个参数,现在追到上一个堆栈看看:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第7张图片
发现参数o, u, c, t, f在这里可以全部找到:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第8张图片
打印一下n:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第9张图片
大概就是这个位置了,下面看看参数。

2.参数分析

打上断点,分析参数
u、c为固定值:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第10张图片
o、f也是固定值:false
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第11张图片
看一下t:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第12张图片
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第13张图片

在这里插入图片描述
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第14张图片

这里的处理逻辑:传入一个对象,转化成字符串,通过window.DCSAPPClientAPI.parseUtf8StringToArray处理得到最终的t值(数组)。
这里可以发现t的处理函数和n的处理函数在同一文件的window.DCSAPPClientAPI中,so,进去拿出来就好,这里县不急去扣js。因为e.data中可以看到loginPassword值是加密值,经过多次刷新断点,只有loginPassword会变化,所以先搞loginPassword的生成逻辑。

全局搜索一下loginPassword,两个位置,都打上断点:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第15张图片
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第16张图片
重新抓包:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第17张图片
这里是对密码‘1111111’进行了加密,单步执行,进入函数内部:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第18张图片
加密算法是AES-ECB模式,并且key也有,所以可以直接搞定:
本地执行结果:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第19张图片
网页结果:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第20张图片
本地 == 网页,结束!

接下来去搞今天的最终任务,post参数:
进入这个js文件:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第21张图片
发现有webpack特征
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第22张图片
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第23张图片
所以,简单的把JS扣完,处理一下,最终结果:
某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析_第24张图片

Python模拟登录,看是否能正常返回响应,登录代码实现:

# -- coding: utf-8 --
# @Time : 2021/9/12 12:35
# @Author : JaJa
# @Email: [email protected]
# @sinaemail: [email protected]
import execjs
import re
import time
import requests
import ddddocr

from JaJa.Tools import getJSCode

session = requests.session()
jscode = getJSCode('shanxi.js')



def txnCommCom():
    headers = {
        "Host": "xxx.gov.cn",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36"
    }
    gettxnurl = 'https://xxx.gov.cn/'
    res = session.get(url=gettxnurl, headers=headers).text
    path = re.search(r'
                    
                    

你可能感兴趣的:(JS逆向,node.js,javascript,python)