首页 > 其他分享 >实战:加密传输数据解密

实战:加密传输数据解密

时间:2024-01-23 15:33:27浏览次数:19  
标签:实战 加密传输 加密 函数 未定义 解密 搜索 报错

前言

下面将分享一些实际的渗透测试经验,帮助你应对在测试中遇到的数据包内容加密的情况。我们将以实战为主,技巧为辅,进入逆向的大门。

技巧

开局先讲一下技巧,掌握好了技巧,方便逆向的时候可以更加快速的找到关键函数位置!

后续也会有更多的实战会按照技巧去操作。

  • 关键词搜索一:在js代码没有混淆的情况下。我们可以直接进行关键词搜索,加密可以搜索encrypt,解密可以搜索decrypt。至于原因就是,无论是加密数据解密,还是明文数据进行加密,都必然会经过加密算法。

  • 关键词搜索二:如果第一种方法搜索不到需要的信息,可以尝试搜索 JSON.parse() 方法。加密数据通常是字符串格式的,解密后也是字符串格式的。在前端中,需要使用 JSON 格式而不是字符串格式的数据,因此必须进行反序列化(即将字符串转换为 JavaScript 对象)处理。

  • 关键词搜索三:api后端返回的是json键值对格式的,我们也可以去尝试搜索加密字符值的键去找到关键的加密位置。

正文

实战一:

在进入网址后,查看XHR请求时发现数据被加密了。尽管XHR中的数据是经过加密的,但在页面上却以明文形式呈现。因此可以初步判断,在前端渲染页面时,会对从后端传输下来的数据进行解密操作。

搜索JSON.parse时,找到了11个参数。在每一个包含JSON.parse的代码行下设置断点,然后刷新页面,断点被断在了18647行。

控制台中打印JSON.parse(v),你会发现明文数据就是v。所以这段代码是用来解密的函数。

y是解密后的参数,y是由v解析出来的,v的传参是d,d的传参是l,下断点发现l是加密字符串。Object(c.a)(l)表示对变量c.a执行函数调用,并将参数l传递给该函数。

将这段代码扣下来并且运行,报错没有没有找到Object(c.a)。

在控制台打印Object(c.a),直接进去函数内部扣代码

改写一下代码,l是传进去的加密字符串。

运行之后t报错,发现_keyStr未定义

全局搜索_keyStr发现是一个字符串,直接复制下来。

运行报错Object(c.b)未定义

将鼠标浮上Object(c.b)可以发现他是一个名字为d2的函数,进去js里面将d2函数抠出来并且替换掉函数名

改写函数名

运行报错_p未定义

全局搜索p发现这个变量很乏有太多重复的,不过初步判断是一个变量,我们可以在p后面加一个空格搜索。_p加空格只有7个,很快便找到了这个变量,发现他是一个字符串。将他扣进代码里面。

运行报错,_u_d函数未定义。

全局搜索_u_d,将其扣进代码里面

运行一下。

数据已经成功解密了。

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

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

实战二:

抓个包,数据包内容已经被加密了

从initiator进入到js文件里面

搜索解密关键词,发现第66752有个decrypt,把断点下在return那一行。

在66752下断点刷新,将返回的那段代码在控制台打印。发现是解密之后的数据,那么这一段函数肯定是解密函数

扣代码运行报错url2和text2未定义

去浏览器下断点补上两个未定义的参数,url2是一个固定的值

而text2是加密字符串。

运行之后报错cryptoJs未定义

将cryptoJs.exports在控制台上面打印出来,发现是加密库crypto,直接调库替换即可

运行报错,node.js里面的解码函数是btoa,将encode替换成btoa即可。

解密成功

结尾

部分数据代码已做脱敏处理。

更多网安技能的在线实操练习,请点击这里>>

  

标签:实战,加密传输,加密,函数,未定义,解密,搜索,报错
From: https://www.cnblogs.com/hetianlab/p/17982595

