upload-labs(11~12)通关笔记

2023-11-01

环境准备

1、php版本 < 5.3.4

2、magic_quotes_gpc = Off

php我用的是upload-labs官方推荐的5.2.17,搭建平台用的是phpStudy2018。

image-20221212110335468

修改magic_quotes_gpc

magic_quotes_gpc的作用是对get请求、post请求、cookie…传入的数据进行转义处理,它只存在于php5.3.4版本及以下版本,比如当我们传入url编码%00时,%00就会被转义成0,也就是说当magic_quotes_gpc为On的状态下,url编码是不会被解析的,而我们又恰恰需要url编码被解析,所以我们得把magic_quotes_gpc的状态改为Off。

到php的根目录找到php.ini文件, 接着打开并修改为Off

image-20221212132800613

第11关

过关步骤

查看前端源码

F12直接定位到form表单处,我发现post请求里面携带了一个url参数,疑似是文件的上传路径

image-20221212134836177

废话少说,咱先测试一下,随便输入个参数进去,看看能不能提交成功,如果提交成功则说明这个参数是可控的,即<文件上传路径可控>,反之,就是不可控。

image-20221212135435657

可以看到,刚刚的图片文件已经上传成功了,如图

image-20221212135924741

查看后端源码

image-20221212141729232

什么是%00截断?

在url中%00表示ascii码中的0,而0作为特殊字符保留,表示字符结束,也就是说,在保存文件的时候,如果路径参数(例: $img_path)中出现了%00,就会认为路径到这里就已经结束了,从而忽略后面一系列的参数,比如$img_path = ../upload/test.php%00/test.jpg,此时,路径参数的后半部分就会被%00给截断,从而变成$img_path = ../upload/test.php

使用%00截断有两个要求:

1、php的版本 < 5.3.4

2、php.ini中的magic_quotes_gpc的状态为Off

补充:在保存文件的时候,如果路径结尾的文件名称和实际要保存的文件名称重名了的话,那么则会以路径结尾的文件名称为准。

例:…/upload/test.php # 保存路径

test.jpg # 文件名

实际保存以后的文件名:test.php

抓包拦截

image-20221212145802485

image-20221212150037755

查看结果

可以看到,图片已经上传成功了

image-20221212150235188

image-20221212150639549

第12关

通关方法和第11关差不多,只不过传递save_path参数的方式变成了POST,接收参数的方式也变成了POST

后端接收参数的方式变为了POST

image-20221212151216808

这里提一点,因为第12关传递参数的方式为POST,POST是不会自动解码的,所以我们需要手动decode一下。

b4df8975f91a36e732009a9f7cf5184

image-20221212152454943

image-20221212152609075

查看结果

image-20221212152806511

【认真做好当下的每一件事情,加油,奥利给!】

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

