文件上传之黑名单检测

一般情况下,代码文件里会有一个数组或者列表,该数组或者列表里会包含一些非法的字符或者字符串,当数据包中含有符合该列表的字符串时,即认定该数据包是非法的。

一.如何判断是否为黑名单检测

黑名单是有限的,可以随意构造一个文件后缀,如果可以上传,则说明是黑名单检测,反之,为白名单检测。

  1. 上传一个php后缀的文件,比如1.php,发现不允许上传
  2. 随意构造一个文件后缀,比如将1.php改为1.aaa发现可以上传,说明是基于黑名单检测

二.绕过技巧

  • 后缀双写绕过
  • 后缀大小写绕过
  • 其它可解析后缀绕过
  • 图片+配置文件绕过
  • 。。。
1.后缀双写绕过

靶场:http://127.0.0.1/upload-labs-master/Pass-11/index.php

  • 介绍:有些网站代码中,会将文件后缀符合黑名单列表的字符串替换为空。比如上传“index.php”变为“index”。​

  • 绕过流程:

    1. 打开bp抓上传文件的数据包,比如上传"post.php"

    2. 将"post.php"修改为"post.pphphp"​

    3. 修改完放包,即可成功上传。

2.后缀大小写绕过

靶场:http://127.0.0.1/upload-labs-master/Pass-06/index.php

  • 介绍:主要是利用windows对大小写不敏感进行绕过。

    • Windows:对大小写不敏感
    • Linux:对大小写敏感
  • 绕过流程:

    1. 打开bp抓上传文件的数据包,比如上传"post.php"

    2. 将"post.php"修改为"post.pHP"


    3. 修改完放包,即可成功上传。

3.图片+配置文件绕过

.htaccess 文件(或者“分布式配置文件”),全称是HypertextAccess(超文本入口)。提供了针对目录改变配置的方法。它里面可
以存放Apache服务器配置相关的指令。

靶场:http://127.0.0.1/upload-labs-master/Pass-04/index.php

  • 介绍:通过一个.htaccess​文件调用 php 的解析器去解析一个文件名中只要包含"as.png"这个字符串的任意文件,所以无论文件名是什么样子,只要包含"as.png"这个字符串,都可以被以 php 的方式来解析,一个自定的.htaccess​文件就可以以各种各样的方式去绕过很多上传验证机制。

  • 绕过流程:

    1. 先上传.htaccess​文件,内容如下:

      SetHandler application/x-httpd-php
      #将符合特定规则的文件当作 PHP 脚本文件,调用 PHP 解释器来处理
      AddType application/x-httpd-php jpg
      ##将.jpg文件当作 PHP 脚本文件,调用 PHP 解释器来处理
      
    2. 再上传一句话木马"post.txt​"或"post.jpg​"

4.其它可解析后缀绕过

靶场:http://127.0.0.1/upload-labs-master/Pass-03/index.php

  • ​::$DATA​:

    在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,它的目的就是不检查后缀名。

    例如:"phpinfo.php::$DATA" Windows会自动去掉末尾的::$DATA变成"phpinfo.php"

    双写::$DATA​:

    • 介绍:有的网站代码会去除字符串中的::$DATA​,所以需要双写::$DATA​进行绕过。​

    • 绕过流程:

      1. 打开bp抓上传文件的数据包,比如上传"post.php"

      2. 将"post.php​"修改为"post.php::$DA::$DATATA​"


      3. 修改完放包,即可成功上传。

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

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

相关文章

光控资本:锂电排产上行 AI手机有望快速渗透

AI手机有望快速渗透 据赛迪参谋猜想,2024年AI手机的出货量估量将会抵达1.5亿部,占全球智能手机总出货量13%,到2027年,全球AI手机销售量有望跨过5.9亿部,占全球智能手机总出货量的比重跨过50%。 跟着硬件根底夯实、端侧…

el-table 动态计算合并行

原始表格及代码 <el-table:data"tableData"class"myTable"header-row-class-name"tableHead" ><el-table-column prop"date" label"日期"> </el-table-column><el-table-column prop"name" …

druid.properties图标是齿轮

一、问题 在IDEA中&#xff0c; druid.properties图标是齿轮 二、原因 2023版本开始&#xff0c;IDEA新的UI的问题 三、解决方法 1、点击右上角的齿轮图标 2、点击Settings 3、Appearance & Behavior---->New UI---->取消勾选“Enable new UI”---->右下角OK 4…

龙海家园地面停车场探寻2

在南山前海上班2年多了&#xff0c;到现在最喜欢的小区还是龙海家园小区。龙海家园小区是深圳目前最大的公共保障性租赁住房小区,目前居住有约2.6万人。而小区的停车位是远远不够的。之前一直很好奇车子可以停哪里。 后面加班之余经常去小区吃饭和转转。发现龙海家园小区与对面…

群控系统服务端开发模式-应用开发-操作记录功能开发

一、开放路由 在根目录下route文件夹下修改app.php文件&#xff0c;代码如下&#xff1a; // 操作日志Route::get(token/get_list,permission.Token/getList);// 获取操作日志列表Route::post(token/get_all,permission.Token/getAll);// 获取操作日志所有数据Route::post(toke…

探索 HTTP 请求头中的 “Host” 字段及其安全风险

探索 HTTP 请求头中的 “Host” 字段及其安全风险 大家好&#xff0c;今天我们来聊聊 HTTP 请求头中的“Host”字段&#xff0c;以及它的使用方法和安全风险。 什么是Host字段 在 HTTP 请求头中&#xff0c;“Host”字段是一个至关重要的部分。它告诉服务器&#xff0c;我们…

