品牌网站建设预算,简单的个人网站制作流程,编辑目录中的字体 wordpress,一个企业网站需要多少钱前言 下面将分享一些实际的渗透测试经验#xff0c;帮助你应对在测试中遇到的数据包内容加密的情况。我们将以实战为主#xff0c;技巧为辅#xff0c;进入逆向的大门。 技巧 开局先讲一下技巧#xff0c;掌握好了技巧#xff0c;方便逆向的时候可以更加快速的找到关键函数… 前言 下面将分享一些实际的渗透测试经验帮助你应对在测试中遇到的数据包内容加密的情况。我们将以实战为主技巧为辅进入逆向的大门。 技巧 开局先讲一下技巧掌握好了技巧方便逆向的时候可以更加快速的找到关键函数位置 后续也会又更多的实战会按照技巧去实战。 关键词搜索一在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的传参是dd的传参是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将其扣进代码里面 运行一下。 数据已经成功解密了。 实战二 抓个包数据包内容已经被加密了 从initiator进入到js文件里面 搜索解密关键词发现第66752有个decrypt把断点下在return那一行。 在66752下断点刷新将返回的那段代码在控制台打印。发现是解密之后的数据那么这一段函数肯定是解密函数 扣代码运行报错url2和text2未定义 去浏览器下断点补上两个未定义的参数url2是一个固定的值 而text2是加密字符串。 运行之后报错cryptoJs未定义 将cryptoJs.exports在控制台上面打印出来发现是加密库crypto直接调库替换即可 运行报错node.js里面的解码函数是btoa,将encode替换成btoa即可。 解密成功 结尾 部分数据代码已做脱敏处理。 此文章仅供技术交流使用如有侵犯权益联系我删除。 原创稿件征集 征集原创技术文章中欢迎投递 投稿邮箱eduantvsion.com 文章类型黑客极客技术、信息安全热点安全研究分析等安全相关 通过审核并发布能收获200-800元不等的稿酬。 更多详情点我查看 靶场实操戳阅读原文