freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

某观鸟平台逆向分析
2024-01-31 17:09:01

202401311612504.png

1.抓包:

发现url:https://api.xxxxxxx.cn/front/record/activity/search

请求头三处加密,requestId、sign(疑似md5)、timestamp(时间戳)

微信截图_20240114210318

表单数据加密:

微信截图_20240114210908

请求返回数据加密:

微信截图_20240114211557

2.分析:

通过抓包,发现请求头、表单、返回的数据均有加密,如果你逆向的网站比较多会发现,一般加密的地方都在一起,网站大概率会使用JSON.stringify,来将数据转换为json字符串之后再进行加密,因此可以使用hook断点。

【----帮助网安学习,以下所有学习资料免费领!加vx:dctintin,备注“freebuf”获取!】

① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC漏洞分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)

hook JSON.stringify代码:

(function() {
 var stringify = JSON.stringify;
 JSON.stringify = function(params) {
     console.log("Hook JSON.stringify ——> ", params);
     debugger;
     return stringify(params);
}
})();

将hook代码注入控制台,翻页断点:

微信截图_20240114204048

找到上一个栈:

微信截图_20240114204132

可以看出RequestId是由getUuid生成:

202401311612512.png

sign由MD5(e + d + c)生成:

微信截图_20240114220151

timestamp由Date.parse(new Date())生成:

微信截图_20240114220307

发现表单是使用RSA加密,并且用setPublicKey方法设置了要使用的公钥。然后,使用encryptUnicodeLong方法对参数e进行加密。

微信截图_20240114220655

使用hook JSON.parse找到返回数据解密位置,和上面hook代码一样的操作:

(function() {
 var parse = JSON.parse;
 JSON.parse = function(params) {
     console.log("Hook JSON.parse ——> ", params);
     debugger;
     return parse(params);
}
})();

微信截图_20240114222047

微信截图_20240114222227

找到解密位置:

微信截图_20240114222347

跟进后,发现解密代码由AES解密:

微信截图_20240114222756

微信截图_20240114222945

3.扣代码:

将js代码复制下来,平且补全代码

微信截图_20240114221450

微信截图_20240114223432

20240114223306.png

# 数据加密 # 逆向分析 # 抓包
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录