当前位置: 首页 > news >正文

网站模板凡建站佛山制作网站企业

网站模板凡建站,佛山制作网站企业,站长域名查询,广告设计与制作参加比赛收获By ruanruan#xff0c;2022/04/21 文章目录 1、不安全的日志记录2、硬编码3、pin绕过#xff08;1#xff09;反编译查看方法判断逻辑#xff08;2#xff09;hook方法A、Hook areEqual(Object,Object)B、Hook checkPin(a) #xff08;3#xff09;页面效果#xff08… By ruanruan2022/04/21 文章目录 1、不安全的日志记录2、硬编码3、pin绕过1反编译查看方法判断逻辑2hook方法A、Hook areEqual(Object,Object)B、Hook checkPin(a) 3页面效果4踩坑 4、root检测绕过1反编译查看2hook方法3绕过效果 5、Secureflag绕过1查看相关代码2Hook脚本3hook效果 6、Deeplink利用1查看漏洞代码2漏洞利用A、访问html文件B、使用adb构造intent 7、Webview利用1查看漏洞代码2漏洞利用A、任务一弹窗B、任务二访问一个本地文件如/etc/hosts 8、证书绕过1hook脚本2hook结果3踩坑 9、脆弱的加密1反编译查看2hook加密函数A、AESB、MD5C、Random 10、本地动态链接库1反编译查看2so文件查看检测函数代码3hook方法4hook结果5踩坑 1、不安全的日志记录 任务在日志中找到key 命令查看日志中是否包含输入的key adb logcat 2、硬编码 任务查找硬编码user:password 查找到superadmin:supersecurepassword 3、pin绕过 任务绕过pin检测 其实可以对NDg2Mw直接解码得4863 1反编译查看方法判断逻辑 查找areEqual方法如下 2hook方法 A、Hook areEqual(Object,Object) 先是去hook了kotlin.jvm.internal.Intrinsics类的重载方法通过传的first参数数据类型为String可知调用的是 搜索Equal函数是返回true or false 那么修改返回为true就行 js function hookChongZai(){var utils Java.use(kotlin.jvm.internal.Intrinsics);utils.areEqual.overload(java.lang.Object, java.lang.Object).implementation function(a,b){console.log(a,b);a 2022;b 2022;console.log(a,b);var ret true;return ret;} }function main(){Java.perform(function(){hookChongZai();}) }setImmediate(main);输出 页面显示 B、Hook checkPin(a) 修改返回值只要return true就行 js: function hookpin(){console.log(script running .....)var utils Java.use(infosecadventures.allsafe.challenges.PinBypass);console.log(test\n);utils.checkPin.implementation function(a){console.log(a);a 2022;console.log(a);var ret true;console.log(a,ret);return ret;} }function main(){Java.perform(function(){hookpin();}) }setImmediate(main);3页面效果 输入任意四位数显示输入正确 4踩坑 overload(‘java.lang.Object’, ‘java.lang.Object’) 小结 .overload(double, java.lang.Double).overload(float, java.lang.Float).overload(java.lang.Double, double).overload(java.lang.Double, java.lang.Double).overload(java.lang.Float, float).overload(java.lang.Float, java.lang.Float).overload(java.lang.Object, java.lang.Object)将返回设置成字符串true了即var ret “true”; 为变量赋值Boolean类型值的例子 var found true; var lost false;需要注意的是Boolean类型的字面值true和false是区分大小写的。 4、root检测绕过 任务绕过root检测 1反编译查看 首先查看infosecadventures.allsafe.challenges.RootDetection找了找没有啥判断逻辑 再查看infosecadventures.allsafe.challenges.RootDetection$onCreateView$1的检测逻辑 全局搜索isRooted方法如图可知是布尔类型的返回结果。 2hook方法 js function hookroot(){console.log(script running .....)var utils Java.use(com.scottyab.rootbeer.RootBeer);console.log(test\n);utils.isRooted.implementation function(){var ret false;console.log(ret);return ret;} }function main(){Java.perform(function(){hookroot();}) }setImmediate(main);3绕过效果 原始页面 绕过页面 5、Secureflag绕过 任务绕过禁止截屏限制 1查看相关代码 找到禁止截屏函数 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);然后查看setFlags 2Hook脚本 function hookflag(){console.log(script running .....)var utils Java.use(androidx.recyclerview.widget.RecyclerView);console.log(test\n);utils.setFlags.implementation function(a,b){console.log(a,b);a 11;b 11console.log(a,b);var ret this.setFlags(a,b);console.log(ret);} }function main(){Java.perform(function(){hookflag();}) }setImmediate(main);3hook效果 思路是改setFlags的值我看最开始输出是012就给改成11效果是黑屏卡住了 找到对的值就ok 6、Deeplink利用 任务尝试触发deeplink 1查看漏洞代码 先找到对应的Activity 再跟进 找到getintent()函数看如何赋值的 可知参数data即为intent的值以及对data的判断条件为和key的值相等则完成任务。 2漏洞利用 找到key的值如下 此时就应该构造intent为2131820617 A、访问html文件 可以看到action为null 但是从AndroidManifest.xml可以看到intent-filter为当Action为android.intent.action.VIEW可调用 构造html文件如下 htmlheadh1deeplinktest/h1head body a hrefintent:#Intent;packageinfosecadventures.allsafe;componentinfosecadventures.allsafe/infosecadventures.allsafe.challenges.DeepLinkTask;actionandroid.intent.action.VIEW;data2131820617;endtest/a /body /html但是 data的值好像传失败了 B、使用adb构造intent adb shell am start -n infosecadventures.allsafe/infosecadventures.allsafe.challenges.DeepLinkTask 2131820617adb shell am start -n infosecadventures.allsafe/infosecadventures.allsafe.challenges.DeepLinkTask -d 2131820617利用成功页面 7、Webview利用 任务一弹窗 任务二访问一个本地文件如/etc/host 1查看漏洞代码 漏洞条件 setAllowFileAccess(true) 默认开启 setJavaScriptEnabled(true) WebView可以被外部调用并能够加载外部可控的HTML文件 都满足对传进来的url参数没有任何处理过滤直接使用loadurl()加载 2漏洞利用 A、任务一弹窗 利用JavaScript伪协议进行弹窗 B、任务二访问一个本地文件如/etc/hosts 8、证书绕过 任务拦截流量绕过证书校验 1hook脚本 网上的通用脚本 /* Android SSL Re-pinning frida script v0.2 030417-pier $ adb push burpca-cert-der.crt /data/local/tmp/cert-der.crt$ frida -U -f it.app.mobile -l frida-android-repinning.js --no-pause https://techblog.mediaservice.net/2017/07/universal-android-ssl-pinning-bypass-with-frida/UPDATE 20191605: Fixed undeclared var. Thanks to oleavr and ehsanpc9999 ! */setTimeout(function(){Java.perform(function (){console.log();console.log([.] Cert Pinning Bypass/Re-Pinning); var CertificateFactory Java.use(java.security.cert.CertificateFactory);var FileInputStream Java.use(java.io.FileInputStream);var BufferedInputStream Java.use(java.io.BufferedInputStream);var X509Certificate Java.use(java.security.cert.X509Certificate);var KeyStore Java.use(java.security.KeyStore);var TrustManagerFactory Java.use(javax.net.ssl.TrustManagerFactory);var SSLContext Java.use(javax.net.ssl.SSLContext); // Load CAs from an InputStreamconsole.log([] Loading our CA...)var cf CertificateFactory.getInstance(X.509);try {var fileInputStream FileInputStream.$new(/data/local/tmp/cert-der.crt);}catch(err) {console.log([o] err);}var bufferedInputStream BufferedInputStream.$new(fileInputStream);var ca cf.generateCertificate(bufferedInputStream);bufferedInputStream.close(); var certInfo Java.cast(ca, X509Certificate);console.log([o] Our CA Info: certInfo.getSubjectDN()); // Create a KeyStore containing our trusted CAsconsole.log([] Creating a KeyStore for our CA...);var keyStoreType KeyStore.getDefaultType();var keyStore KeyStore.getInstance(keyStoreType);keyStore.load(null, null);keyStore.setCertificateEntry(ca, ca);// Create a TrustManager that trusts the CAs in our KeyStoreconsole.log([] Creating a TrustManager that trusts the CA in our KeyStore...);var tmfAlgorithm TrustManagerFactory.getDefaultAlgorithm();var tmf TrustManagerFactory.getInstance(tmfAlgorithm);tmf.init(keyStore);console.log([] Our TrustManager is ready...); console.log([] Hijacking SSLContext methods now...)console.log([-] Waiting for the app to invoke SSLContext.init()...) SSLContext.init.overload([Ljavax.net.ssl.KeyManager;, [Ljavax.net.ssl.TrustManager;, java.security.SecureRandom).implementation function(a,b,c) {console.log([o] App invoked javax.net.ssl.SSLContext.init...);SSLContext.init.overload([Ljavax.net.ssl.KeyManager;, [Ljavax.net.ssl.TrustManager;, java.security.SecureRandom).call(this, a, tmf.getTrustManagers(), c);console.log([] SSLContext initialized with our custom TrustManager!);}}); },0);2hook结果 成功抓包 3踩坑 看着是证书的问题百度了一下需要系统信任burp证书 可是系统已经信任证书了 最后是替换了最新的证书解决的 9、脆弱的加密 任务使用frida hook加密的方法 1反编译查看 2hook加密函数 A、AES 直接输出参数1再篡改为参数2并对其加密 js: function hookcrypto(){console.log(script running .....)var utils Java.use(infosecadventures.allsafe.challenges.WeakCryptography);console.log(test\n);utils.encrypt.implementation function(a){console.log(a);a quan;console.log(a);var ret this.encrypt(a);console.log(ret);return The AES encrypto Result of a ret;} }function main(){Java.perform(function(){hookcrypto();}) }setImmediate(main);hook输出 页面效果 B、MD5 直接输出参数1再篡改为参数2并对其加密 hook.js: function hookcrypto(){console.log(script running .....)var utils Java.use(infosecadventures.allsafe.challenges.WeakCryptography);console.log(test\n);utils.md5Hash.implementation function(a){console.log(a);a quan;console.log(a);var ret this.md5Hash(a);console.log(ret);return The MD5 Result of a ret;} }function main(){Java.perform(function(){hookcrypto();}) }setImmediate(main);hook输出 页面效果 C、Random 把随机数修改为固定值111111 js: function hookcrypto(){console.log(script running .....)var utils Java.use(infosecadventures.allsafe.challenges.WeakCryptography);console.log(test\n);utils.randomNumber.implementation function(a){console.log(a);var ret 111111;console.log(ret);return The static data is ret;} }function main(){Java.perform(function(){hookcrypto();}) }setImmediate(main);hook输出 页面效果 10、本地动态链接库 任务使用frida hook密码检测的方法 1反编译查看 apktool.bat d 202204061604031.apk可知检测密码的函数在native层不能直接hook 2so文件查看检测函数代码 用Ghidra打开分析libnative_library.so文件找到Java_infosecadventures_allsafe_challenges_NativeLibrary_checkPassword函数 查看checkPass hook Java_infosecadventures_allsafe_challenges_NativeLibrary_checkPassword函数即可 void Java_infosecadventures_allsafe_challenges_NativeLibrary_checkPassword(_JNIEnv *param_1,undefined8 param_2,_jstring *param_3){checkPass(param_1,param_3);return; }由代码可知该函数没有返回但是要让if (NativeLibrary.access$checkPassword(nativeLibrary, editText2.getText().toString()))成立那么条件即为true 3hook方法 js: Java.perform(function(){ var nativePointer Module.findExportByName(libnative_library.so, Java_infosecadventures_allsafe_challenges_NativeLibrary_checkPassword); send(native: nativePointer); Interceptor.attach(nativePointer, { onEnter: function(args){ send(args[0].toInt32()); send(args[1].toInt32()); send(args[2].toInt32()); //send(args[3].toInt32()); //send(args[4].toInt32()); }, onLeave: function(retval){ send(original check result: retval.toInt32()); retval.replace(1);send(final check result: retval.toInt32());} }); });4hook结果 页面 5踩坑 最开始设的retval为true当成布尔型了 onLeave: function(retval){ send(original check result: retval.toInt32()); var ret true;retval.replace(ret);send(final check result: retval.toInt32());然后报错 定位到retval.replace(ret);代码 想了想if(a)a只要不是null就行,令它为1
http://www.zqtcl.cn/news/162190/

