漏洞利用编写者如何在 Java Machine 中发现错误?

逆向工程 爪哇 开发 漏洞分析
2021-06-14 03:12:27

我的问题是关于 Java 漏洞利用,例如这个:https : //www.us-cert.gov/ncas/alerts/TA13-010A(可利用这里http://www.securityfocus.com/bid/57246/

受害者应该访问该站点并接受在您的计算机上运行小程序。然后,如果 JVM 易受攻击,破解者就可以执行任意命令。

所以我的问题是:安全研究人员是如何发现这个漏洞的?我的意思是,不是具体的,而是他/她是如何(使用什么工具、方法等)找到这些漏洞的?他/她是否对 javaw.exe 进行逆向工程?有哪些方法?

3个回答

这在很大程度上取决于什么样的脆弱性。你提到的这个特殊的在 SecurityManager 中,你可以通过分析 Java 源代码相对容易地找到它。

要了解该过程是如何完成的,请查看Immunity 的 Esteban Guillardoy 撰写的这篇这篇文章。

Jduck 还发表了一些关于 JRE 中内存损坏漏洞的研究通过研究以前发布的漏洞,您可以更好地了解如何找到漏洞。

我记得 LSD-PL 的人很久以前在这个领域做了一些很棒的事情,你可以在这里找到它有点过时,但仍然相关。

好吧,我自己就是一名漏洞利用开发人员。攻击/研究的方法是:

  • 反转输入值。文件、网络协议等。
  • 使用此信息构建 Fuzzer
  • 模糊直到崩溃
  • 分析崩溃
  • 构建漏洞利用

我常用的另一种方法是反转兴趣点(例如 SingleSignOne 模块、其他登录方法、数据库连接(硬编码密码等)。

但这应该在 Security Exchange 上而不是在逆向工程上。

许多 Java 漏洞都围绕着绕过 Java 沙箱,即 Java 术语中的安全管理器。Sami Koivu 发表了许多关于 Java 安全性和漏洞利用的有趣工作,特别是他对 Java 安全性的 3 部分介绍。

http://slightlyrandombrokenthoughts.blogspot.ca/2009/02/java-se-security-part-i_25.html http://slightlyrandombrokenthoughts.blogspot.ca/2009/07/java-se-security-part-ii-immutability .html http://slightlyrandombrokenthoughts.blogspot.ca/2010/02/java-se-security-part-iii-keys.html