. . . * . * ☄️. * . * . 🔆 .* . * . 🧶 * . * . . .
事件背景
我:不是要测APP吗,怎么搬根柱子过来? 客户:这个APP比较特殊的,只能在我们自己的设备上跑。 我:原来如此,但你还是先把APP给我吧。 客户:好的。
第一次测试
我:这台设备是Android改版吗? 客户:是的。 我:可以root和adb吗?我想装点工具。 客户:可以root,你自己弄吧。
adb reboot
adb root
adb remount
adb push .. w4ert.0 /system/etc/security/cacerts/
adb shell settings put global http_proxy IP:8899
复测
客户:我们修好了喔,你测试一下。 我:好的。
抓包发现所有包被加了个sign,本来看代码是经典参数拼接+MD5,但算出来的参数始终对不上。静态看实在是看烦了,于是frida走起。
'use stricts'
Java.perform(function() {
var AESP = Java.use("b.d.a.g.o");
var HashMap = Java.use('java.util.HashMap');
var hashMap = HashMap.$new();
function enc(){
var HashMap = Java.use('java.util.HashMap');
var hashMap = HashMap.$new();
hashMap.put.overload('java.lang.Object', 'java.lang.Object').call(hashMap, 'ids', '1');
return AESP.y(hashMap);
}
AESP.y.implementation = function (hashMap) {
var entrySet = hashMap.entrySet();
var iterator = entrySet.iterator();
while (iterator.hasNext()) {
var entry = iterator.next();
console.log(entry);
} //打印hashmap
let rmm=this.x(hashMap);
console.log(rmm);
console.log("结束。");
return rmm;
};
AESP.j.implementation = function (strr) {
console.log("MD5");
console.log(strr);
console.log("原始参数:");
let rmm=this.j(strr);
console.log(rmm);
return rmm;
}
enc();
});
frida -H 192.168.3.25:65000 --no-pause -l .1.js [APP名]
. . . * . * 🌟 * . * . . .
由于很多人问我微信群的事情,所以我建了一个小微信群。现在可以在公众号菜单里选择合作交流->交流群获取交流群二维码,希望大家和谐交流,为更好更友善的行业环境贡献自己的力量。
原文始发于微信公众号(重生之成为赛博女保安):手把手教你测试基于安卓的物联网APP