开发一个基于Dalvik字节码的相似性检测引擎,比较同一款Android应用程序的不同版本之

访客5年前关于黑客接单701
上文咱们说过,《针对Dalvik字节码的类似性检测引擎,比较同一款Android运用程序的不同版别之间的代码差异》这篇文章计区分两个部分来解说,上文只介绍了怎么运用Quarkslab公司开发的diff引擎。本文咱们将介绍一个用例:URl诈骗缝隙(CVE-2019-10875) ,别的还会介绍怎么将Redex与diff东西相结合,检测被混杂处理的运用程序中究竟发生了哪些修正? CVE-2019-10875缝隙及缓解办法的剖析 CVE-2019-10875缝隙介绍 mint browser(薄荷阅读器)是小米专门为安卓手机用户规划的一款轻量级阅读器运用,这款软件内存很小,规划的非常简练,可是该有的功用一应俱全,支撑语音搜索,能够带给用户更好的阅读体会。不过就在2019年4月,研究人员曝出小米薄荷阅读器存在URL诈骗缝隙,进犯者可把歹意链接伪装成威望网站的URL,对受害者进行垂钓进犯。之后尽管小米公司敏捷发布了安全补丁,但有人发现安全补丁存在严峻的问题,只需要简略添加几个字母,就可绕过。该缝隙是CVE-2019-10875。粗略地说,小米薄荷阅读器为了提高用户体会,在当你翻开某个 *** 链接时,若链接类似于https://www.google.com/?q=www.domain.com时,则网址栏就只会显现www.domain.com,也便是只显现?q=后边的字段。因而,一旦进犯者结构https://www.evil.com/?q=www.google.com这类的链接进行垂钓进犯,受害者则只会在网址栏看到www.google.com,信任任何人都不会置疑谷歌是垂钓网站。当进犯者输入https://www.andmp.com/?q=www.google.com时,跳转成功后,可看到地址栏显现www.google.com,但页面其实是www.andmp.com的内容,这种URl诈骗缝隙进犯者运用起来毫无难度,只是只需要假造一个简略的歹意链接。 这就会形成,进犯者能够运用此安全缝隙作为 *** 垂钓活动的一部分。该缝隙会影响1.6.1或更低版别,所认为了安全,请赶快升级到1.6.3版。 现在,让咱们假定有人想快速了解这个缝隙是怎么作业的。要做到这一点,最快的办法是在发现到这个缝隙之后查看开发人员运用的安全补丁。它应该会引导咱们拜访易受进犯的代码并阻挠咱们查看整个运用程序代码。 在本文中,咱们会介绍怎么运用diff剖析来找出代码的哪些实践部分被修正,以维护用户免受缝隙影响。请注意,由于JNI特性,依据不同的状况,还能够在嵌入式本机库中进行一些修正。假如是这样,则有必要在本机代码等级履行互补的diff进程。 挑选要比较的类 首要,咱们有必要削减要进行比较的类的调集,以便只保存由小米开发团队实践开发的类。这一步非常重要,由于它使得比较进程更快,成果更精确。坐落APK根目录的AndroidManifest.xml能够为咱们供给有关其开发包的一些有用信息,这些开发包一般包括它们的大部分活动、服务、播送接收器等。 这样,咱们很快就会发现manifest文件中介绍的一个名为com.miui.org.chromium.chrome.browser的资源包,该包括有root权限,被很多类同享。因而,咱们会首要比较其间包括的类。以下Python代码展现了具体作业进程: lhs_app = load("com.mi.globalbrowser.mini-1.6.1.apk.apk") # Loading left handside application rhs_app = load("com.mi.globalbrowser.mini-1.6.3.apk.apk") # Loading right handside application condition = {"package_filtering": "com.miui.org.chromium.chrome.browser"} lhs_classes = filter(lhs_app.classes, condition) rhs_classes = filter(rhs_app.classes, condition) 查找修正过的类 一旦得到类,咱们就需要知道哪些类现已被修正。为此,咱们有必要事前优化选项。 optimizations = { "inner_skipping": False, "external_skipping": False, "synthetic_skipping": True, "find_obfuscated_packages": False, "min_inst_size_threshold": 5, "top_match_threshold": 3 } diff_results = diff(lhs_classes, rhs_classes, 0.8, optimizations) 这些优化选项别离装备了diff引擎: 1.不要越过内部和外部类:内部类和外部类很可能包括修正过的代码。 2.越过组成类:组成类是由编译器主动生成的,因而不太可能嵌入修正过的代码。 3.不要企图找到现已被混杂的包名:如前所述,包称号好像没有混杂。设置此选项后,diff引擎将不会考虑由混杂引起的潜在问题。 4.不要考虑嵌入少于5条指令的类:运用程序一般包括一切看起来类似的小类(例如,一些只回来特点值的办法)。但是,在大多数状况下,它们在比较版别的diff方面毫无价值。大多数状况下,他们只会进行一些误报,不过,这些成果能够经过设置适宜的值来消除。 5.在三个高档类中进行完全的比较:假如咱们处理的类在结构等级上大致相同,则有必要添加此选项。不过这超出了本文所讲的规模。 此外,咱们将匹配阈值设置为0.8,由于在寻觅修正的缝隙时,咱们只希望寻觅那些进行较小修正的缝隙。这意味着,匹配间隔低于此值的类,将在成果中直接被删去。 此刻,咱们得到了diff()函数的成果,能够用下面的Python代码对它们进行迭代: for match in diff_results: if match.distance {match.distance:1.4f}") 履行完整个脚本后,会输出很多成果。 [+] com/miui/org/chromium/chrome/browser/widget/progress: ToolbarProgressBar - ToolbarProgressBar.java | com/miui/org/chromium/chrome/browser/widget/progress: ToolbarProgressBar - ToolbarProgressBar.java -> 0.9994 [+] com/miui/org/chromium/chrome/browser/update: HomePageDataUpdator - HomePageDataUpdator.java | com/miui/org/chromium/chrome/browser/update: HomePageDataUpdator - HomePageDataUpdator.java -> 0.9794 [+] com/miui/org/chromium/chrome/browser/init: ChromeBrowserInitializer$2 - ChromeBrowserInitializer.java | com/miui/org/chromium/chrome/browser/init: ChromeBrowserInitializer$2 - ChromeBrowserInitializer.java -> 0.9771[1][2][3][4][5]黑客接单网

