zoukankan      html  css  js  c++  java
  • PHP提权之异步执行

    在服务器上都会定时运行一些脚本以完成周期性的任务. 而这些脚本往往是以root权限启动的, 替换或者改变其中的内容就可以完成提权.而今天在这要讲解的就是php提权中的异步执行方法.

    在php中一般大家都用下面四个函数来调用系统命令,或者外部程序:

    <?
    echo exec("dir");
    echo shell_exec("dir");
    echo system("dir");
    echo passthru("dir");
    echo `dir`;
    ?>

    linux下可以通过在执行的命令后加上>/dev/null 2>&1 & 来丢弃所有的输出信息, 并在将此行命令单独开出一个进程放到后台执行, 从而不会阻塞当前脚本往下继续执行.

    <?
    .....
    exec("tar cjf /root && >/dev/null 2>&1 &);
    ......
    ?>

    但是在windows的cmd中并没有提供后台执行这个功能(&). 这时候除了使用at命令来添加定时执行任务外(很多时候定时服务是未打开的), 就只能用popen加上 start /b来完成使命了.

    <?
    #经过实验只有popen函数可以
    #popen("start /b s..bat","r"); #成功
    #exec("start /b s..bat");#失败
    popen("start /b ping -n 10 www.baidu.com && echo "1111" > ok.txt && ping -n 10 www.baidu.com && echo "2222" > ok2.txt && ping -n 10 www.baidu.com && echo "3333" > ok3.txt ","r");
    echo "ALL is finish until here!!!";
    ?>

    转自天国哥哥的博客。

  • 相关阅读:
    AO-XXXX
    最基础的rpm命令
    yum插件
    adjtimex修改tick值用法举例
    [工具]iostat
    chrony配置介绍
    CentOS / RHEL 7 : Chrony V/s NTP (Differences Between ntpd and chronyd)
    NTP测试1
    shell使用eval进行赋值bc计算,bad substitution
    Free中的buffer和cache理解
  • 原文地址:https://www.cnblogs.com/dongchi/p/4272890.html
Copyright © 2011-2022 走看看