upload-labs后续(14-)

图片马

在图片中加入木马,然后上传让浏览器解析,达到上传木马的目的

制作图片马:可以在notepad++或者winhex中打开文件,在文件头中加入图片的文件头,再在文件末尾加入木马即可。

图片文件头如下:
1.Png图片文件包括8字节:89 50 4E 47 0D 0A 1A 0A。即为 .PNG。
2.Jpg图片文件包括2字节:FF D8。
3.Gif图片文件包括6字节:47 49 46 38 39|37 61 。即为 GIF89(7)a。
4.Bmp图片文件包括2字节:42 4D。即为 BM。

文件包含漏洞

实质:上传一段脚本,让服务端执行

包含:把可重复使用的函数写入到某个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数。

意义:攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。

pass-14

看题目环境,打开后看到提示说上传一个图片马,然后使用文件包含漏洞。

1.上传一个图片马并访问

2.使用文件包含漏洞

构造如下url然后访问即可

pass-15

1.上传图片马

getimagesize函数:对目标文件用16进制进行读取文件头的几个字符串是不是符合图片的要求,我们修改文件头为相应的

2.使用文件包含漏洞

pass-16

1.添加扩展(这个由于是自己搭的网站,会出现这种问题)

exif_imagetype()读取一个图像的第一个字节并检查其后缀名。需要在phpstudy的扩展种开启php.exif选项

Exif(Exchangeable image file format)是一种存储在JPEG和TIFF图像文件中的元数据,它包含有关图片的信息。PHP提供了一个名为Exif的扩展,可以方便地读取和处理这些信息

注意:php5.6以上的版本才能成功解析图片木马

2.上传图片马并构造包含的url

url格式为:include.php?file=upload

pass-17(二次渲染+图片马)

二次渲染:你上传的图片内容会被指令覆盖而生成或者改变成其他内容。

1.看源码

上传原本的图片马你会发现能成功上传,但是不能成功解析我们木马,查看源码,源码说会给图片进行二次渲染而生成新的图片

这里值得注意的是二次渲染并不是将所有部分都重新渲染,而是某部分被渲染

 2.打开010编辑

将之前上传成功的图片另存,并将其与没有上传的图像进行比较,可以明显看出,我们的木马部分被二次渲染,因为只是渲染部分的缘故,我们将木马插入其中一个没有被渲染的地方(16进制),再进行上传。

3.使用文件包含漏洞,成功。

pass-18(条件竞争)

1.代码审计

这上面说:假如我们上传的是jpg,png,gif类的图,会先被保存到服务器(move_uploaded_file()函数),之后就会被重新命名。反之,unlink()函数会删除这个文件。总体流程是先上传,判断文件名(是否删除文件),再进行重命名和二次渲染。

2.利用条件竞争上传绕过

我们在清理文件时会经常遇到:你打开一个文件,然后再发现你不想要,你想把它删除了,发现删除不了,这是因为你打开的文件尚未关闭,因此删除不了。我们可以里利用这个原理,用bp在它上传之前就访问,就OK了,它的名字叫条件竞争上传绕过。

它的实际操作是:用bp抓包

pass-19(条件竞争+白名单+其他漏洞配合)

1.改源码(作者问题)

2.查看源码

服务器将文件与白名单比较,检查文件类型,大小以及此文件有没有被上传,上传后又要重命名——复杂。

3.看大佬

这关后面调线程,试不出来,有兴趣的试一下。

晚安這個未知的世界-CSDN博客

pass-20(后缀黑名单+函数特性)

1.源码和函数

打开环境,多了一个可以保存名称的框

move_uploaded_file()函数会忽略掉文件末尾的 /.

 2.bp抓包

先上传一个PHP小马(修改后缀,不然传不上去),使用bp来抓包修改把后缀改为.php/.用蚁剑连接后即可

pass-21

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

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

相关文章

学生党学习亚马逊云科技AWS、求职上岸就申AWS Cloud Club队长!

毕业了怎么找工作?该怎么学AWS?这是同学们最关心的问题。最近AWS推出的Cloud Club校园社区计划就可以完美解决这些问题! 🏫AWS校园社区计划是在学校构建校园社团(全球学校),带着大家学最热的开发、AI/ML技术&#xff0…

IDEA主题美化【保姆级】

前言 一款好的 IDEA 主题虽然不能提高我们的开发效率,但一个舒适简单的主题可以使开发人员更舒适的开发,时常换一换主题可以带来不一样的体验,程序员的快乐就这么简单。话不多说,先上我自己认为好看的主题设置。 最终效果图: 原…

《机器学习by周志华》学习笔记-线性模型-03

1、多分类学习 1.1、背景 我们在上一节介绍了「线性判别分析(LDA)」,LDA的从二分类任务可以推广到多分类任务中。 而现实中常遇到的多分类学习任务。有些二分类的学习方法可以直接推广到多分类,但是更多情况下是基于一些策略,利用二分类学习器来解决多分类的问题。 1.…

41 对MVC,MVP,MVVM的理解

对MVC,MVP,MVVM的理解 三者都是项目的架构模式(不是类的设计模式),即:一个项目的结构,如何分层,不同层负责不同的职责。 1、MVC: MVC的出现是用在后端(全栈时代) M:model,模型: 主要完成业务功能&#xff0…

C语言真题20套

