OWASP API TOP 10本文搬运自:https://apisecurity.io/encyclopedia/content/owasp/owasp-api-security-top-10.htm TOP1:2019 —破碎的对象级别授权没有对请求的id进行适当的检查,导致遍历id即可越权访问其他用户可访问的数据,这种攻击也称为IDOR(不安全的直接对象引用)。 用例 API调用参数使用通过API访问的资源的ID /api/shop1/financial_info。 攻击者用他们猜测出的另一种ID替换其资源的ID /api/shop2/financial_info。 该API不检查...
jni函数hook(计算 地址方式)12345678910111213141516171819202122232425262728293031323334353637function hookTest9() { Java.perform(function () { var env = Java.vm.tryGetEnv(); console.log(JSON.stringify(env)); var newStringUtfAddr = ptr(env.handle).readPointer().add(0x29C).r...
Hook jni 主动调用要对hellofromc 进行主动调用,修改返回值,但是这里不能直接通过replace去修改返回值,而是要通过newstringutf 去修改返回值。 12345678910111213141516171819function hookTest8(){ var funcAddr = Module.findExportByName("libxiaojianbang.so", "Java_com_xiaojianbang_app_NativeHelper_helloFromC"); console.log...
hook 读写内存数据对string字符串,可能是加密的,可以通过直接hook 加载的内存数据来读取解密状态的字符串 123456789读取内存字符串数据function hookTest7() { var soAddr = Module.findBaseAddress("libxiaojianbang.so"); console.log(soAddr); if(soAddr != NULL){ console.log(soAddr.add(0x2764).readCString()) }}...
Hook 获取指针参数的返回值在c语言中,一般都会以指针传递返回的值 ,没有return 或者return为true hook sub_750 打印参数和输出 12345678910111213141516171819function hookTest5(){ var soAddr = Module.findBaseAddress("libxiaojianbang.so"); //console.log("soAddr -->"+ soAddr); var sub_750 = soAddr.add(0x750);...
Hook 导出函数123456789101112131415161718192021222324252627282930// hook 导出函数function hookTest1() { var addAddr = Module.findExportByName("libxiaojianbang.so", "Java_com_xiaojianbang_app_NativeHelper_add"); console.log(addAddr); if (addAddr != NULL){ I...
Hook 计算非导出函数地址123计算公式: 基址 + 函数偏移地址 + 1 thumb指令集 2 或4 基址 + 函数偏移地址 arm 指令集 4 123456function hookTest2() { var soAddr = Module.findBaseAddress("libxiaojianbang.so"); console.log(soAddr); var funcAddr = soAddr.add(0x1848 + 1); // 基址加上偏移地址 console.log(funcAddr)} 通过pr...
hook dlopen在刚开始hook 我们必须使得app加载so 才能hook, 我们可以hookdlopen 获取到so在那加载,在高版本中有一些so会走android_dlopen_ext 123456789101112131415161718192021222324252627282930313233343536function hookTest6(){ var dlopen = Module.findExportByName(null, "dlopen"); console.log(dlopen); if(dlopen != nu...
Hook 通杀Hook 普通方法和修改函数参数返回值fradaserver 是手机端的, android低版本 frida 尽量低版本 fridaserver版本要与frida库版本一致 不同平台用不同fridaserver 不要和xposed装一起,新疆模拟器,刷机 设备要求: ​ root 调试下载frida-server push到手机中 (注意查看手机是86的还是64的) adb push .\frida-server-12.8.14-android-x86 /data/local/tmp/fsx86 之后cd到tmp目录下 先给fsx86 赋权 chmod 777...
hook so 导入导出表启动frida打开两个cmd 窗口 12345第一个cmd窗口adb shellsucd /data/local/tmp./fx // 这个是frida-server-12.8.14-android-x86的缩写 123第二个cmd窗口adb froward tcp:27042 tcp:27042frida -U com.xiaojianbang.app -l hookso.js 编写frida 脚本获取导入函数信息123456789101112131415先打印一下导入函数名function hookso(){ var imports =...