upload-labs pass10-14

2023-10-28

pass-10 . .绕过(点空格点绕过)

查看源码

这是一个后端黑名单检查

str_ireplace() 的作用是寻找文件名中存在的黑名单字符

上传一个php文件

 

查看提示

 

可以把PHP文件后缀名改为可以上传的文件类型

上传成功

 

pass-11 双写绕过

查看源码

查看提示

 

提示中说会从文中去除以上那些字符

看代码可以看出来它是将上传文件扩展名包含 $deny_ext中的话变成空扩展名,也就是没有扩展名。

使用了str_ireplace()函数,这个函数他不区分大小写的替换函数

比如上传一个1.phtmhp,在执行完函数后就变成了1.php。因为里面有htm就会替换为空

str_ireplace()的作用是寻找文件名中存在的黑名单字符

我们就上传一个php文件,然后抓包,改一下后缀

 

 

上传成功

 

到浏览器访问一下

 

pass-12 %00截断绕过(GET)

查看一下源码

查看提示

从源码中看到只允许上传.jpg|.png|.gif类型的文件

上传一个php

 代码对上传进行了白名单限制,但也对上传的文件进行了文件名重构

文件截断绕过的检测原理是:

由于00代表结束符,PHP会把00后面的所有字符删除

但是截断的条件是PHP版本小于5.3.4、magic_quotes_gpc为off状态

因为magic_quotes_gpc为ON状态会把所有引号进行转义

 

 

绕过方法:

GET方法中绕过加入00截断(在URL里)

POST方法中传入%00并解码(十六进制)

截断的文件被重命名了,并且路径是可控的。

 

 上传文件,抓包

可以看到保存的路径在URL中,改掉原来的文件后缀,并且再URL中加入%00

 

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

pass-13 %00截断绕过(POST)

查看源码

 

只允许上传.jpg|.png|.gif类型文件

和12不同的是这个是post方式

查看源码

上传一个文件,抓包

save_path不在URL中了,在post数据里

所以我们要在这里添加上路径并且加上%00

这里要注意十六进制转码

 

pass-14 图片马绕过

 

该关需要上传图片马

什么是图片马?

图片马指的是代码写入后不被破坏图片为前提,图片仍可以正常打开。图片马是web渗透测试时的必备。

所以我们先来制作一个图片马

先准备好图片和asp文件

Win+R——cmd

cd到原始图片的目录路径下

我们就可以得到一个图片马

 

我们需要做三种后缀的图片马,也是以上步骤

 

上传tpm.gif,上传成功

 

在本关页面“文件包含漏洞”几个字上面点一下,可以得到文件包含漏洞所在url和代码,从如下代码可知,图片马可以通过file参数包含。

 

 

要上传成功后,被作者提供的包含漏洞包含后能够输出OK即可。

其余后缀名的文件也是如此操作

 

 

 

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

upload-labs pass10-14 的相关文章

  • linux云计算(linux系统)

    什么是linux linux是一种操作系统 曾经被Microsoft视为最大的威胁 而今是互联网领域的幕后老大 Unix Linux发展史 unix系统发展在这里插入代码片 unix诞生 1969年底 Ken Thompson Dennis
  • java抽象类理解

    在java中抽象类不一定要有抽象方法 可以将所有方法都实现一遍 但class类声明为抽象类 这样做和不声明抽象类相比 差别只是抽象类不能实例化 继承的关键字仍然是extends 而且继承过后可以不覆盖方法 只是使用继承而来的方法 1 在js
  • 进入nodejs 利用http模块搭建一个简单的服务器并配合fs模块网客户端传输文件

    node js简单了解 node js是一个软件 它是js的代码运行环境 可以运行js代码然后实现服务器的功能 node js的开发是模块化开发的思想 在下载配置好node js后 我们直接就可编写js文件代码在终端中运行 注意要进入文件所
  • Django练习——基于Mysql的登录注册功能界面(django模型、模板、表单简单应用)

    目录 1 创建 2 配置Mysql 1 连接数据库驱动 2 创建表格 3 创建迁移文件并同步到数据库 3 admin后台 1 创建超级用户 2 注册模型login msg 4 路由与视图 4 1先搭框架 4 2编写视图处理函数 5 运行结果
  • 斯坦福NLP笔记75 —— Introducing Ranked Retrieval

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 基本是一些tdidf的基本概念 先跳过 转载于 https my oschina net silverhammer blog 294134
  • SpringBoot接口 - 如何提供多个版本接口

    在以SpringBoot开发Restful接口时 由于模块 系统等业务的变化 需要对同一接口提供不同版本的参数实现 老的接口还有模块或者系统在用 不能直接改 所以需要不同版本 如何更加优雅的实现多版本接口呢 SpringBoot接口 如何提

