跳转至

OS Exec/injection

0x01 漏洞描述

命令执行/注入漏洞通常因为应用在服务器上拼接系统命令而造成的漏洞。攻击者通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的。

0x02 常见应用场景

命令执行/注入漏洞通常出现在调用外部程序完成一些功能的情景下。

  • 管理界面的配置主机名/IP/掩码/网关、查看系统信息等功能处
  • 关闭、重启等功能处
  • ping、nslookup等验证主机等功能处
  • 提供发送邮件、转换图片等功能处

0x03 漏洞危害

攻击者可在服务器通过利用拼接、管道符、通配符等绕过手段来执行任意命令,写入后门,从而入侵服务器,获取服务器权限,直接导致服务器沦陷。

0x04 修复建议

  1. 在代码级调用shell时,对命令行中的特殊字符(比如|&等)进行转义,防止执行其他非法命令。
  2. 根据业务逻辑进行白名单方式校验或使用正则表达式进行过滤。
  3. PHP中可使用escapeshellargescapeshellcmd来转义对应敏感字符。
  4. 对于相关敏感的命令执行函数,做好参数校验和合法性验证,或者直接在配置文件中禁用该函数,不要让用户可以直接控制evalsystemexecshell_exec等函数的参数 。