相关文章:

  • 大连开发区网站淘宝网站优化实例
  • 张家港建网站的公司做网站犯法了 程序员有责任吗
  • 小型企业网站建设项目浦东新区网站推广公司
  • 上海做网站优化公司ps最好用的素材网站
  • 网站建设品牌推广seo制作公司网站
  • 个人网站服务器一年多少钱科技让生活更美好作文450字
  • 开学第一课汉字做网站网盘资源搜索神器
  • 备案网站应用服务树莓派用来做网站
  • 找装修公司上什么网站湘潭交通网站
  • php网站服务建设网站增加关键字
  • 免费视频网站制作泰州东方医院
  • 单位的网站怎样设计才美观手机开发者选项
  • 网站可以做软件检测吗重庆潼南网站建设价格
  • 忘记网站后台地址建设网站协议范本
  • 平面设计素材网站排行榜前十名程序员网站开发框架
  • 搭建一个网站需要多少钱搜搜
  • 做搜狗手机网站手工制作大全折纸
  • 万网站天眼查询个人信息
  • 一份优秀的网络推广方案名风seo软件
  • 自己建设一个网站步骤中文wordpress主题下载
  • 如何在中国建设银行网站转账成都网页设计培训学校哪家好
  • 青岛建设网站制作wordpress代码高亮显示
  • 品牌创意型网站建设仿 手机 网站模板html
  • 信息化建设期刊网站网络规划设计师 用途
  • 商城网站开发的完整流程图精灵网站建设
  • 网站开发技术描述asp网站建设下载
  • 十堰网站开发洛阳网站开发公司
  • 做盗版网站坂田网站建设推广公司
  • 怎么用织梦修改建设一个新的网站小程序无代码开发平台
  • 网站建设询价外贸网页制作公司哪家好