gpt4 book ai didi

java - Java 中可以进行代码注入(inject)吗?

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:32 24 4
gpt4 key购买 nike

现在您可以阅读很多关于代码注入(inject)、漏洞利用、缓冲区、堆栈和堆溢出等导致注入(inject)和运行代码的内容。我想知道这些东西中有哪些与 Java 相关。

我知道,Java 语言中没有指针。但是 JVM 不是在堆和/或栈中组织数据吗?我知道没有 eval 函数(就像在 PHP 中一样),所以您不能轻松地将输入用作 Java 代码。我不太确定字节码级别发生了什么。

我认为 XSS 是可能的,例如在 Java EE 应用程序中,当没有输入被过滤时。但这不是更多的 JavaScript 注入(inject),因为注入(inject)的代码在浏览器中运行,而不是在 JVM 中运行吗?

那么哪些代码注入(inject)可以用 java 实现,哪些不可以?其他 Java 平台语言也是如此吗?

提前致谢。

最佳答案

Java 程序本身几乎不容易受到代码注入(inject)的攻击。但是,支持该应用程序的所有 native 代码都容易受到所有不同类型的代码注入(inject)的攻击 - 这包括 JVM 和应用程序或其库中的所有 native 代码部分。

此外,还有一些事情需要考虑:

任何将 java 用作通往其他系统的网关的地方都是可能的:

SQL注入(inject)

XSS(说到底就是JavaScript注入(inject))

如果 java 程序本身是某种解释器/编译器,则可以将代码注入(inject)到您的解释语言/编译程序中(这包括将您的程序用作 java 编译器...)

当然,如果您可以让 java 程序将包含代码(无论是 native 代码、java 代码还是其他代码)的文件写入磁盘,您也许可以通过其他方式执行它(这可能是一个不同的漏洞在你的应用程序、操作系统或其他应用程序中)——这不是直接代码注入(inject),但在效果上非常相似。

关于java - Java 中可以进行代码注入(inject)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1880929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com