有哪些常见的Java漏洞可以被利用来获得对系统的某种访问?我最近一直在考虑它,并没有能够提出任何东西 - 整数溢出 - 也许?竞争条件 - 它给你带来了什么?
我不是在寻找像"在Web应用程序中注入SQL"之类的东西.我正在寻找类似于缓冲区溢出的关系--c/c ++.
那里有哪些安全专家可以提供帮助?谢谢.
恶意代码注入.
因为Java(或在运行时使用解释器的任何语言)在运行时执行链接,所以可以在运行时将预期的JAR(相当于DLL和SO)替换为恶意的JAR.
这是一个漏洞,自Java的第一个版本以来,它使用各种机制进行了打击.
类加载器中的位置有保护,以确保无法从rt.jar(运行时jar)外部加载java.*类.
此外,可以使用安全策略来确保从不同源加载的类仅限于执行某组操作 - 最明显的例子是applet.Java安全策略模型限制小程序读取或写入文件系统等; 签名的applet可以请求某些权限.
JAR也可以进行签名,这些签名可以在加载时在运行时进行验证.
包装也可以密封,以确保它们来自相同的代码源.这可以防止攻击者将类放入您的程序包,但能够执行"恶意"操作.
如果你想知道为什么所有这些都很重要,想象一下注入到类路径中的JDBC驱动程序,它能够将所有SQL语句及其结果传输给远程第三方.好吧,我猜你现在得到了这张照片.