DIVA靶场测试APP客户端不规范项——硬编码

Posted 李白你好

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DIVA靶场测试APP客户端不规范项——硬编码相关的知识,希望对你有一定的参考价值。

DIVA了解APP安全问题


硬编码

  • 某些需要比较字符串的值为硬编码,如:激活码
  • 加密的key或者salt为硬编码,如MD5的salt

Hardcoding Issues -Part1

这里直接查看源码就知道答案

HardcodeActivity.class

   if (((EditText)findViewById(2131492987)).getText().toString().equals("vendorsecretkey")) 
      Toast.makeText(this, "Access granted! See you on the other side :)", 0).show();
    
    for (;;)
    
      return;
      Toast.makeText(this, "Access denied! See you in hell :D", 0).show();
    

Hardcoding Issues -Part2

源码Hardcode2Activity.class

这里使用了DivanJni类,查看 DivaJni.class

这里加载了divajini库,一般库文件都放在/lib下,在目录下看到了很多架构,随便查看一个

arm64-v8a:

libdivajni.so

armeabi:

libdivajni.so

armeabi-v7a:

libdivajni.so

mips:

libdivajni.so

mips64:

libdivajni.so

x86:

libdivajni.so

x86_64:

libdivajni.so

linux下可以使用strings方便的查看二进制文件里的字符串

$ strings libdivajni.so

/system/bin/linker

__cxa_finalize

__cxa_atexit

Java_jakhar_aseem_diva_DivaJni_access

strncmp

__aeabi_unwind_cpp_pr1

Java_jakhar_aseem_diva_DivaJni_initiateLaunchSequence

strcpy

__aeabi_unwind_cpp_pr0

JNI_OnLoad

__aeabi_unwind_cpp_pr2

__gnu_Unwind_Find_exidx

__gnu_Unwind_Restore_VFP_D

__gnu_Unwind_Restore_VFP

__gnu_Unwind_Restore_VFP_D_16_to_31

__gnu_Unwind_Restore_WMMXD

__gnu_Unwind_Restore_WMMXC

abort

restore_core_regs

memcpy

_Unwind_GetCFA

__gnu_Unwind_RaiseException

__gnu_Unwind_ForcedUnwind

__gnu_Unwind_Resume

__gnu_Unwind_Resume_or_Rethrow

_Unwind_Complete

_Unwind_DeleteException

_Unwind_VRS_Get

_Unwind_VRS_Set

__gnu_Unwind_Backtrace

__cxa_begin_cleanup

__cxa_type_match

__gnu_unwind_execute

__cxa_call_unexpected

_Unwind_VRS_Pop

__gnu_Unwind_Save_VFP_D

__gnu_Unwind_Save_VFP

__gnu_Unwind_Save_VFP_D_16_to_31

__gnu_Unwind_Save_WMMXD

__gnu_Unwind_Save_WMMXC

__restore_core_regs

___Unwind_RaiseException

_Unwind_RaiseException

___Unwind_Resume

_Unwind_Resume

___Unwind_Resume_or_Rethrow

_Unwind_Resume_or_Rethrow

___Unwind_ForcedUnwind

_Unwind_ForcedUnwind

___Unwind_Backtrace

_Unwind_Backtrace

__gnu_unwind_frame

_Unwind_GetRegionStart

_Unwind_GetLanguageSpecificData

_Unwind_GetDataRelBase

_Unwind_GetTextRelBase

_edata

__bss_start

_end

libstdc++.so

libm.so

libc.so

libdl.so

libdivajni.so

olsdfgad;lh

.dotdot

GCC: (GNU) 4.8

gold 1.11

aeabi

.shstrtab

.interp

.dynsym

.dynstr

.hash

.rel.dyn

.rel.plt

.text

.ARM.extab

.ARM.exidx

.rodata

.fini_array

.init_array

.dynamic

.got

.data

.bss

.comment

.note.gnu.gold-version

.ARM.attributes

看里面又没特别的字符串,就像是olsdfgad;lh,试一下成功了

在下面链接看源代码就可以知道,vendorkey是硬编码。

https://github.com/payatu/diva-android/blob/master/app/src/main/jni/divajni.c


以上是关于DIVA靶场测试APP客户端不规范项——硬编码的主要内容,如果未能解决你的问题,请参考以下文章

DIVA靶场测试APP客户端不规范项

DIVA靶场测试APP客户端不规范项

在 Playwright 中,如何通过命令行传递 baseUrl,以便我的规范文件没有我正在测试的应用程序的硬编码 url?

从 appsettings.json 获取 ConnectionString,而不是在 .NET Core 2.0 App 中硬编码

如何嵌入app.config并硬编码其Web服务端点?

在 App Engine 上的 Django 应用上存储客户端机密