相关文章

减少Rust开发的闭源项目中的调试信息-黑客接单平台

Rust是一门体系编程言语,专心于安全,尤其是并发安全,支撑函数式和指令式以及泛型等编程范式的多范式言语。Rust在语法上和C++类似,可是设计者想要在确保功用的一起供给更好的内存安全。 由于Rust...

HTML5:<a>的ping特点之逝世ping与隐私追寻

在HTML5中 标签参加了一个新的特点ping。规划者参加它的理由是, Ping能够使浏览器对外发送一个异步恳求,一般用来广告的追寻、点击率计算或完结一次HTTP重定向。 可是听到监督、追寻这个词,...

根据时延的盲道研讨:受限环境下的内容回传信道

在一次缝隙赏金活动中,挖到个指令注入的洞,我先以时延作为证明向厂商提交该缝隙,厂商以国内网络环境差为由(确实得翻墙)拒收,几回交流,奉告若我能取回指定文件 secret.txt 才认可。方针是个受限环...

运用Burp的intruder功用测验有csrf维护的应用程序

许多Web运用会有避免跨站恳求假造的战略,比方经过request恳求传一个当时页面有用或许当时会话有用的参数(假如他们没有,那就很值得研讨)。这些参数用来证明这个恳求是从预订用户宣布的,而不是进犯者那...

钓鱼攻击姿势老套,不明真相还是上当-黑客接单平台

近来,深服气安全团队捕获到一同高度个性化的垂钓进犯事情,进犯者针对用户企业假造了多份带有专业内容的进犯文档,经过邮件发送到方针邮箱,妄图诱导用户翻开附件中的文档。 经安全专家剖析,该文档其实为带有缝隙...

下一代网络钓鱼技术——滥用Azure信息保护功能-黑客接单平台

在这篇文章中,咱们将从攻击者的视点介绍怎么运用Azure信息维护(Azure Information Protection,AIP)来改善网络垂钓技能。这个主意是在一次测验作业进程中发生的,其时我正在...