2025.1.21——八、[HarekazeCTF2019]Avatar Uploader 2(未完成) 代码审计|文件上传

题目来源:buuctf  [HarekazeCTF2019]Avatar Uploader 2 

一、打开靶机,整理信息

跟Avatar Uploader 1 题目长得一样,先上传相同文件看看情况,另外这道题还有源码,可以看看

二、解题思路

step 1:上传同类型题目文件,看是否有新信息

        成功上传,但是没有flag信息,所以还得从源码下手,毕竟进阶版肯定没那么简单

step 2:分析源码

        我认为应该学习一下文件名隐藏的信息

config.php

        主要存储应用程序的各种配置信息,为整个项目提供统一的参数设置,确保不同部分使用相同的配置。涵盖数据库连接信息(主机名、用户名、密码、数据库名、端口等)、应用程序基础设置(网站名称、URL、编码格式、时区等)、安全相关配置(加密密钥、会话设置、CSRF 令牌设置等)、第三方服务配置(邮件服务器、支付网关、社交媒体 API 等服务的认证信息和参数)以及调试和日志配置(调试模式开关、日志文件路径、日志级别等)。

index.php

        作为网站的入口文件,承担着初始化项目运行环境的任务,如包含配置文件、启动会话、设置错误报告级别等。它还负责路由分发,根据用户请求的参数或 URL 特征,将请求导向不同的功能模块或页面。此外,该文件会展示网站的首页内容,可能会从数据库查询数据,结合 HTML 和模板引擎生成动态页面,同时加载必要的 CSS、JavaScript 等资源文件。

upload.php

        主要负责处理文件上传的功能。它会接收用户通过表单上传的文件,对上传的文件进行验证,包括文件类型、文件大小、文件名合法性等方面的检查。验证通过后,会将文件移动到指定的存储目录,并可能对文件名进行处理,如添加时间戳避免重名。此外,还可能会记录文件上传的相关信息到数据库,如文件名、上传时间、文件路径等,最后根据上传结果返回相应的提示信息给用户。

signin.php

        主要处理用户登录相关的逻辑。接收用户输入的信息,接着对输入数据进行验证,检查格式是否正确、是否为空等(正则表达式)。然后会将用户输入的信息与数据库中存储的用户信息进行比对验证,验证成功后,会设置用户会话,保存用户的登录状态和相关信息,最后根据验证结果进行页面跳转,成功则跳转到用户主页等页面,失败则返回登录页面并给出错误提示。

signout.php

        专注于处理用户退出登录的操作。它会清除当前用户的会话信息,销毁会话中的所有数据,以确保用户的登录状态被正确清除。此外,还可能会删除与用户登录相关的 Cookie 信息,最后将用户重定向到登录页面或网站首页。

theme.php

        主要用于管理网站的主题设置。

        所以我们重点要看的就是config.php、index.php、upload.php文件


先帝创业未半而源码打不开,这里附上大佬的wp,改日再来[HarekazeCTF2019]Avatar Uploader 2(include phar+代码审计) |

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用EVE-NG-锐捷实现OSPF

一、OSPF基础知识 Open shortest Path First(OSPF)开放式最短路径优先协议 1.OSPF的关系状态 (1)邻居关系(TWO-WAY) 只发送hello包不发送LSA包(链路状态通告包) (2)邻接关系(FULL) OSPF设备与设备之间相互建立OSPF关系,初始为邻居关系(TWO-WAY)状态&#xff0…

未来五年高速线缆市场有望翻3倍!AEC凭借传输距离优势占比将更高

未来五年高速线缆市场有望翻3倍!AEC凭借传输距离优势占比将更高 高速铜缆凭借高带宽、高速等优势,有望成为数据中心连接的最优解。铜缆高速连接主要用于数据中心内部服务器与交换机之间、交换机... - 雪球 高速铜缆凭借高带宽、高速等优势,有…

zyNo.19

哈希(md5)绕过问题 本质上是弱类型问题的延申 题型 登录的哈希验证 $a ! $b Md5($a) md5($b) 解决办法Md5绕过 var_dump ("0e123456" "0e4456789"); //true 0e545993274517709034328855841020//true 参考资料0e开头的哈希…

怎么样把pdf转成图片模式(不能复制文字)

贵但好用的wps, 转换——转为图片型pdf —————————————————————————————————————————— 转换前: 转换后: 肉眼可见,模糊了,且不能复制。 其他免费办法,参考&…

飞致云开源社区月度动态报告(2025年1月)

自2023年6月起,中国领先的开源软件公司飞致云以月度为单位发布《飞致云开源社区月度动态报告》,旨在向广大社区用户同步飞致云旗下系列开源软件的发展情况,以及当月主要的产品新版本发布、社区运营成果等相关信息。 飞致云开源运营数据概览&…