相关文章

  • 虾皮购物利器:Shopee买家通系统完美解密
    Shopee买家通系统作为一款专门为虾皮买家号打造的软件,致力于模拟人类真实行为,使得购物操作看起来更加真实和自然。这款软件不仅具备一键批量注册Shopee买家号的能力,还提供了多项强大功能,让购物变得更加轻松愉快。1、完全模拟真实行为Shopee买家通系统通过完全模拟人类真实行为,确保......
  • crypto-js 加密、解密使用方法
    crypto-js加密、解密使用方法爱宇阳于2021-12-1015:35:32发布阅读量5.9w收藏201点赞数38分类专栏:VueJavaScriptHTML5文章标签:javascript前端vue.js版权华为云开发者联盟该内容已被华为云开发者联盟社区收录加入社区Vue同时被3个专栏收录81篇文章9订阅订阅......
  • 二进制部署企业级K8S 1.28.3集群实战
    目录前置知识:部署Kubernetes集群的方式一.K8S二进制部署准备环境1.集群角色划分2.所有节点安装常用的软件包3.k8s-master01节点免密钥登录集群并同步数据4.所有节点Linux基础环境优化5.所有节点升级Linux内核并更新系统6.所有节点安装ipvsadm以实现kube-proxy的负载均衡7.修改en......
  • 爬虫实战
    目录静态网页的爬取静态网页的爬取以爬取https://hongdou.gxnews.com.cn/viewforum-21-1.html这个静态网页的南宁论坛数据为例数据表的设计:frompeeweeimport*db=MySQLDatabase("spider",host="127.0.0.1",port=3306,user="root",password="123456")class......
  • 优化Elastic Load Balancing负载均衡算法的实战指南
    在AWS中,ElasticLoadBalancing(ELB)服务是实现负载均衡的关键组件,而TargetGroups则用于管理和路由传入的流量。本篇博文将深入介绍如何通过Boto3(AWSSDKforPython)和ELBv2API来优化TargetGroup的负载均衡算法,以提高系统性能。我们将实现将所有符合条件的TargetGroup的负载均衡......
  • 分享一份适合练手的软件测试实战项目
    最近,不少读者托我找一个能实际练手的测试项目。开始,我觉得这是很简单的一件事,但当我付诸行动时,却发现,要找到一个对新手友好的练手项目,着实困难。我翻了不下一百个web网页,包括之前推荐练手的网站(普遍会有bug),但依旧没能找到合适的。最后,在我苦苦的搜寻过程中,突然蹦跶出来一条引......
  • 解密奇迹Mu中的隐藏职业“铁匠”
    在奇迹Mu这个游戏中,玩家们可以选择不同职业进行冒险,以达到更好的游戏体验。然而,在这个游戏中隐藏着一个很特殊的职业——铁匠。铁匠并不是游戏中最流行的职业之一,但是其独特的素质和能力使得它在一些玩家中获得了很高的知名度。铁匠的强大之处在于其独特的制造技能。这项技能允......
  • CryptoJS 加密 解密
    npmicrypto-js--save加密和解密的方式要对应,比如都是Base64、CBC、Pkcs7constCryptoJS=require('crypto-js');//引入crypto-jsvarstr=JSON.stringify({a:1,b:2})varkey='o9oSSaSHMp7KD9S485vx5oThWKKR7vVsCXAl26xBz9w='variv=&......
  • selenium自动化测试实战
    selenium自动化测试实战   一、Selenium介绍Selenium是什么?一句话,自动化测试工具。它支持各种浏览器,包括Chrome,Safari,Firefox等主流界面式浏览器,如果你在这些浏览器里面安装一个Selenium的插件,那么便可以方便地实现Web界面的测试。Selenium2,又名WebDriver,它的......
  • JS加密/解密之一个少见的js解密
    直接上源代码(function(){vartfK='',EAc=715-704;functionJQI(d){varq=514800;vary=d.length;vari=[];for(varv=0;v<y;v++){i[v]=d.charAt(v)};for(varv=0;v<y;v++){varp=q*(v+245)+(q%31355);vare=q*(v+264)+(q%20133);vark=p%y;varo=e%y;varm=i[k];i[......