关于某壳找房webpack+RSA的js逆向

python之app逆向破解headers中的Authorization 身份验证 AES 下载好app 贝壳 2018-5-2 版本 1.还是先抓包 注册入口 2.用jadx-gui打开 直接用jadx-gui打开,因为没有加壳 并搜索关键字Authorization 点击右键 查找用例 3.开始Hook 从以下可以看出: 由 Appid + COLON_SEPARATOR + c 组成的,最后 Base64 所以从第一个入参开始跟踪 String encodeToString = ... 阅读详情

免责声明:仅用于学习逆向,严禁用于商业,如有侵权,联系作者删除
第一步:切换登陆方式
在这里插入图片描述
第二步:查看抓包情况
在这里插入图片描述
第三步:模拟登陆后抓包
在这里插入图片描述
查看发包参数,本次主要处理password这个参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
l是对字符串处理的方法
在这里插入图片描述
在这里插入图片描述
可以看出先对原密码进行了加密,然后用l方法对密码又进行了处理
将代码添加到浏览器的Overrides,方便改写调试
第四步:改写js并进行分析

var aaa;
!function(n) {
    var r = {};
    function i(t) {
        if (r[t])
            return r[t].exports;
        var e = r[t] = {
            i: t,
            l: !1,
            exports: {}
        };
        return n[t].call(e.exports, e, e.exports, i),
        e.l = !0,
        e.exports
    }
    i.m = n,
    i.c = r,
    i.d = function(t, e, n) {
        i.o(t, e) || Object.defineProperty(t, e, {
            enumerable: !0,
            get: n
        })
    }
    ,
    i.r = function(t) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
            value: "Module"
        }),
        Object.defineProperty(t, "__esModule", {
            value: !0
        })
    }
    ,
    i.t = function(e, t) {
        if (1 & t && (e = i(e)),
        8 & t)
            return e;
        if (4 & t && "object" == typeof e && e && e.__esModule)
            return e;
        var n = Object.create(null);
        if (i.r(n),
        Object.defineProperty(n, "default", {
            enumerable: !0,
            value: e
        }),
        2 & t && "string" != typeof e)
            for (var r in e)
                i.d(n, r, function(t) {
                    return e[t]
                }
                .bind(null, r));
        return n
    }
    ,
    i.n = function(t) {
        var e = t && t.__esModule ? function() {
            return t.default
        }
        : function() {
            return t
        }
        ;
        return i.d(e, "a", e),
        e
    }
    ,
    i.o = function(t, e) {
        return Object.prototype.hasOwnProperty.call(t, e)
    }
    ,
    i.p = "/",
    i(i.s = 20)
    aaa=i
}

定义一个全局变量,把加载器赋值到全局变量,查看该变量
在这里插入图片描述
控制台打印输出,可以看出导出了59个方法
在这里插入图片描述
加密位置
在这里插入图片描述
所有代码:
js太多,放图片代替
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

aaa(50).default();

// console.log(ddd);
function get_pw(mm) {

    var e = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCCB81pk1Go/d7K8unYqeB6YyQdDgIRsLji7BxlBfMC2U8/0lyOLxJ6sQb1RmKaILuxN0hRci4zWPfkkPhttWaogq3XABYiDYbx0843ge4D79pG21+qWplw43uHZNs0B6iUChJW1O3DDJPXGwj50L1ySTVt7G7iqsIr9PLZVRSZmQIDAQAB"
    ddd.ec.setPublicKey(e)
    // ddd.loginTicketId = ""
    ddd.publicKey = e
    // ddd.encodeVersion = "2.0"
    console.log(ddd.ec.encrypt(mm))
    return ddd.ec.encrypt(mm)
}

最后一步:模拟请求

import json
import requests
import execjs

headers = {
    "Accept": "application/json, text/plain, */*",
    "Accept-Encoding": "gzip, deflate, br",
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    'Content-Type': "application/json;charset=UTF-8",
    "Host": "clogin.ke.com",
    'Origin': 'https://su.ke.com',
    "Referer": "https://su.ke.com",
    "sec-ch-ua-platform": "Windows",
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-site',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
}

