在服务器上都会定时运行一些脚本以完成周期性的任务. 而这些脚本往往是以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!!!";
?>

转自天国哥哥的博客。

PHP提权之异步执行的更多相关文章

  1. RHSA-2017:2930-重要: 内核 安全和BUG修复更新(需要重启、存在EXP、本地提权、代码执行)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  2. RHSA-2017:2299-中危: NetworkManager 和 libnl3 安全和BUG修复更新(本地提权、代码执行)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  3. RHSA-2017:1842-重要: 内核 安全和BUG修复更新(需要重启、存在EXP、本地提权、代码执行)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  4. RHSA-2018:0395-重要: 内核 安全和BUG修复更新(需要重启、本地提权、代码执行)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  5. Oracle数据库提权(dba权限执行系统命令)

    0x01 提权准备 这里我们先创建一个低权限的用户test SQL> conn sys/admin123@orcl as sysdba; 已连接. SQL> create user tes ...

  6. windows服务器提权前请先执行systeminfo命令

    pr.巴西烤肉 对应补丁 好多朋友见到Windows服务器就祭出pr.巴西烤肉一气搞,忙完免杀又忙找可写目录,最后发现服务器打上了对应的补丁.笔者在提权前都会执行systeminfo命令,查看对应补丁 ...

  7. WIN提权总结【本地存档-转载】

    [ web提权 ] 1.能不能执行cmd就看这个命令:net user,net不行就用net1,再不行就上传一个net到可写可读目录,执行/c c:\windows\temp\cookies\net1 ...

  8. 2019-12-10:win7,win12提权练习

    一.win7 1,上传webshell到服务器,访问 2,因为win7权限没设置好,导致任何命令都可以执行 直接提权成功,还可以通过msf工具利用exp进行提权,今天太晚了就先不做了 二.win201 ...

  9. Linux提权之利用 /etc/passwd 文件

    当我们获得了某个Linux服务器的低权限之后,我们想要对该低权限账号进行提权,以执行更多的操作. 接下来我们的提权是利用 /etc/passwd 文件的可写入权限,导致我们写入一个其他用户进去. 首先 ...

随机推荐

  1. maven国内镜像

    <?xml version="1.0" encoding="UTF-8"?> <!--Licensed to the Apache Softw ...

  2. Ubuntu1804编译安装LNMP

    2018-06-05 21:25:55 Ubuntu Linux GP --generic #-Ubuntu SMP Wed May :: UTC x86_64 x86_64 x86_64 GNU/L ...

  3. ansible中playbook使用

    palybook使用 ####yaml语法ansible中使用的yaml基础元素:变量Inventory条件测试迭代 playbook的组成结构InventoryModulesAd Hoc Comma ...

  4. 【03】react 之 创建component

    React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同归:具体的三种方式: 函数式定义的无状态组件 es5原生方式React.createClass定义的组件 es6形式的ext ...

  5. updatepanel的使用【他人经验+原创 完整例子】

    原文发布时间为:2009-05-16 -- 来源于本人的百度文章 [由搬家工具导入] 刚上传的代码,不知道能不能下载:[源码包含所有ajax控件的简单使用] http://www.xmaspx.com ...

  6. powershell常用

    对于powershell,比较强大的shell,可以直接调用.net进行下载等等 get-command|where-object{$_.name -like 'write*'} get-wmiobj ...

  7. java网络编程(二)

    客户端程序: package net; import java.io.OutputStream; import java.net.Socket; /** * Created by hu on 2015 ...

  8. [LeetCode] Factorial Trailing Zeroes 阶乘末尾0

    Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in log ...

  9. 带接口的webservice 的发布

    1.接口:(打上service注解) package ws.qlq.a; import javax.jws.WebService; /** * 面向接口的webservice发布方式 * * */ @ ...

  10. vmware tools安装过程

    每次通过vmware安装Ubuntu的时候,总是会多多少少出点问题.好容易披荆斩棘把镜像安好了,然而屏幕却只有小小一个,不能显示大屏,我就知道肯定是缺少了vmware tools.于是点击左上方菜单中 ...