命令执行

0x01 命令执行漏洞原理

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

产生漏洞的缘由:git

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

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

0x02 PHP中的命令执行函数

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

exec:执行一个外部程序函数

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

passthru:执行外部程序而且显示原始输出测试

popen:打开进程文件指针url

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

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

0x04 Windows命令执行

示例代码:spa

<?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"

相关文章
相关标签/搜索