hive:数据导入,数据导出,加载数据到Hive,复制表结构

hive不建议用insert,因为Hive是建立在Hadoop之上的数据仓库工具,主要用于批处理和大数据分析,而不是为OLTP(在线事务处理)操作设计的。INSERT操作会非常慢 数据导入 命令行界面:建一个文件 查询数据>>复制>>粘贴到新…

Dismissible组件的用法

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了GestureDetector Widget相关的内容,本章回中将介绍Dismissible Widget.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在这里介绍的Dismissible是一个事件响应Widget,它和GestureDetector类似,不过它只…

【Redis】缓存+分布式锁

目录 缓存 Redis最主要的使用场景就是作为缓存 缓存的更新策略: 1.定期生成 2.实时生成 面试重点: 缓存预热(Cache preheating): 缓存穿透(Cache penetration) 缓存雪崩 (Cache avalan…

开源物业管理系统赋能社区管理提升居民服务体验与满意度

内容概要 在现代物业管理中,开源物业管理系统的出现为社区管理带来了新的契机。这种系统的核心思想是通过开放、共享的方式,为各类物业管理需求提供灵活的解决方案。从基本的信息传递到复杂的投诉处理,开源物业管理系统能够根据不同社区的实…

动态规划DP 数字三角型模型 数字三角形

数字三角形 原题链接 AcWing 898.数字三角形 题目描述 给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字…

全连接神经网络(前馈神经网络)

一、全连接神经网络介绍 在多层神经网络中, 第 N 层的每个神经元都分别与第 N-1 层的神经元相互连接。 1、神经元 这个神经元接收的输入信号为向量 , 向量为输入向量的组合权重, 为偏置项, 是一个标量。 神经元的作用是对输入向…

Linux:多线程[2] 线程控制

了解: Linux底层提供创建轻量级进程/进程的接口clone,通过选择是否共享资源创建。 vfork和fork都调用的clone进行实现,vfork和父进程共享地址空间-轻量级进程。 库函数pthread_create调用的也是底层的clone。 POSIX线程库 与线程有关的函数构…

DeepSeek崛起:中国AI新星如何撼动全球资本市场格局

引言 近期,中国人工智能实验室DeepSeek发布的两款开源模型——DeepSeek V3和DeepSeek R1——以其优异的性能和低廉的成本迅速爆火,引发了全球资本市场的震动,尤其对美国资本市场产生了显著影响。DeepSeek R1更是能够在数学、代码和推理任务上…

【物联网】ARM核常用指令(详解):数据传送、计算、位运算、比较、跳转、内存访问、CPSR/SPSR、流水线及伪指令

文章目录 指令格式(重点)1. 立即数2. 寄存器位移 一、数据传送指令1. MOV指令2. MVN指令3. LDR指令 二、数据计算指令1. ADD指令1. SUB指令1. MUL指令 三、位运算指令1. AND指令2. ORR指令3. EOR指令4. BIC指令 四、比较指令五、跳转指令1. B/BL指令2. l…

图像处理算法研究的程序框架

目录 1 程序框架简介 2 C#图像读取、显示、保存模块 3 C动态库图像算法模块 4 C#调用C动态库 5 演示Demo 5.1 开发环境 5.2 功能介绍 5.3 下载地址 参考 1 程序框架简介 一个图像处理算法研究的常用程序逻辑框架,如下图所示 在该框架中,将图像处…

病理AI领域基础模型及多实例学习方法的性能评估|顶刊精析·25-01-27

小罗碎碎念 这篇论文聚焦于组织学全切片图像分析,旨在探究多实例学习(MIL)与基础模型(FMs)结合的效果。 由于全切片图像(WSI)分析面临标注有限和模型直接处理困难等问题,MIL成为常用…

Tensor 基本操作2 理解 tensor.max 操作,沿着给定的 dim 是什么意思 | PyTorch 深度学习实战

前一篇文章,Tensor 基本操作1 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 目录 Tensor 基本操作torch.max默认指定维度 Tensor 基本操作 torch.max torch.max 实现降维运算,基于指定的 d…

以太网详解(六)OSI 七层模型

文章目录 OSI : Open System Interconnect(Reference Model)第七层:应用层(Application)第六层:表示层(Presentation)第五层:会话层(Session)第四…

Spring MVC异常处理机制

文章目录 1. 异常处理的思路2. 异常处理两种方式3. 简单异常处理器SimpleMappingExceptionResolver 1. 异常处理的思路 系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发…

本地大模型编程实战(03)语义检索(2)

文章目录 准备按批次嵌入加载csv文件,分割文档并嵌入测试嵌入效果总结代码 上一篇文章: 本地大模型编程实战(02)语义检索(1) 详细介绍了如何使用 langchain 实现语义检索,为了演示方便,使用的是 langchain 提供的内存数据库。 在实…