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

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

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

评论

您可以阅读openjdk.java.net的资源

#1 楼

这很大程度上取决于哪种漏洞。
您提到的这一特定代码在SecurityManager中,通过分析Java源代码,您可以相对容易地找到它。

要了解该过程是如何完成的,请看一下Esteban Guillardoy of Immunity的这篇文章和这篇文章。

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

我记得,很早以前LSD-PL的人们在这方面做了一些很棒的工作,您可以在这里找到。它有点过时,但仍然有意义。

#2 楼

好吧,我本人是漏洞利用开发人员。攻击/研究的方法是:


反转输入值。文件,网络协议等。
使用此信息构建Fuzzer
直到崩溃为止的
分析崩溃
构建漏洞利用

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

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

评论


我认为安全性交换不会比RE提供更好的答案。

–0xea
13-10-5在21:59

同意,因为Security Exchange并不是真正的技术安全研究(漏洞开发,逆转恶意软件等),而是更多基于ITIL,网络和常识的安全性。但这仍然不是RCE问题,而是安全问题。我自己仍然认为应该进行漏洞利用开发堆栈交换。

– Stolas
13-10-6在10:42

好的,但是如何“反转输入值”?您是否颠倒了iexplorer.exe和小程序?

– jyz
2014-09-29 14:26

@jyzus windbg破坏了这些kernelbase!ReadFile类型的Symbols,然后运行该工具。反转输入变量的流程。

– Stolas
2014年9月30日6:30在

#3 楼

许多Java漏洞都围绕绕过Java沙箱(Java的安全管理器)。 Sami Koivu发表了许多有关Java安全性和漏洞的有趣的著作,特别是他对Java安全性的三部分介绍。

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