zoukankan      html  css  js  c++  java
  • command injection命令注入

    命令注入

    是指程序中有调用系统命令的部分,例如输入ip,程序调用系统命令ping这个ip。如果在ip后面加一个&&、&、|、||命令拼接符号再跟上自己需要执行的系统命令

    在ping设备的输入框中ip后面加上&ifconfig,或者其他命令

     222.222.221.138&ifconfig

    和文件上传漏洞对比

    相同点

    相同的地方是都是根据程序调用系统命令

    不同点

    命令注入是程序调用系统命令,在参数没有约束的情况下,在参数后加上需要执行的系统命令。这个限制在于程序不一定提供这种调用系统命令的功能。

    文件上传漏洞是自己手动上传一个执行系统命令的页面,然后访问这个页面,把命令以参数的形式传给页面执行。

    上图中在文件上传漏洞同样可以达到一样的效果

    工具的使用

    Commix工具可以用来命令注入.

    防护

    参数过滤

    白名单保护

    如果命令的参数是有特征性的建议使用白名单对输入的参数进行保护

    比如允许[a-z][A-Z][0-9] _- 等有限的字符

     黑名单保护

    |;&$><`! 可以将这些字符直接作为黑名单过滤

    f u0000 这些字符需要作为黑名单过滤,特别是空字符截断 u0000 (这个在JVM6里是没有保护)

  • 相关阅读:
    迷你资源管理器
    简单工厂和单例的一些事
    面向对象的七大原则
    继承和多态的一些事
    体检套餐系统
    信仰
    魔兽争霸系统
    优化MySchool总结习题
    事务,视图及索引
    [LeetCode] Combinations
  • 原文地址:https://www.cnblogs.com/aeolian/p/11051361.html
Copyright © 2011-2022 走看看