随机推荐

  • Error[Li005]: no definition for “assert_failed“ 的解决办法

    开发环境 IAR 单片机型号 stm8 具体报错 Error Li005 no definition for assert failed referenced from lt 工程路径 名称 gt Debug Obj stm810x gpi
  • keil5 调试出现“EVALUATION MODE Running with Code Size Limit:2K“解决办法

    楼主在keil5上安装51芯片包后 使用中出现 EVALUATION MODE Running with Code Size Limit 2K 提示 但不影响正常使用 原因是keil5的51包未正常安装 使用生成ID code解决 最终获得
  • L1-6 整除光棍 (20分)

    这里所谓的 光棍 并不是指单身汪啦 说的是全部由1组成的数字 比如1 11 111 1111等 传说任何一个光棍都能被一个不以5结尾的奇数整除 比如 111111就可以被13整除 现在 你的程序要读入一个整数x 这个整数一定是奇数并且不以5
  • 【云原生之kubernetes】kubernetes集群高级资源对象statefulesets

    云原生之kubernetes kubernetes集群高级资源对象statefulesets 一 statefulesets介绍 1 statefulesets简介 2 statefulesets特点 二 检查本地kubernetes集群状
  • STM32简介

    文章目录 STM32简介 STM32选型 STM32F1片上资源 外设 STM32系列芯片命名规则 STM32系统结构 引脚定义 启动配置 最小系统电路 STM32简介 这一节只用大概混个眼熟 不要深究 STM32选型 STM32可分为Hi
  • 一文读懂XPath基本语法_XPath语法详解_XPath教程

    因为最近在学习与整理有关python爬虫的文章 连带遇到XPath的使用 就顺便一起整理出来 XPath与自动化的关系 XPath是一门在XML文档中查找信息的语言 可用来在XML文档中对元素和属性进行遍历 XPath是用来选择 节点 的一
  • MCAL介绍及Module Plugin开发流程总结

    Mcal 微控制器抽象层位于AUTOSAR分层模型中BSW最底层 包含内部驱动 可以直接访问微控制器和片内外设 MCAL又可以分为微控制器驱动 存储器驱动 通信驱动和I O驱动四个部分 各部分又由具体的与微控制器硬件相对应的驱动模块组成 如
  • MSI cache一致性协议

    按照高速缓存的写策略的不同 有写直达和写回WB两种高速缓存 1 写直达高速缓存 一旦高速缓存中的一个字被修改 则在主存中要立即修改 2 写回高速缓存 并不是立即写回 而是当被修改的字从高速缓存中被替换或清除时 才真正修改主存 在侦听协议的设
  • Kettle——转换步骤信息统计两种实现

    Kettle 步骤数据处理数量记录获取 Kettle获取数据处理条数记录日志信息 以前的途径是配置转换的日志信息来保存到数据库中 这种方式不是很灵活 有没有一种类似步骤方式来进行获取呢 Kettle在5 0版本中提供了一个步骤 在 统计 转
  • 3d查看器无法加载三维模型_这几款倾斜实景三维裸眼3D采集软件你了解吗?

    文章转载于众智绘云 部分软件介绍由GIS前沿添加和修改 版权归原作者所有 作为国际测绘领域一项高新技术 倾斜摄影测量 ObliquePhotogrammetry 因其能快速 高效获取地面高分辨率 高重叠度及全视角的影像数据信息 近年来测绘领
  • VC++控制音量

    Visual C 开发技术大全 第26章声音与动画编程 本章讲述在VC 6 0环境下 如何使用Win32 GDI GDI DirectShow等开发接口实现声音与动画的处理 本小节为大家介绍控制音量 26 1 3 控制音量 Windows
  • XML学习之Schema学习案例

    一 Schema 约束xml文件 1 xml样式
  • Java对学生成绩排序——通过list.sort()对list进行排序

    题目 输入任意 用户 成绩 序列 可以获得成绩从高到低或从低到高的排列 相同成绩 都按先录入排列在前的规则处理 例示 jack 70 peter 96 Tom 70 smith 67 从高到低 成绩 peter 96 jack 70 Tom
  • JS页面设置

    转自 http hi baidu com rnckty item 8a234fd861f07b31e2108f37 div class Noprint div
  • 四轮转向与前轮转向二自由度车辆方程推导与时域分析

    四轮转向与前轮转向二自由度车辆方程推导与时域分析
  • 前端插件之 bootstrap-select API 介绍及使用

    1 组件开源地址以及API说明 bootstrap select bootstrap select Examples 2 使用前提 引入bootstrap select 既然是bootstrap select 组件肯定是依赖bootstra
  • 数论中的欧拉函数

    在数论中 对于一正整数 n n n 欧拉函数 n varphi n n 定义为
  • mysql 函数定义字符串_MySQL函数基础——字符串函数详解

    昨天 咱们对MySQL的数学函数进行了讲解 今天 咱们再来解析MySQL字符串函数 字符串函数主要用来处理数据库中的字符串数据 MySQL中字符串函数有 计算字符串长度函数 字符串合并函数 字符串替换函数 字符串比较函数 查找指定字符串位置
  • 【HJ46】截取字符串

    题目描述 输入一个字符串和一个整数 k 截取字符串的前k个字符并输出 本题输入含有多组数据 数据范围 字符串长度满足 1 100 k 满足 1 n 输入描述 1 输入待截取的字符串 2 输入一个正整数k 代表截取的长度 输出描述 截取后的字
  • upload-labs pass10-14

    pass 10 绕过 点空格点绕过 查看源码 这是一个后端黑名单检查 str ireplace 的作用是寻找文件名中存在的黑名单字符 上传一个php文件 查看提示 可以把PHP文件后缀名改为可以上传的文件类型 上传成功 pass 11 双写