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客户端不规范项——硬编码的主要内容,如果未能解决你的问题,请参考以下文章
在 Playwright 中,如何通过命令行传递 baseUrl,以便我的规范文件没有我正在测试的应用程序的硬编码 url?
从 appsettings.json 获取 ConnectionString,而不是在 .NET Core 2.0 App 中硬编码