Type-C接口电热毯的创新之旅

在科技日新月异的今天&#xff0c;智能家居产品正逐步渗透到我们生活的每一个角落&#xff0c;从智能灯光到温控系统&#xff0c;无一不展现着科技带来的便捷与舒适。而在这个追求高效与智能化的浪潮中&#xff0c;一款结合了最新科技元素的电热毯——Type-C接口电热毯&#xf…

计算机网络知识点全梳理(一.TCP/IP网络模型)

目录 TCP/IP网络模型概述 应用层 什么是应用层 应用层功能 应用层协议 传输层 什么是传输层 传输层功能 传输层协议 网络层 什么是网络层 网络层功能 网络层协议 数据链路层 什么是数据链路层 数据链路层功能 物理层 物理层的概念和功能 TCP/IP网络模型概述…

【MySQL 保姆级教学】用户管理和数据库权限(16)

数据库账户管理是指对数据库用户进行创建、修改和删除等操作&#xff0c;以控制用户对数据库的访问权限。通过账户管理&#xff0c;可以设置用户名、密码、主机地址等信息&#xff0c;确保数据库的安全性和可控性。例如&#xff0c;使用 CREATE USER 创建用户&#xff0c;ALTER…

SpringSecurity使用教程

一、基本使用 Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架&#xff0c;专门设计用于保护基于 Spring 的应用程序。它不仅提供了全面的安全服务&#xff0c;还与 Spring 框架及其生态系统&#xff08;如 Spring Boot、Spring MVC 等&#xff09;紧密集…

docker 安装mysql 5.7 详细保姆级教程

1. 安装mysql(5.7) docker pull mysql:5.7 若是拉取不了&#xff0c;可以配置下 docker 源 2. 查看是否安装成功 docker images 下图就是成功了 3.创建mysql专用目录、数据挂载目录、配置文件目录 &#xff0c;演示目录在于/home/下 //命令逐条执行cd /home/ mkdir mysql …

fixture装饰器

普通代码案例&#xff1a; python本身执行 import pytestdef init_new():print("init_new...")return Truedef test_case(init_new):if init_new is True:print("如果init_new返回True&#xff0c;就执行用例test_case")if __name__ __main__:#用python本…

【韩顺平Java JDBC学习笔记】

Java JDBC 文章目录 jdbc概述基本介绍jdbc原理示意图 jdbc快速入门JDBC程序编写步骤获取数据库连接5种方式ResultSet[结果集]SQL注入Statement PreparedStatement预处理好处基本使用 JDBC APIJDBCUtils工具类使用工具类 事务基本介绍应用实例模拟经典的转帐业务 - 未使用事务模…

KeepAlive与RouterView缓存

参考 vue动态组件&#xff1c;Component&#xff1e;与&#xff1c;KeepAlive&#xff1e; KeepAlive官网介绍 缓存之keep-alive的理解和应用 Vue3Vite KeepAlive页面缓存问题 vue多级菜单(路由)导致缓存(keep-alive)失效 vue3 router-view keeperalive对于同一路径但路径…

【经验分享】搭建本地训练环境知识点及方法

最近忙于备考没关注&#xff0c;有次点进某小黄鱼发现首页出现了我的笔记还被人收费了 虽然我也卖了一些资源&#xff0c;但我以交流、交换为主&#xff0c;笔记都是免费给别人看的 由于当时刚刚接触写的并不成熟&#xff0c;为了避免更多人花没必要的钱&#xff0c;所以决定公…

为什么要使用数据仓库?

现状和需求 大量的企业经营性数据&#xff08;订单&#xff0c;库存&#xff0c;原料&#xff0c;付款等&#xff09;在企业的业务运营系统以及其后台的(事务型)数据库中产生的。 企业的决策者需要及时地对这些数据进行归类分析&#xff0c;从中获得企业运营的各种业务特征&a…

CSS|07 标准文档流

标准文档流 一、什么是标准文档流 在制作的 HTML 网页和 PS 画图软件画图时有本质上面的区别: HTML 网页在制作的时候都得遵循一个“流的规则:从左至右、从上至下。 使用 Ps 软件画图时可以在任意地方画图。 <!DOCTYPE html> <html lang"en"> <hea…

JS设计模式之访问者模式

前言 访问者模式&#xff08;Visitor Pattern&#xff09;是一种 行为设计模式&#xff0c;它允许在不改变对象结构的情况下&#xff0c;定义新的操作。 这种模式通过将操作封装在访问者对象中&#xff0c;使得可以在不修改被访问对象的情况下&#xff0c;增加新的功能。 本…

快速上手:利用 FFmpeg 合并音频文件的实用教程

FFmpeg 是一个强大的多媒体处理工具&#xff0c;能够轻松地对音频、视频进行编辑和转换。本文将介绍如何使用 FFmpeg 来合并&#xff08;拼接&#xff09;多个音频文件为一个单一文件。无论您是想要创建播客、音乐混音还是其他任何形式的音频项目&#xff0c;这都是一个非常实用…

使用idea创建一个JAVA WEB项目

文章目录 1. javaweb项目简介2. 创建2.1 idea新建项目2.2 选择&#xff0c;命名2.3 打开2.4 选择tomcat运行2.5 结果 3. 总结 1. javaweb项目简介 JavaWeb项目是一种基于Java技术的Web应用程序&#xff0c;主要用于开发动态网页和Web服务。这种项目能够构建在Java技术栈之上&a…