任意代码执行

任意代码执行（简称ACE）是指攻击者能够讓目标電腦或目标进程中执行任意命令或代码。如果系統有地方可以被黑客利用以執行任意代碼，則此處被稱為任意代碼執行漏洞。特別設計利用此一漏洞的程式，稱為任意代碼執行漏洞利用。可以通过网络（尤其是通过互联网等广域网）讓目标電腦（遠程電腦）執行任意代码的能力稱為远程代码执行（RCE）。

 漏洞类型 
有许多类型的漏洞可能导致攻击者能够执行任意命令或代码。例如：

 内存安全漏洞，例如缓冲区溢出或过度读取
 反序列化漏洞
 类型混淆漏洞
 GNU LDD 任意代码执行

 方法实现 
任意代码执行通常是通过控制正在运行的进程的指令或指针（例如跳转或分支）来实现的。指令和指针通常指向进程中将要执行的下一条指令。因此，对指令指针值的控制可以控制接下来执行哪条指令。为了执行任意代码，许多漏洞将代码注入到进程中（例如通过向进程发送输入，该输入存储在RAM中的输入缓冲区中）并使用漏洞更改指令指针以使其指向注入的代码，然后注入的代码将自动执行。这种类型的攻击利用了大多数计算机（使用冯诺·依曼架构）没有对代码和数据进行一般区分的事实，因此可以将恶意代码伪装成无害的输入数据。许多较新的 CPU 具有NX Bit机制，使任意执行代码更难。

 权限提升 
就其本身而言，任意代码执行漏洞可赋予攻击者与易受攻击的目标进程相同的权限。例如，如果利用网络浏览器中的漏洞，攻击者可以充当用户，执行修改个人计算机文件或访问银行信息等操作，但无法执行系统级操作（除非有问题的用户也有该访问权限）。

为了解决这个问题，一旦攻击者可以在目标上执行任意代码，通常会尝试进行权限提升漏洞利用以获得额外的控制权。这可能涉及内核本身或管理员、SYSTEM 或 root 帐户。无论有没有这种增强的控制，漏洞利用都有可能造成严重的破坏或将计算机变成僵尸——但权限提升有助于隐藏系统合法管理员的攻击。

 参见 



 Log4Shell

 参考文献 
Category:注入漏洞