第一套 一.选择题 1.下列正确的标识符是(C ). A、ab B、6a C、_do D、%y 2.执行以下程序段后,输出结果和a的值是(B)。 int a10; printf(“%d”,a); A、11 和 10 B、10 和 11 C、11 和 11 D、10 和 10 3.以下不正确的if语句形式是&#xf…

OpenVINO安装教程 Docker版

从 Docker 映像安装IntelDistribution OpenVINO™ 工具套件 本指南介绍了如何使用预构建的 Docker 镜像/手动创建镜像来安装 OpenVINO™ Runtime。 Docker Base 映像支持的主机操作系统: Linux操作系统 Windows (WSL2) macOS(仅限 CPU exectuion) 您可以使用预…

机器学习作业3____决策树(CART算法)

目录 一、简介 二、具体步骤 样例: 三、代码 四、结果 五、问题与解决 一、简介 CART(Classification and Regression Trees)是一种常用的决策树算法,可用于分类和回归任务。这个算法由Breiman等人于1984年提出,它…

如何让Ubuntu上的MySQL开发更便捷

前言 作为一款开源的数据库开发与数据库管理协同工具,(OceanBase Developer Center,简称ODC),针对MySQL数据源,已提供了涵盖SQL开发、变更风险管控、数据安全合规等多个方面的功能,从而为MySQL…

解决生产环境突然报错“Kibana server is not ready yet‘’

问题描述: 在生产环境上用docker-compose部署好ElasticSearch 和Kibana后(ElasticSearch基础用法-CSDN博客),Kibana上进行数据的增、删、改、查很是方便,但突然有一天在浏览器上打开kibana地址,提示‘Kiba…

新媒体运营-----短视频运营-----PR视频剪辑----视频调色

新媒体运营-----短视频运营-----PR视频剪辑-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/138079659 文章目录 1. Lumetri调色,明暗对比度2. Lumetri调色,创意与矢量示波器2.1 创意2.2 矢量示波器 3. L…

英文单词收集

solubility:【化】溶(解)度;(可)溶性;可解释性 a rewarding playground:值得做的;有益的;报酬高的 With the advent of:随着…的出现;随着某物的出现;随着…的到来 optical tweezers:光镊;光学镊…

视频美颜SDK与主播美颜工具的技术原理与应用场景分析

在直播视频领域中,视频美颜SDK和主播美颜工具发挥着至关重要的作用。本文将探讨这些工具的技术原理及其在不同应用场景中的应用。 一、视频美颜SDK的技术原理 1.1 图像处理技术 视频美颜SDK的核心技术之一是图像处理技术。根据用户设定的美颜参数进行相应的调整。…

Meta Llama 3 性能提升与推理服务部署

利用 NVIDIA TensorRT-LLM 和 NVIDIA Triton 推理服务器提升 Meta Llama 3 性能 我们很高兴地宣布 NVIDIA TensorRT-LLM 支持 Meta Llama 3 系列模型,从而加速和优化您的 LLM 推理性能。 您可以通过浏览器用户界面立即试用 Llama 3 8B 和 Llama 3 70B(该…

SpringBoot 快速开始 Dubbo RPC

文章目录 SpringBoot 快速开始 Dubbo RPC下载 Nacos项目启动项目的创建创建主项目接口定义服务的创建Dubbo 服务提供者的创建服务的消费者创建 添加依赖给 Provider、Consumer 添加依赖 开始写代码定义接口在 Provider 中实现在 Consumer 里面使用创建启动类 注册中心配置启动 …

YOKOGAWA横河手操器维修hart通讯器YHC5150X-01

横河手操器设置注意事项:内藏指示计显示选择与单位设置 有如下 5 种显示模式及单位设置百分比显示、用户设置显示、用户设置和百分比交替显示、输入压力显示、输入压力和百分比交替显示。即应用在当没有输入时操作要求输出为20mA引压方向设置右/左侧高压&#xff0c…

Docker容器:数据管理与镜像的创建(主要基于Dockerfile)

目录 一、Docker 数据管理 1、数据卷(Data Volumes) 2、数据卷容器(DataVolumes Containers) 二、容器互联(使用centos镜像) 三、Docker 镜像的创建 1、基于现有镜像创建 2、基于本地模板创建 3、基…

如何调整 YOLOv3 的 NMS 参数以优化检测性能?

调整YOLOv3中的非极大值抑制(Non-Maximum Suppression, NMS)参数是优化检测性能的重要步骤。以下是一些调整NMS参数以优化YOLOv3检测性能的方法: 1. NMS阈值(nms_thresh):这是决定何时抑制重叠框的关键参数…

图形制作

1 问题 如何利用python使程序有更丰富的外观。 2 方法 利用需要用到的绘图库turtle,先定义一个清屏的函数,在定义画线的函数,确定点的位置与线的颜色。 代码清单 1 from turtle import *def curvemove(): #这个函数是为了绘制形状上方的曲线 …

QT Windows 实现调用Windows API获取ARP 表

简介 使用ping方式获取网络可访问或者存在的设备发现部分会无法ping通但实际网络上存在此设备, 但使用arp -a却可以显示出来, 所以现在使用windows API的方式获取arp 表。 实现 参考Windows提供的示例转化成Qt Qt .pro LIBS -liphlpapiLIBS -lws2_32…

MongoDB的基础使用

1. 数据集操作 进入MongoDB控制台: # 展示数据库 show dbs# 创建并使用数据库 use 数据库名 如:use articledb# 删除数据库 db.dropDatabase()注: 数据库命名规则:数据库名可以是满足以下条件的任意UTF-8字符串。 不能是空字符串…