【突破PHP函数禁用执行Shell代码分析】教程文章相关的互联网学习教程文章

PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码

代码如下:$command = '/usr/bin/php /pub/www/u111/job/Crondo/auto_collector.php &'; $process = proc_open($command, array(),$pipes); $var = proc_get_status($process); proc_close($process); //pid就是进程ID,至于为什么要加1,我现在也没有搞懂,经过多次的测试,发现$var['pid']得到的ID比实际的少1 $pid = intval($var['pid'])+1; //杀死进程 proc_close(proc_open('kill -9 '.$pid, array(), $pipes));

PHP教程之PHP中shell脚本的使用方法分享

作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。   PHP经过长时间的发展,很多用户都很了解PHP了,这里我发表一下个人理解,和大家讨论讨论。大多数情况下,我使用 exec() 命令和数据数组处理所有东西。或者对更简单的命令使用 shell_exec(),尤其是不关心结果时。如果仅需...

php-cli简介(不会Shell语言一样用Shell)

1.基础知识 1.1 什么是Shell编程? 在 Unix 中,shell 可不是简单的命令解释器(典型的有 Windows 中的 DOS ),而是一个全功能的编程环境。Shell 是操作系统的一部分,用来与用户打交道,并且可以用来协调各个命令【1】。用Shell编程可以灵活地解决大量重复任务,十分方便。但是,Shell的语法十分怪异(个人意见),不容易记,如果现在熟悉的语言可以用来写shell那就好了——比如php——就可以快速开发Shell程序了(比如我的Premin...

解析php中如何直接执行SHELL

$message=shell_exec("sudo /usr/local/webserver/nginx/sbin/nginx -t 2>&1");echo "运行结果:".$message."<br/>"; 上面的语句可以直接在PHP中执行SHELL语句如果有返回值 那么其中的 2>&1 是必须的 他会重定向输出strerr 转到strout 输出! 否则返回结果会为空!

shell脚本作为保证PHP脚本不挂掉的守护进程实例分享

前几天开始跑一份数据名单,名单需要提供用户名、是否有手机号、是否有邮箱,用户名单我轻易的获取到了,但是,用户名单有2000w之多,并且去检测用户是否有手机号、是否有邮箱必须得通过一个对外开放的安全接口一个一个用户去请求,然后分析返回值才能知道。下面是我处理的方案:1、将2000w名单保存到临时数据表2、用PHP程序每次从该表获取500个用户,检测完后生成SQL update原纪录3、为了防止PHP程序突然断掉,用shell脚本每隔1分...

php使用exec shell命令注入的方法讲解

使用系统命令是一项危险的操作,尤其在你试图使用远程数据来构造要执行的命令时更是如此。如果使用了被污染数据,命令注入漏洞就产生了。exec()是用于执行shell命令的函数。它返回执行并返回命令输出的最后一行,但你可以指定一个数组作为第二个参数,这样输出的每一行都会作为一个元素存入数组。使用方式如下: 代码如下:<?php$last = exec('ls', $output, $return);print_r($output);echo "Return [$return]";?>假设ls命令在shel...

解决php接收shell返回的结果中文乱码问题

如果需要php执行一些shell命令,查看显示结果的话,如果shell输出的有中文,则php得到的中文返回结果可能类似是 “?\230?\180?\187?\229?\138?\168” 的字符串。那么需要这个函数转译: 代码如下://这个函数接收的都是路径,所以判断了文件扩展名 function shell2txt($a){ $ary = explode(/, $a); foreach($ary as $k => $v){ if(strpos($v, ?\\) !== false){ $_ary = explode(?\\, $v); foreach($_ary as $_k=>$_v){ if($_v == )...

php管理nginx虚拟主机shell脚本实例

本文实例讲述了php管理nginx虚拟主机shell脚本,分享给大家供大家参考。具体分析如下: 使用php作为shell脚本是一件很方便的事情。理所当然,我们可以使用php脚本来管理 nginx虚拟主机,下面是笔者的 脚本 文件供各位参考:代码如下:#!/usr/bin/php -q <?php start: fwrite(STDOUT,"===========Vhost Script===========\n"); fwrite(STDOUT,"= Choose an operation \n"); fwrite(STDOUT,"= 1.Create 2.Delete 3.Exit\n"); fwrite...

PHP和Shell实现检查SAMBA与NFS Server是否存在

通常会通过 /etc/fstab 来处理挂载的设置,然后再使用 mount -a 来重新确认挂载,最好在排程的程序用到挂载目录时也执行一次 mount -a,挂载目录在断线后是不会自动回复的,mount -a 的 Timeout 其实还蛮久的,尤其是 Server 不存在的时候,所以最好还是用对应的 client 先确认 server 是否存在。 而检查 NFS 的 client 可以用 showmount 来处理,在 Ubuntu 上的安装方式如下: 代码如下: sudo aptitude install nfs-common而 SAMB...

PHP+shell实现多线程的方法

本文实例讲述了PHP+shell实现多线程的方法。分享给大家供大家参考。具体如下: 这里介绍如何借助shell脚本实现多线程。 先写个简单的php代码,这里为了让脚本执行时间更长,方便看效果,sleep一下,呵呵!先看下test.php的代码: PHP代码: <?php for ($i=0;$i<10;$i++) {echo $i;sleep(10); } ?>在看下shell脚本的代码,非常简单 #!/bin/bash for i in 1 2 3 4 5 6 7 8 9 10 do /usr/bin/php -q /var/www/html/test.php & done 注意...

PHP实现webshell扫描文件木马的方法

本文实例讲述了PHP实现webshell扫描文件木马的方法。分享给大家供大家参考,具体如下: 可扫描 weevelyshell 生成 或加密的shell 及各种变异webshell 目前仅支持php 支持扫描 weevelyshell 生成 或加密的shell 支持扫描callback一句话shell 支持各种php大马 <!DOCTYPE html> <html> <head><meta charset=gb2312><title>PHP web shell scan</title> </head> <body> </body> <?php define("SELF",php_self()); error_reporting(E_ERR...

PHP排序算法之希尔排序(Shell Sort)实例分析【图】

本文实例讲述了PHP排序算法之希尔排序(Shell Sort)。分享给大家供大家参考,具体如下: 基本思想: 希尔排序是指记录按下标的一定增量分组,对每一组使用 直接插入排序 ,随着增量逐渐减少,每组包含的关键字越来越多,当增量减少至 1 时,整个序列恰好被分成一组,算法便终止。 操作步骤: 先取一个小于 n(序列记录个数) 的整数 d1 作为第一个增量,把文件的全部记录分组。所有距离为 d1 的倍数的记录放在同一个组中。先在各组内...

PHP常见过waf webshell以及最简单的检测方法【图】

前言 之前在Webshell查杀的新思路中留了一个坑 ?,当时没有找到具体找到全部变量的方法,后来通过学习找到了个打印全部量的方法,并再次学习了下PHP webshell绕过WAF的方法,以此来验证下此方法是否合理。 如有错误,还请指出,不胜感激! :turtle:拜 在那篇文章中我突然想到一种检测webshell的方法,就是首先获取到当前文件中的所有变量(不明白的可以先去看下之前的文章),然后再根据正则库进行静态检测。 自认为这种方法虽然会...

PHP传递数组格式参数到shell脚本中【代码】【图】

PHP中传递类似于“数组”格式数据到shell脚本中:模拟场景1计算捆绑商品的价格,捆绑商品中包含多个商品,这个商品是不确定的,我们暂时定义为苹果、栗子、香蕉,价格分别为8元/斤、10元/斤、3元/斤,重量规格定为500g,我们把价格当做参数传递给shell脚本计算总价格以下是关于PHP部分的代码:$prices = array("apple" => 8,"banana" => 3,"chestnut" => 10 );$command = "bash ".ROOT_PATH."/script/test.sh "; foreach ($pr...

记录thinkphp5.0和5.1的getshell漏洞【代码】【图】

下面由thinkphp框架教程栏目给大家介绍thinkphp5.0和5.1的getshell漏洞,希望对需要的朋友有所帮助!之前网站被提权了,那时候网站才建没几天,应该不会有人故意为之,可能是批量扫描getshell的,为了方便我找的是开源系统thinkcmf建了博客,看着挺不错的,因为thinkcmf用的是thinkphp5.0的框架开发的,我到thinkphp.cn上去看了一下,原来有一个提权漏洞。libaray/think/app.php文件中模块,控制器,方法使用的是/来区分开来。然后...

执行 - 相关标签