Entry № 220
代码注入
代码注入 是什么?
代码注入一类漏洞,攻击者提供的数据被应用作为代码解释并执行,导致在应用上下文中实现任意执行。
代码注入是一个广义漏洞类别:不受信任的输入被纳入应用程序后续作为程序代码、配置或标记处理的内容,从而被运行时执行。具体形式包括 JavaScript 与 Python 的 eval 注入、服务端模板注入、表达式语言注入(OGNL、SpEL)、触发 gadget 链的不安全反序列化,以及基于用户数据的动态类加载。成功利用通常获得以应用身份运行的远程代码执行,常成为接管主机或集群的跳板。防御方法包括绝不从输入构建代码、使用参数化 API、限制动态特性,以及最小权限运行与沙箱化。
● 示例
- 01
eval(request.body.expr) 在 Node 服务中执行攻击者控制的 JavaScript。
- 02
Java 应用对用户提供的脚本调用 ScriptEngine.eval。
● 常见问题
代码注入 是什么?
一类漏洞,攻击者提供的数据被应用作为代码解释并执行,导致在应用上下文中实现任意执行。 它属于网络安全的 攻击与威胁 分类。
代码注入 是什么意思?
一类漏洞,攻击者提供的数据被应用作为代码解释并执行,导致在应用上下文中实现任意执行。
如何防御 代码注入?
针对 代码注入 的防御通常结合技术控制与运营实践,详见上方完整定义。
代码注入 还有哪些其他名称?
常见的别称包括: 远程代码执行, 任意代码执行。