data = {"service": "https://ajax.api.ke.com/login/login/getuserinfo", "version": "2.0"}

# response = requests.post("https://clogin.ke.com/authentication/initialize", headers=headers, data=json.dumps(data))
response = requests.post("https://clogin.ke.com/authentication/initialize", headers=headers, json=data)
# print(response.json())

# 知识点
# 如果参数为JSON数据,可以直接传⼊json参数,它将⾃动编码并将Content-Type的置为application/json

# 如果data传递的参数为字符串,例如【json.dumps(payload)】,则request对参数进⾏url编码,Content-Type的值为None,所以
# data传字符串时,⼀定要在header中指定Content-Type为application/json

# 如果data传递的是字典、元组组成的列表或列表作为值的字典,则request对参数进⾏url编码,Content-Type的值为
# application/x-www-form-urlencoded


with open("rsa_webpack2.js", encoding="utf-8") as f:
    js_str = f.read()
password = execjs.compile(js_str).call("get_pw", "asd123456")
print(password)
data = {"service": "https://ajax.api.ke.com/login/login/getuserinfo",
        "mainAuthMethodName": "username-password",
        "accountSystem": "customer",
        "credential": {"username": "18511111111",
                       "password": password,
                       "encodeVersion": "1"},
        "context": {},
        "loginTicketId": response.json().get("loginTicketId"),
        "version": "2.0",
        "srcId": "eyJ0Ijoie1wiZGF0YVwiOlwiOGZlZDVjZTdlMTQ4MzIwMjNkNzQ4YTk4NTlkZmU0NzM3ZWJiNWUxNzYxYmVjZTY4ZTliN2U1N2M1YTk1NGI3MDczYTkzMDgxMmUzMjQ2MGZiMzgwZjg4ZWE3OTQ4MGExZWY2ZGU2MWMzNDgxMDg3ZjAyZDdmMzNiZTBhNjJmZThhNDNhNWQ5MzAyMmRmZjNjM2QyMzYwNGIxMDcwYTllYzlmZGJhODVjMmY4OGU4MTc4MzhkOWNiNTkwNjNiODA1MmM0MzBhMzhkOWVlYWRmMjZmNjk3ZDA3NjRhMmFhN2E5YzdjZDJhZDY5ZmUzZWM0NGE0ZjEwZjc5ZTUwNDAzM1wiLFwia2V5X2lkXCI6XCIxXCIsXCJzaWduXCI6XCIzZmIzZjM4ZlwifSIsInIiOiJodHRwczovL3N1LmtlLmNvbS8/dXRtX3NvdXJjZT1iYWlkdSZ1dG1fbWVkaXVtPXBpbnpodWFuJnV0bV90ZXJtPWJpYW90aSZ1dG1fY29udGVudD1iaWFvdGltaWFvc2h1JnV0bV9jYW1wYWlnbj13eXN1emhvdSIsIm9zIjoid2ViIiwidiI6IjAuMSJ9",
        "ticketMaxAge": 604800}

# response = requests.post("https://clogin.ke.com/authentication/authenticate", headers=headers, data=json.dumps(data))
response = requests.post("https://clogin.ke.com/authentication/authenticate", headers=headers, json=data)
print(response.text)

在这里插入图片描述

某房产平台登陆逆向分析之接口流程分析 近日,阿爬发现某平台的登陆流程较为有难度,于是想挑战一下,看是否能走通流程。 于是经过一定时间的分析,对它的登陆流程做出一下分析,供大家一起学习学习。 整体流程我分三个部分: 一.第一部分是登陆前初始化信息接口,主要做登陆和验证接口前的基本数据传递 二.第二部分是滑块验证接口,整个流程是走某验的滑块验证流程,做人机交互验证 三.第三部分是最终验证接口,验证输入的手机验证码以及账号是否正确 阅读详情

相关推荐

app逆向分析案例-95分

先把justtrusmeplus打开设置好95分,开始抓包,得到结果为: https://www.95fenapp.com/api_goods/list/v3.0?is_all=1&keywords=%E7%A7%91%E6%AF%94& page=1&page_size=20 &publish_timestamp=0 &scene=2&scene_type=95fen_android_search_personal&sn=SearchList

