如何优雅且暴力的针对APP有校验加密的情况做测试?网络安全零基础入门到精通实战教程!

如何优雅且暴力的针对APP有校验加密的情况做测试?网络安全零基础入门到精通实战教程! 免责声明请勿利用文章内的相关技术从事非法测试由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失均由使用者本人负责所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。1、前言前面介绍过很多篇关于web站点以及微信小程序如何做js逆向的案例有兴趣的老铁可以翻一翻斯叔前面的文章。今天介绍一下app逆向的思路。2、开始行动正常配置抓包环境劫持请求包首先映入眼帘的就是两个加密的参数reqdata和signtx出于保密原谅重码我给大家准备了一份全套的《网络安全入门进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程需要的小伙伴可以扫描下方二维码或链接免费领取~这个reqdata看着很像base64用个工具base64解密一下看下很好已经完成了对reqdata加密方式的逆向分析了就是用的base64对数据进行的加密还剩一个signtx顾名思义他应该是某些参数的sign值校验不过有的时候后端不一定会校验sign值所以可以尝试修改reqdata中的内容重放请求包看看后端的响应情况。很好看样子逆向sign值是跑不掉的了好在这个app没有加壳我们可以直接通过jadx进行逆向源代码。Jadx打开apk文件之后直接搜索关键字signtx。好在量不是很多不过我们应该选择哪个代码块呢这也是一个考验经验以及运气的部分。不过大多数的开发者给参数赋值都会用到set关键字所以这边斯叔当时是直接选择的名叫setSigntx函数跳转过去看起来没什么内容啊没关系我们右击这个函数然后选择查找用例运气不错只有一个用例我们直接双击跳转过去看一下简单读一下上下文的代码逻辑可以发现这里说的是如果signty的值等于MD5那么就调用这个setSigntx函数然后还巴拉巴拉调用了其他两个函数最里面的传参是reqtime reqdata这个reqtime和reqdata刚好都在请求的数据包中出现了那我们就可以做出猜想这个sign是不是就是针对reqtime和reqdata结合后的字符串进行的一系列运算产生的值呢带着这个疑问咱们就可以简单编写一个主动调用的frida代码来验证一下。什么不会写frida的主动调用代码没关系人工智障会把gpt的结果复制粘贴到js脚本中然后把123的内容换成请求包中的reqtime和reqdata结合后的字符串最后的脚本长这样式的然后启动我们万能的frida加载一下脚本看看怎么一回事儿完美跟请求包内容一摸一样这说明app就是调用的这个地方进行的sign值计算下一步就是如何脚本化的持续调用这个sign值加密了毕竟每次修改请求包之后都需要人工改脚本计算以此sign很麻烦如果能一键计算就更好了。首先想到的就是编写frida的rpc可能又会有小伙伴说了frida的rpc怎么编写没关系我们有人工智障不过调用rpc终究还是太麻烦了如果能够直接用python实现加解密操作就更方便了。因为这个sign值计算的地方出现了很多次MD5的关键字所以我们有理由去猜测是否就是reqtime和reqdata结合后的字符串的MD5值直接让人工智障写一个python实现MD5的方法复制粘贴然后Python跑一下结果正确nice搞到这里就思路清晰了测试的时候reqdata是base64加密修改完reqdata内容之后将新的reqdata的base64内容与reqtime结合的字符串进行md5加密替换signtx的内容就可以正常测试了。下一步就是借助burp插件让这个过程自动起来了达成我只需要修改reqdata的内容然后自动对signtx的值进行计算替换到请求包中进行请求的效果这里斯叔用的是f0ng大佬写好的burp插件autoDecoder采用的是接口加密接口加密的脚本也很简单人家也提供了很多可供参考的案例。这里因为只需要对请求包做sign值加密不用管解密的事情去所以主要针对encode的案例代码进行修改这个encrypt()函数保持不变我们主要修改des_decrypt()函数中的内容不用在意名称我直接用的案例脚本函数名称懒得改了。通过注释辅助也能明白encrypt()函数做的操作就是先获取post的参数然后将获取到的参数经过des_decrypt()函数走一遍之后的返回值再返回给burp。我给大家准备了一份全套的《网络安全入门进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程需要的小伙伴可以扫描下方二维码或链接免费领取~在des_decrypt()函数中我们先将获取到的post参数json格式化然后通过json便捷式的获取reqdata和reqtime的内容将它们组合称字符串然后进行MD5计算之后再将值赋值给signtx。最后将json化的内容通过dumps方法变成字符串进行返回。脚本编写好我们直接运行即可这里提示接口开放在http://192.168.73.99:8888/我们回到burp的插件页面测试一下选择接口加密页面设置好我们的加密接口然后贴入测试加密的数据包这里我们将signtx的内容改成123点击加密可以看到左侧的signtx已经成功进行正确的sign值计算说明我们的脚本是没有问题的。这时候就可以根据自己的需求设置重发器或者测试器加载脚本了这时候又引申出来另一个需求对于脚本小子而言如何使用sqlmap对reqdata中的参数进行sql注入测试呢没关系那就再编写一个更暴力的脚本呗只留明文的reqdata内容然后通过autodecoder的接口对reqdata的内容进行base64加密然后前后内容拼接起来之后就跟前面的脚本差不多了脚本大概长这个样子测试的效果是这样的实际发送一下请求包能正常请求数据说明没问题。需要用sqlmap的时候直接点击代理然后sqlmap设置到burp的代理–proxyhttp://127.0.0.1:8080即可自动对sqlmap的sql注入探测流量进行加密了通过把burp的流量设置代理给yakit可以清晰的看到真正请求服务器的数据包的样子。更多autoDecoder的用法等待各位老铁的探索。总结如果各位老铁对文章有什么意见建议或者是安全小白刚刚接触安全不知道怎么学习又或者是渗透测试实习生即将毕业对未来充满了问号等等都可以下方二维码联系我哈说出你的困惑以及现状跟强哥1V1激情连麦强哥可以根据大家的实际情况免费给大家做一做职业规划哈网络安全学习资源分享:给大家分享一份全套的网络安全学习资料给那些想学习 网络安全的小伙伴们一点帮助对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。因篇幅有限仅展示部分资料朋友们如果有需要全套《网1.成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图学习规划。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。2.网安入门到进阶视频教程很多朋友都不喜欢晦涩的文字我也为大家准备了视频教程其中一共有21个章节每个章节都是当前板块的精华浓缩。全套教程扫描领取哈3.SRC黑客文档大家最喜欢也是最关心的SRC技术文籍黑客技术也有收录SRC技术文籍黑客资料由于是敏感资源这里不能直接展示哦全套教程扫描领取哈4.护网行动资料其中关于HW护网行动也准备了对应的资料这些内容可相当于比赛的金手指5.黑客必读书单6.网络安全岗面试题合集当你自学到这里你就要开始思考找工作的事情了而工作绕不开的就是真题和面试题。所有资料共282G朋友们如果有需要全套《网络安全入门进阶学习资源包》可以扫描下方二维码或链接免费领取~