Brida是一款 Burp Suite 扩展,作为一座桥梁衔接着Burp Suite以及Frida,以协助用户修正运用程序与后端服务器之间的通讯数据为己任。在剖析移动端运用时遇到运用运用随机密钥式对称加密,假如不知道其运用的密钥就无法篡改其通讯数据,经过Burp也就无法对一切的交流数据进行更改了,所以Brida就这样出现在咱们视界中。
Frida
Frida是一款十分强壮的结构,其可向Windows、MacOS、Linux、iOS、Android,QNX的运用中注入Javascript,从而阻拦运用传输的数据。本文仅运用到其间少部分功用,更多能够参阅Frida文档,强烈建议读者更好是在了解了其基本概念以及常用功用后再进行阅览。引荐两篇不错的译文:运用Frida合作Burp Suite追寻API调用; 如安在iOS运用程序顶用Frida来绕过“越狱检测”?
必备
东西规划初衷是为了进步浸透测验人员作业效率,因而读者或许需求先了解该运用以及体系内部构件,浸透测验,反编译,逆向工程等有必定了解。有运用过Burp Suite的经历将会给你带来协助,本次测验将用到以下软件:
Burp Suite Pro 1.7.25
Frida 10.11
Pyro 4.60 (pip install pyro4)
Python 2.7
Java 1.8
反编译软件
咱们决议运用Pyro4作为Burp与Frida之间的接口,以便直接拜访Java和Python扩展。Brida项目地址:https://github.com/federicodotta/Brida,之后将在BAppStore上架
常见场景
假如你需求对运用(Android,iOS等)进行一个完好评价,也便是说你需求对运用与后端服务器之间的交互进行研究。身为浸透测验人员简直每天都有做这样的作业,因而假定你了解怎么重定向设备/运用的通讯,与此同时假定你能设法绕过SSL Pinning验证机制以及/或许anti-root检测。
为了与服务器之间进行发送/接纳数据,该运用程序好像有是运用某种(自定义)编码或许是加密例程。一般来说,运用程序的数据传输或许是根据加密令牌,也或许是运用杂乱的Challenge-Response协议进行身份验证。那么咱们怎么篡改这些信息呢?大多数的时刻仅有可行的办法便是对运用进行反编译作业,然后辨认咱们感兴趣部分的运用的函数或许办法,之后再从头完成这些功用。明显该办法耗时较长而且不是每次都那么凑效:即令牌生成以及加密例程都是与设备(状况)有强相关的,或许是存储在不能直接拜访的维护区域。这时Brida的用途就表现出来:它会测验提取密钥或许证书并重写加密例程,这些脏活累活就交给它吧!
作业原理
Brida由以下三个组件构成:
Brida.jar:Burp Suite扩展
bridaServicePyro:用于衔接Frida和Burp的一个Python脚本,其存储在扩展之中,在履行Brida进程中会复制到一个暂时目录中
script.js:需求注入到方针运用的JavaScript脚本,它会经过Frida自带的rpc.exports将获取的函数信息回来给扩展
'use strict';
// 1 - FRIDA EXPORTS
rpc.exports = {
exportedFunction: function() {
// Do stuff...
// This functions can be called from custom plugins or from Brida "Execute method" dedicated tab
},
// Function executed when executed Brida contextual menu option 1.
// Input is passed from Brida encoded in ASCII HEX and must be returned in ASCII HEX (because Brida will decode the output
// from ASCII HEX). Use auxiliary functions for the conversions.
contextcustom1: function(message) {
return "6566";
},
// Function executed when executed Brida contextual menu option 2.
// Input is passed from Brida encoded in ASCII HEX and must be returned in ASCII HEX (because Brida will decode the output
// from ASCII HEX). Use auxiliary functions for the conversions.
contextcustom2: function(message) {
return "6768";
},
// Function executed when executed Brida contextual menu option 3.
// Input is passed from Brida encoded in ASCII HEX and must be returned in ASCII HEX (because Brida will decode the output
// from ASCII HEX). Use auxiliary functions for the conversions.
contextcustom3: function(message) {
return "6768";
},
// Function executed when executed Brida contextual menu option 4.
// Input is passed from Brida encoded in ASCII HEX and must be returned in ASCII HEX (because Brida will decode the output
// from ASCII HEX). Use auxiliary functions for the conversions.
contextcustom4: function(message) {
return "6768";
}
}
// 2 - AUXILIARY FUNCTIONS
// Convert a hex string to a byte array
function hexToBytes(hex) {
for (var bytes = [], c = 0; c 2)
bytes.push(parseInt(hex.substr(c, 2), 16));
return bytes;
[1] [2] [3] [4] 黑客接单网
假如你长时刻混迹于暗码破解的第一线,那么就十分清楚破解相同内容的不同文件格局对破解的速度的影响是十分大的。例如,破解维护RAR文档暗码所需的时刻是破解具有相同内容的ZIP文档暗码的十倍,而破解保存在O...
不管你是履行桌面仍是云取证,云端数据都将成为越来越重要依据来历,而且有时是仅有依据来历。即便你不从事取证作业,云拜访也能够协助你拜访已删去或以其他办法无法拜访的数据。 与智能手机或受暗码维护的桌面相似...
在开端咱们的MongoDB“注入之旅”之前,咱们需求先知道和其他数据库比较,为什么咱们更乐意选MongoDB——由于MongoDB并不是SQL作为查询句子,所以人们可能会认为这样的数据库难以进行注入进...
Google能够给用户供给定制化的搜索成果,即便在匿名形式下也是相同。但DuckDuckGo的研讨人员标明,Google的搜索成果不只依据用户的地理位置数据以及之前搜索过的内容,并且还会依据用户的登录...
Modbus协议 Modbus是全球第一个真实用于工业现场的总线协议,ModBus选用主/从(Master/Slave)方法通讯。最大可支撑247个隶属控制器,但实践所支撑的隶属控制器数还得由所用通讯...
前语 本文是 Java Web 工程源代码安全审计实战的第 4 部分,也是最终一部分,根据 WebGoat 工程,解说源码审计出产环境布置装备问题。相比较于前三部分各种高危缝隙的审计和整改。环境布置部...