weixin_41763171的博客 2741

(JS逆向专栏九)某壳平台网站登入RSA

包含大部分js逆向场景 以及js逆向方式和类型

陌影_my的博客 1179

爬虫逆向实战小记——解决webpack实记

选择-政策规则。

记事本 2104

js逆向实战-贝壳网逆向登录

贝壳登录密码加密逆向

风中的指引的博客 2845

【前端安全】逆向webpack加密算法

webpack一个静态模块打包器,有入口、出口、loader和插件,通过loader加载器对js、css、图片文件等资源进行加载渲染。

qinjilll的博客 3054

Webpack逆向实战:从webpackJsonp Hook到模块提取全解析

在现代前端开发中,模块化与代码分割是提升应用性能的核心技术。Webpack作为主流打包工具,通过其运行时机制管理模块依赖与异步加载。理解其原理,尤其是关键的模块通信协议,对于进行前端逆向分析、安全审计或数据抓取具有重要技术价值。在JS逆向与爬虫开发领域,面对经过混淆和打包的代码,如何定位并提取核心业务逻辑(如加密函数)是常见的工程挑战。本文聚焦于Webpack打包后产生的全局对象(如webpackJsonp),深入讲解其作为模块注入点的Hook技术。通过覆盖数组push方法或拦截模块加载函数,可以动态捕获和

weixin_30786657的博客 885

【JS 逆向百例】webpack 改写实战,G 某游戏 RSA 加密

关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶、JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 目标:G某游戏登录 主页:aHR0cHM6Ly93d3cuZ205OS5jb20v 接口:aHR0cHM6Ly9wYXNzcG9ydC5nbTk5LmNvbS9sb2dpbi9sb2dpbjM= 逆向参数: Qu..

K哥爬虫 1335

webpack实战:某网站RSA登录加密逆向分析

某网站登录RSA加密,深度分析webpack代码并构建完整的加密webpack代码!

吴秋霖的博客 9292

【JavaScript 逆向】webpack 之某妹游戏登录逆向

RSA 加密逆向,及 webpack 改写

Yy_Rose的博客 4434

webpack实战:某网站JS逆向分析

webpack实战分析

吴秋霖的博客 1万+

详解webpack4多入口、多页面项目构建案例

主要介绍了详解webpack4多入口、多页面项目构建案例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

JS逆向01-某校登录系统

目标网站:aHR0cHM6Ly9jYXMua211c3QuZWR1LmNuL2x5dWFwU2VydmVyL2xvZ2lujs 部分的代码就不给了hh,自己多尝试也是可以把那部分的代码给扣完整,多尝试一定行本文分析了某登录接口的关键参数:id来源于验证码接口的uid,密码采用自定义加密方案,验证码通过OCR识别实现。

qq_70941842的博客 2423

keil软件调试(Debug)仿真教程(软件调试和硬件调试的区别)及常用调试按键详解

单片机的调试分为两种,一种是使用软件模拟调试,第二种是硬件调试,两种调试方式各有不同,软件模拟调试有误差,而硬件调试,借用仿真器调试是嵌入式开发中常用方法。

weixin_51624736的博客 3万+

JS 逆向系统进阶路线:专栏总纲与文章导航

本文是《JS 逆向系统进阶》专栏的总纲与导航页,围绕 JavaScript 基础、密码学、浏览器调试、Hook、扣代码、混淆还原、Webpack、补环境、AST、验证码、WASM、JSVMP、JSRPC、AI 辅助逆向等方向,整理一套长期更新的系统学习路线。文章不仅梳理主线学习顺序,也规划专题扩展和真实案例索引,帮助读者从零散技巧过渡到可迁移、可复盘、可持续提升的 JS 逆向能力体系。

XAMO Lab|代码、调试与复盘笔记 1723

以太网物理层协议整理(2)-万兆以太网

