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

news2025/1/27 5:49:57

题目来源: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+代码审计) |

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

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

相关文章

ChatGPT接入苹果全家桶:开启智能新时代

最近,科技界最重磅的消息莫过于ChatGPT正式接入苹果iOS生态系统!这意味着苹果用户将能够直接在iPhone、iPad和Mac上体验到这款强大的AI代码生成器带来的便利,开启一个全新的智能时代。这篇文章将深入探讨ChatGPT与苹果生态的整合,…

易语言模拟真人鼠标轨迹算法 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…

一部手机如何配置内网电脑同时访问内外网

做过运维的朋友都知道,最麻烦的是运维电脑不能远程,每次都得现场进行维护,明明客户那边有可以访问内网的电脑,怎么操作能将这台电脑能访问跟到外网呢,这样不就能通过远程软件远程了吗?嘿嘿。按以下步骤试试…

直线拟合例子 ,岭回归拟合直线

目录 直线拟合,算出离群点 岭回归拟合直线: 直线拟合,算出离群点 import cv2 import numpy as np# 输入的点 points np.array([[51, 149],[122, 374],[225, 376],[340, 382],[463, 391],[535, 298],[596, 400],[689, 406],[821, 407] ], dtypenp.float32)# 使用…

ansible自动化运维实战--script、unarchive和shell模块(6)

文章目录 一、script模块1.1、功能1.2、常用参数1.3、举例 二、unarchive模块2.1、功能2.2、常用参数2.3、举例 三、shell模块3.1、功能3.2、常用参数3.3、举例 一、script模块 1.1、功能 Ansible 的 script 模块允许你在远程主机上运行本地的脚本文件,其提供了一…

【落羽的落羽 数据结构篇】算法复杂度

文章目录 一、数据结构和算法简介二、算法复杂度1. 时间复杂度2. 空间复杂度 一、数据结构和算法简介 数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。没有一种单一的数据结构对所有用途都有用,所以我们要学…

ubuntu16.04 VSCode下cmake+clang+lldb调试c++

VSCode下cmakeclanglldb调试c Ubuntu16.04 安装OpenCV4.5.4 文章目录 VSCode下cmakeclanglldb调试c1.安装clangclangdcmake2、打开VSCode,安装扩展插件3、编译4、Debug4.1 创建launch.json。4.2 配置setting.json 5. vscode安装配置clang-format插件5.1 Linux系统安…

第十五届蓝桥杯大赛软件赛省赛Java 大学 B 组(1、2题)

1.报数游戏 问题描述 小蓝和朋友们在玩一个报数游戏。由于今年是 2024 年,他们决定要从小到大轮流报出是 20或 24 倍数的正整数。前 10 个被报出的数是:20,24,40,48,60,72,80,96,100,120。请问第 202420242024个被报出的数是多少? 答案提交 这是一道结果…

【opencv】第9章 直方图与匹配

第9章 直方图与匹配 9.1 图像直方图概述 直方图广泛运用于很多计算机视觉运用当中,通过标记帧与帧之间显著的边 缘和颜色的统计变化,来检测视频中场景的变化。在每个兴趣点设置一个有相近 特征的直方图所构成“标签”,用以确定图像中的兴趣点。边缘、色…

多版本并发控制:MVCC的作用和基本原理

多版本并发控制:MVCC的作用和基本原理 1、MVCC简介1.1 快照读与当前读的区别1.1.1 快照读1.1.2 当前读 1.2 数据库的读写问题1.3 MVCC的作用 2、MVCC实现原理之ReadView2.1 什么是ReadView2.2 ReadView的设计思路2.3 MVCC整体操作流程 1、MVCC简介 1.1 快照读与当前…

SPDK vhost介绍

目录 1. vhost技术的背景与动机Virtio 介绍virtio-blk数据路径为例 2. vhost技术的核心原理2.1 vhost-kernel2.2 vhost-user举例 2.3 SPDK vhostvhost的优势IO请求处理数据传输控制链路调整 3. SPDK vhost的实现与配置3.1 环境准备3.2 启动SPDK vhost服务3.3 创建虚拟块设备3.4…

LMI Gocator GO_SDK VS2019引用配置

LMI SDK在VS2019中的引用是真的坑爹,总结一下经验,希望后来的人能少走弯路.大致内容如下: (1) 环境变量 (2)C/C 附加包含目录 E:\GWQ\Gocator\GO_SDK\Gocator\GoSdk E:\GWQ\Gocator\GO_SDK\Platform\kApi (3&#…

C语言初阶--折半查找算法

目录 练习1:在一个有序数组中查找具体的某个数字n 练习2:编写代码,演示多个字符从两端移动,向中间汇聚 练习3:简单编写代码实现,模拟用户登录情景,并且只能登录三次 练习4:猜数字…

网安加·百家讲坛 | 樊山:数据安全之威胁建模

作者简介:樊山,锦联世纪教育能源工业互联网数字安全CSM(新能源运维师)课程特聘培训讲师,哈尔滨工业大学(深圳)信飞合创数据合规联合实验室特聘专家,武汉赛博网络安全人才研究中心资深专家;近24年…

基于Springboot + vue实现的在线装修管理系统

“前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:人工智能学习网站” 💖学习知识需费心, 📕整理归纳更费神。 🎉源码免费人人喜…

利用大型语言模型在量化投资中实现自动化策略

“Automate Strategy Finding with LLM in Quant investment” 论文地址:https://arxiv.org/pdf/2409.06289 摘要 这个新提出的量化股票投资框架,利用大型语言模型(LLMs)与多智能体系统相结合的方法,通过LLMs从包括数…

vue3+uniapp开发鸿蒙初体验

去年7月20号,uniapp官网就已经开始支持鸿蒙应用开发了,话不多说,按照现有规则进行配置实现一下鸿蒙开发效果; 本文基于macOS Monterey 版本 12.6.5实现 开发鸿蒙的前置准备 这里就直接说我的版本: DevEco Studio 5.…

【C++】详细讲解继承(下)

本篇来继续说说继承。上篇可移步至【C】详细讲解继承(上) 1.继承与友元 友元关系不能继承 ,也就是说基类友元不能访问派⽣类私有和保护成员。 class Student;//前置声明class Same //基类 { public:friend void Fun(const Same& p, con…

代码随想录刷题day14(2)|(链表篇)02.07. 链表相交(疑点)

目录 一、链表理论基础 二、链表相交求解思路 三、相关算法题目 四、疑点 一、链表理论基础 代码随想录 二、链表相交求解思路 链表相交时,是结点的位置,也就是指针相同,不是结点的数值相同; 思路:定义两个指针…

【学习笔记】计算机网络(二)

第2章 物理层 文章目录 第2章 物理层2.1物理层的基本概念2.2 数据通信的基础知识2.2.1 数据通信系统的模型2.2.2 有关信道的几个基本概念2.2.3 信道的极限容量 2.3物理层下面的传输媒体2.3.1 导引型传输媒体2.3.2 非导引型传输媒体 2.4 信道复用技术2.4.1 频分复用、时分复用和…