upload-labs(11~12)通关笔记 的相关文章

  • 使用 crypt() 加密

    我目前正在做一个非常安全的登录系统 但我是 crypt 函数的新手 需要一些快速帮助 我在注册过程中使用 crypt 加密密码字符串并将其保存到数据库中 但是 我如何在登录过程中解密密钥 或者我应该怎么做 或者是否可以对提交的密码字符串进行
  • 如果产品重量超过1000克,如何以公斤为单位显示

    在 Storefront 主题中 我使用下面的代码将格式化重量从 1000g 更改为 1kg add action woocommerce after shop loop item title show weight 10 function
  • 如何修复 Laravel 中未找到的“PDF”类

    在我的 Laravel 应用程序中遇到以下错误 CollaboPDFController php 第 14 行中的 FatalErrorException 未找到 PDF 类 这是我的ColaboPDFController php
  • C++ 相当于 PHP 的 pack()

    我的问题很简单 有没有类似 PHP 的pack and unpack C STL 中的函数 如果没有 是否有其他方法可以实现相同的目标 https www php net pack https www php net pack Thanks
  • PHP cURL 重定向到本地主机

    我正在尝试使用带有 cURL 的 php 脚本登录外部网页 我是 cURL 的新手 所以我觉得我错过了很多东西 我找到了几个例子并修改了它们以允许访问https页面 最终 我的目标是能够登录页面并在登录后通过指定的链接下载 csv 到目前为
  • 客户端和服务器端编程有什么区别?

    我有这个代码 为什么这不会将 bar 写入我的文本文件 而是警告 42 注意 这个问题的早期修订明确涉及服务器上的 PHP 和客户端上的 JavaScript 问题的本质和解决方案是相同的any当一种语言在客户端上运行而另一种语言在服务器上
  • XP及PHP MYSQL 练级系统

    我已经查看了所有提出的问题和答案 但我似乎找不到最适合我的答案 我想做的是开发一个系统 当用户达到一定的 XP 限制时 系统会进入下一个级别 它显示了下一个 XP 之前需要多少 XP So lvl1 0 gt lvl2 256 gt lvl
  • 如何使用 jquery ajax 将锚点的值发送到 php

    我正在尝试使用 jquery 将几个锚点的值发送到 php 文件 但我没有从 php 脚本中得到回调 div class result div a href value class star Star 5 a a href value cl
  • 知道何时调用 persist

    我正在使用 Doctrine 2 作为我的 ORM 一切进展顺利 但我一直想知道EntityManager persist 方法 这 持久实体 https www doctrine project org projects doctrine
  • 在 PHP 中拆分 XML

    我有一个带有根元素和多个项目子元素的合并 xml 像这样的东西
  • 如何使用 RewriteRule 来为 PHP 修改 $_SERVER['REQUEST_URI'] ?

    有了这个 htaccess RewriteEngine On RewriteRule foo foo 1 here I tried L PT C etc RewriteRule index php L 我已经尝试了第一个 RewriteRu
  • PHP:如何发送电子邮件基础知识

    我想使用 PHP 从本地主机向其他人发送电子邮件 我需要做什么才能做到这一点 例如我需要安装邮件服务器吗 如果我没记错的话 有一种语言不需要邮件服务器来发送电子邮件 这样对吗 PHP ini里面有 邮件功能 如何配置这个 我在网上查了一下
  • php exec 返回的结果比直接进入命令行要少

    我有一个 exec 命令 它的行为与通过 Penguinet 给 linux 的相同命令不同 res exec cd mnt mydirectory zcat log file gz echo res 当将命令直接放入命令行时 我在日志文件
  • 限制分页页数

    objConnect mysql connect localhost root or die mysql error objDB mysql select db Test strSQL SELECT FROM UserAddedRecord
  • 用PHP动态生成二维码[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在我的网站上生成二维码 他们所要做的就是在其中包含一个 URL 我网站上的变量将提供该 URL
  • 使用 DateTime 类计算日期差异时出错

    我正在尝试使用 DateTime 类 php gt 5 3 来计算 2 个日期的差异 手册中的示例简单明了 我尝试了该示例并且效果很好 但如果改变开始和结束日期 就会出现问题 this gt start date 2011 03 01 th
  • 让用户渲染自己的 SVG 文件的安全隐患

    我计划让网站用户上传他们自己的 SVG 文档并使用inkscape or svg2pdf 用户要么未经身份验证 要么经历一个简单的注册过程 所以我预计会有一些黑客尝试 我可以采取哪些过滤措施来最大程度地减少安全威胁 Inkscape 似乎并
  • Laravel 上传前如何压缩图像?

    我正在制作一个图片库网站 用户可以在其中上传任何图像 它们将显示在前端 我需要在不影响图像质量的情况下压缩图像 以减小图像大小 以便页面加载速度不会影响那么大 我使用以下代码来上传图像 rules array file gt require
  • 无法在 PHPUnit 中使用数据提供程序运行单个测试

    使用命令行运行测试时遇到问题 如果我像这样运行 phpunit phpunit no configuration filter testAdd DataTest DataProviderTest php 效果很好 但是我们使用正则表达式来准
  • phpstorm xdebug 与 symfony2 项目

    我正在尝试使用 xdebug 和 phpstorm 调试 symfony2 应用程序 我的本地开发环境是Ubuntu 14 04 with apache2 Xdebug版本是2 2 7 我在另一个 php 不是 symfony2 项目上使用

随机推荐

  • Java 多线程 --- 线程同步 显式锁ReentrantLock

    Java 多线程 线程同步 显式锁ReentrantLock 和 AQS机制 显式锁 Lock接口 显性锁的实现原理 AQS机制 显式锁 Lock接口 显式锁是自 JDK 1 5 开始引人的排他锁 作为一种线程同步机制 其作用与内部锁相 同
  • react与vue的区别

    React和Vue js是两个流行的JavaScript库 框架 用于构建用户界面 以下是React和Vue之间的一些主要区别 学习曲线 Vue js对于新手来说比React更容易学习和上手 构建方式 React强调组件的可重用性 而Vue
  • libevent HTTPserver/ libcurl HTTPClient构建

    22 1 前言 最近由于项目需要实现http客户端与http服务器 要求是httpServer httpClient模块独立 不能与用户代码耦合一起 因此为了使得httpserver及httpclient的通用性 在软件框架搭建中httpS
  • 利用SQLmap进行一次SQL注入

    题目 ctf show 题目博客很久之前已经做过一次了 很简单 这次只是用它来记录一下sqlmap如何使用 首先进入题目 是一个登录界面 猜测是sql注入 打开SQLmap 查询网站是否存在注入 burp抓包 将http头部文件复制到sql
  • python学习笔记十——模块与函数

    第五章 模块与函数 5 1 python程序的结构 函数 类 gt 模块 模块 模块 gt 包 函数 类 模块 包 Python python的程序由包 package 模块 module 和函数组成 模块是处理某一类问题的集合 模块由函数
  • Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库

    介绍 Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库 基于 ECMA 376 ISO IEC 29500 国际标准 可以使用它来读取 写入由 Microsoft Excel 2007 及以上版本创建的电
  • driverclasss oracle,Kettle 错误:Error connecting to database: (using class oracle.jdbc.driver.OracleDr...

    一 问题描述 使用kettle8 0连接oracle12c 发现将oracle安装目录下与ojdbc相关的jar包都拷贝到kettle的相关目录Program Files kettle data integration lib下 配置连接
  • 清华源镜像pip

    清华源镜像使用帮助 彻底解决timeout的问题 临时使用 pip install i https pypi tuna tsinghua edu cn simple some package opencv python 注意 末尾openc
  • Windows上提示 api-ms-win-core-path-l1-1-0.dll 丢失怎么办?

    Windows上提示 api ms win core path l1 1 0 dll 丢失怎么办 最近有用户在开启电脑的photoshop软件使用的时候 出现另外无法启动软件的情况 因为系统中缺失了对应的dll文件 那么这个情况怎么去进行问
  • 电源学习总结(三)——线性稳压的参数

    前文提到了一些线性稳压的主要特点 本文作者将结合NXP智能车大赛实际案例 说一下电源设计容易踩的坑和线性稳压选型过程 文章目录 主要参数 输出电压 输入电压 热阻 基准电压 压降 最大电流 输入电容 纹波抑制 选型实例 主要参数 在为实际应
  • 二十八.刷题.18

    输入三个字符 可以重复 后 按各字符的ASCII码从小到大的顺序输出这三个字符 include
  • 解密 QQ 号-队列-c语言

    问题描述 分析 每次从最前面拿两个 第 1 个扔掉 第 2 个 放到尾部 需要一个数组来存储这一串数即 int q 101 并初始化这个数组即 int q 101 0 6 3 1 7 5 8 9 2 4 head 用来记录队列的队首 即第一
  • 动态规划-货币问题

    动态规划 货币问题 题目一 arr是货币数组 其中的值都是正数 再给定一个正数aim 每个值都认为是一张货币 即便是值相同的货币也认为每一张都是不同的 返回组成aim的方法数 例如 arr 1 1 1 aim 2 第0个和第1个能组成2 第
  • 机器学习 之线性回归(包含推导过程)

    参考B站视频新手狂喜 目前B站最全最清晰的 机器学习算法 教程 从零开始详细解读 原理 代码实现 通通都在这里了 收藏慢慢学 决策树 随机森林 聚类分析 人工智能 哔哩哔哩 bilibili 线性回归 eg 银行贷款 数据 工资和年龄 特征
  • C Primer Plus(第六版)

    1 开发一个包含你需要的预处理器定义的头文件 写一个 h的头文件 包含你此次练习的题目就可以了 注意防止头文件被重复引用导致的错误 需要用 ifndef或者 pragma once 下面题目需要的声明和结构都在对应题目中 方法1 使用 if
  • mysql使用查询结果作为临时表

    一 select查询作为临时表 select cou name from select count AS cou enabled AS name from user group by enabled as a where cou gt 0
  • 基于微信小程序的新冠疫苗预约系统

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SSM 前端 微信小程序 Vue 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Eclipse 是否Mave
  • ArrayList集合及常用方法的使用

    ArrayLise
  • Spring IOC容器初始化过程 源码分析

    本文主要记录Spring容器创建 源码分析过程 首先贴上一张时序图 好久没画 忘的差不多了 画的不好 可以凑合看一下 接下来 贴上一份测试代码 这里使用AnnotationConfigApplicationContext来初始化Spring
  • upload-labs(11~12)通关笔记

    环境准备 1 php版本 lt 5 3 4 2 magic quotes gpc Off php我用的是upload labs官方推荐的5 2 17 搭建平台用的是phpStudy2018 修改magic quotes gpc magic