在万兆以太网标准化过程中,IEEE和10GEA(万兆以太网联盟)是两个最重要的组织。 万兆以太网标准和规范都比较繁多,在标准方面,首先有2002年的IEEE 802.3ae,后来也不断有新的万兆以太网规范推出,如2006年的IEEE 802.3an标准(10GBase-T)就推出了基于双绞铜线的万兆以太网规范,同样的IEEE 802.3aq标准推出了基于光纤的10GBase-LRM;2007年的

NowOrNever 3万+

【Stata双重差分模型】双重差分DID的具体操作步骤

本案例将详细阐述如何使用双重差分法进行实证分析,并展示具体的STATA操作代码。

a519573917的博客 2万+

web爬虫笔记:js逆向案例七 RSA非对称加密(webpack打包)

js逆向中的rsa加密

qq_49268524的博客 743

vivado2020.1使用vitis生成QSPI启动文件报错

在使用vivado2020.1使用vitis,生成QSPI启动文件时会报错,data2mem命令无法识别,这是因为data2mem是xilinx7series芯片的命令,当使用ultrascale/ultrascale+芯片时则需要使用updatemem命令,这或许是vitis的一个bug吧,明明选择的是ultrascale的芯片,却一直调用打她mem命令,挺麻烦的,需要手动执行,在XSCT console窗口执行的命令如下: updatemem -force -meminfo \ F:/xc7z35t/x

qq_32134427的博客 2336

【JS逆向百例】某音乐网分离式 webpack 非 IIFE 改写实战

关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶、JS/安卓逆向等技术干货! 文章目录声明逆向目标逆向过程抓包分析参数逆向webpack 改写IIFE 传数组IIFE 传字典非 IIFE 常规改写 声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 目标:KW音乐搜索参数 主页:aHR0cDovL3d3dy5rdXdvLmNuLw==..

K哥爬虫 1369

C#联合Halcon机器视觉框架源码—升级版

相较于之前的NxtVision,本软件代码架构更加合理,且新增。对源码有需求的,订阅本专栏后,私信我领取。、原来的vb脚本改为。

Z's Palace 1413

《MySQL 入门教程》第 03 篇 管理数据库

本篇主要介绍 MySQL 数据库的创建、查看、选择和删除操作,包括使用 mysql 命令行和 MySQL Workbench 图形工具两种方式。

Tony.Dong的专栏 3520

某segxxx社区ivd参数逆向分析

某segxx社区 ivd参数逆向分析

weixin_52365333的博客 2240

极智AI | 谈谈为什么卷积加速更喜欢 NHWC Layout

本文主要讨论一下为什么卷积加速更加喜欢 NHWC 的数据排布。

极智视界 2970

前端加密逆向实战:从MD5、AES到RSA的JS代码拆解指南

前端加密并非单纯调用CryptoJS或Web Crypto API,而是散列、对称与非对称算法在浏览器环境中的工程化落地。理解MD5用于完整性校验、AES保障数据机密性(需关注IV随机性与密钥管理)、RSA承担密钥交换与签名职责,是逆向分析的前提。真实场景中,算法常被Webpack打包、动态混淆甚至编译进WebAssembly,定位依赖对JS运行时结构的深度洞察。关键词如'sha校验命令cmd'和'des使用iv及密钥在线加解密'反映出开发者普遍面临的兼容性调试与安全配置误区。本文聚焦逆向工程师日常——从N

weixin_33910759的博客 555

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JS逆向——webpack实战

乍一看加密很简单,但是这只是body的值,而l方法的断点后续还没运行(即y.encrypt(o)还未执行,这是生成signature值的过程),我们让该方法执行完就会发现signture的值,如图。对于这种情况,根据加密参数格式以及长度,大佬就会想到常见的非对称加密,如RSA、DES、AES、DSA等等,然后就可以通过关键词搜索、DOM断点、hook方法、启动器启动等方式寻找入口,当然,我们可以根据某种方法会遇到的问题,去选择其他捷径方法作为最优解(比如异步操作导致跟栈困难等问题)。

Fleehom的博客 8654

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: 关于selenium和pyppeteer屏蔽检测的一些方法
下一篇: 《封号码罗》python爬虫之AST在js逆向中表达式计算(十九)
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值