ToB企服应用市场:ToB评测及商务社交产业平台

标题: 某观鸟平台逆向分析 [打印本页]

作者: 去皮卡多    时间: 2024-4-20 04:24
标题: 某观鸟平台逆向分析
[img=720,381.5737363210005]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612504.png[/img]

1.抓包:

发现url:https://api.xxxxxxx.cn/front/record/activity/search
请求头三处加密,requestId、sign(疑似md5)、timestamp(时间戳)
[img=720,379.02668759811615]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612506.png[/img]

表单数据加密:
[img=720,253.5]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612507.png[/img]
请求返回数据加密:
[img=720,258.2485579444153]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612508.png[/img]
2.分析:

通过抓包,发现请求头、表单、返回的数据均有加密,如果你逆向的网站比较多会发现,一般加密的地方都在一起,网站大概率会使用JSON.stringify,来将数据转换为json字符串之后再进行加密,因此可以使用hook断点。
【----帮助网安学习,以下所有学习资料免费领!加vx:dctintin,备注 “博客园” 获取!】
 ① 网安学习成长路径思维导图
 ② 60+网安经典常用工具包
 ③ 100+SRC漏洞分析报告
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权威CISSP 认证考试指南+题库
 ⑥ 超1800页CTF实战技巧手册
 ⑦ 最新网安大厂面试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)
hook JSON.stringify代码:
  1. (function() {
  2.    var stringify = JSON.stringify;
  3.    JSON.stringify = function(params) {
  4.        console.log("Hook JSON.stringify ——> ", params);
  5.        debugger;
  6.        return stringify(params);
  7.    }
  8. })();
复制代码
将hook代码注入控制台,翻页断点:
[img=720,361.31868131868134]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612509.png[/img]
找到上一个栈:
[img=720,379.6020942408377]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612511.png[/img]
可以看出RequestId是由getUuid生成:
[img=720,263.7995824634655]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612512.png[/img]
sign由MD5(e + d + c)生成:
[img=720,261.375]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612513.png[/img]
timestamp由Date.parse(new Date())生成:
[img=720,267.001638448935]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612514.png[/img]
发现表单是使用RSA加密,并且用setPublicKey方法设置了要使用的公钥。然后,使用encryptUnicodeLong方法对参数e进行加密。

使用hook JSON.parse找到返回数据解密位置,和上面hook代码一样的操作:
  1. (function() {
  2.    var parse = JSON.parse;
  3.    JSON.parse = function(params) {
  4.        console.log("Hook JSON.parse ——> ", params);
  5.        debugger;
  6.        return parse(params);
  7.    }
  8. })();
复制代码
[img=720,61.1070110701107]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612516.png[/img]
[img=720,195.7828810020877]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612517.png[/img]
找到解密位置:
[img=720,276.57620041753654]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612518.png[/img]
跟进后,发现解密代码由AES解密:
[img=720,227.46736292428199]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612519.png[/img]
[img=720,218.25]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612520.png[/img]
3.扣代码:

将js代码复制下来,平且补全代码
[img=720,329.95215311004785]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612521.png[/img]
[img=720,306.3829787234043]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202401311612522.png[/img]
[img=720,279.22437673130196]https://www.hetianlab.com/headImg.action?news=59ffb2be-3945-44bd-b176-587cac722340.png[/img]
更多网安技能的在线实操练习,请点击这里>>
  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4