-
-
[原创]APP加密报文Burp明文抓包方案
-
发表于:
2024-3-20 14:38
20186
-
随着安全等级的提高目前金融、证券、保险类APP经常使用加密的请求和响应报文在公网传输数据,使用传统的frida转发到Burp的方式测试起来非常恼火,而且对于重放类问题基本上很难挖掘,本篇文章使用frida、frida RPC和burp插件联动的方式对加密报文进行明文抓包以解决不能重放的问题,希望能够解决各位在测试过程中遇到的APP加密报文明文抓包和重放的问题。
1.抓取APP登录请求报文可知APP以POST方式传输json格式的请求报文数据,JSON格式字段data为加密数据,digest字段为签名。
2.请求报文中data字段以RSA APP本地私钥的方式加密传输。
3.请求报文中digest字段以SHA256withRSA本地私钥,对请求报文明文数据Base64编码字符进行加签。
1.APP本地拦截器XXXXXXXXInterceptor#intercept方法对响应参数data进行解密和digest参数验签。
1.客服端发起请求加密流程如下图所示:
1.客服端接收响应加解密流程如下图所示:
1.通过Hook加密函数修改明文和Hook解密函数修改解密的方式修改请求和响应报文。
2.Hook转发Burp显示的请求报文。
3.Hook转发Burp显示的响应报文。
1.抓取到的请求和响应报文不直观,大多数情况下只知道参数不知道参数对应的请求URL。
2.无法对请求报文进行重放。
1.加密流程如下:
①通过frida hook让加密函数不进行加密直接返回明文数据;
②通过Burp抓取请求报文抓取到的就是明文数据;
③通过Burp插件按照加密加强算法流程对明文数据加密加签然后将报文发送给服务器;
2.解密流程如下:
①Burp收到服务器返回的加密加签数据,Burp插件进行解密得到明文数据;
②frida hook让解密函数直接接返回Burp插件解密后的数据;
③Burp返回明文数据APP显示;
1.加密流程如下:
①通过frida hook让加密函数不进行加密直接返回明文数据;
②通过Burp抓取请求报文抓取到的就是明文数据;
③Burp插件调用frida RPC请求APP加密函数对明文数据进行加密,得到加密加签后的请求密文数据;
④Burp插件RPC调用完成得到密文数据发送给服务器;
2.解密流程如下:
①Burp收到服务器返回的加密加签的密文数据;
②Burp插件调用frida RPC请求APP解密函数对密文数据进行解密得到解密后的明文数据;
③frida hook让解密函数直接接返回Burp插件调用RPC解密后的数据;
④通过frida hook让解密函数不进行解密直接返回明文数据;
1.加密流程实现过程如下:
①通过frida hook让加密函数不进行加密直接返回明文数据;
②通过Burp抓取请求报文抓取到的就是明文数据;
③通过Burp插件按照加密加强算法流程对明文数据加密加签然后将报文发送给服务器;
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课