命令执行

0x01 命令执行漏洞原理

Web应用程序接收用户输入,并拼接到要执行的系统命令中执行。

产生漏洞的原因:

1.用户输入未过滤或净化;

2.拼接到系统命令中执行。

0x02 PHP中的命令执行函数

system:执行外部程序,并且显示输出

exec:执行一个外部程序

shell_exec:通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。

passthru:执行外部程序并且显示原始输出

popen:打开进程文件指针

0x03 简单的命令执行漏洞代码

<?php
    echo "<pre>";
    if(isset($_GET["cmd"])){
      system($_GET["cmd"]);
    }
    echo "</pre>";
?>

0x04 Windows命令执行

示例代码:

<?php
    echo "<pre>";
    $arg = $_GET['cmd'];
    if ($arg) {
        system("ping  $arg");
    }
    echo "</pre>";
?>

拼接符介绍:

&:无论前面的语句的真假,后面都会执行

&&:前面的语句为假,后面的也不执行

|:直接执行后面的语句

||:前面的语句为假,才会执行后面的

0x05 Linux命令执行

示例代码:

<?php
    echo "<pre>";
    $arg = $_GET['cmd'];
    if ($arg) {
        system("ping -c 4  $arg");
    }
    echo "</pre>";
?>

可以用kali的apache2来搭建。

拼接符介绍:

;:分号是前面的语句执行完后,才会执行后面的语句

|:管道符,显示后面的语句的执行结果

||:前面的语句为假,才执行后面的

&和&&也是同Windows的。

0x06 命令执行自动化工具commix

1.Commix是一个使用Python开发的漏洞测试工具,这个工具是为了方便的检测一个请求是否存在命令注入漏洞,并且对其进行测试,在其作者发布的最新版本中支持直接直接导入burp的历史记录进行检测,大大提高了易用性。

项目地址:https://github.com/stasinopoulos/commix

2.帮助信息:

kali自带commix。

commix -h获取帮助信息。

3.基本使用:

commix -u "url"

posted @ 2020-04-19 17:54  Paddling  阅读(508)  评论(0编辑  收藏  举报