js反混淆 + 空中网案例

js混淆

  • js混淆:
    • 将js核心的相关代码进行变相加密, 加密后的数据就是js混淆之后的结果。
  • js反混淆:
    • 反混淆的线上工具(不理想, 不方便调试)
    • 浏览器自带的反混淆工具设置
      • 开发者工具的 settings -> Sources -> 第一项勾选上
      • 进行关键字的全局搜索 -> VMxx (就是反混淆后的代码)

在这里插入图片描述

在这里插入图片描述

空中网逆向分析案例

在针对空中网进行逆向分析后 (分析反混淆后 的代码)
将加密对应的js的进行了拷贝

  • 发现了一个data[‘dc’]不知道是什么, 后续处理:
    • 先全局搜索,(让页面刷新,然后再登录一次 ,获取页面完整全部的数据包) 结果太多不方便定位
    • 通过search搜索 data[‘dc’] 依然没有结果 分析可能是通过请求 拿到的 data[‘dc’]
    • 通过抓包工具 看每个包的Response 看哪个是返回一串字符串
    • 最后找到该包 后续再单独请求 获取到加密的最后一个参数 data[‘dc’]

在这里插入图片描述

import re

import execjs
import requests

url = 'https://sso.kongzhong.com/ajaxLogin?j=j&jsonp=j&service=https://passport.kongzhong.com/&_=1632367795997'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36',
    'Referer': 'https://passport.kongzhong.com/',
}

dc = requests.get(url=url, headers=headers).content.decode('utf-8')
# print(dc)
ex = 'dc":"(.*?)","kzmsg"'
dc = re.findall(ex, dc)[0]		# 获取 密钥
print(dc)
node = execjs.get()
pwd = '123456789'
ctx = node.compile(open('./空中网.js', encoding='utf-8').read())
funcName = 'getPwd("{0}","{1}")'.format(pwd, dc)
password = ctx.eval(funcName)
print(password)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值