文件上传漏洞-黑名单检测

黑名单检测

一般情况下,代码文件里会有一个数组或者列表,该数组或者列表里会包含一些非法的字符或者字符串,当数据包中含有符合该列表的字符串时,即认定该数据包是非法的。
如下图,定义了一个数组$deny_ext = array('.asp','.aspx','.php','.jsp');
然后有一个判断语句如果后罪名为数组里面的几个就不允许上传

如何确认是否是黑名单检测

黑名单是有限的,可以随意构造一个文件后缀,如果可以上传,则说明是黑名单检测,反之,为白名单检测。比如上传一个php后缀的文件,发现不允许上传,接下来就是去判断检测方式。
随意构造一个文件后缀,比如将1.php改为1.aaa发现可以上传,说明是基于黑名单检测

绕过技巧

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

其它可解析后缀绕过

PHP:
php2php3php5phtmlpht(是否解析需要根据配置文件中设置类型来决定)
ASP:asacercdx
ASPX:ascxashxasac
JSP:jspxjspf

Pass-03

方法1
更改 Apache 的配置项 AddType application/x-httpd-php .php .phtml ,然后上传 .phtml 文件
在实战中是不可以修改的,如果服务器本身就设置了这项那么我们可以利用。这里只是了解一下原理。
一般会将这一项注释掉,我们打开后,可以添加指定后缀,这样服务器就会将指定后缀的文件当做php文件解析
更改后将phpstudy服务重启即可,我们将post.php后缀修改为phtml发现上传成功。接下来就可以利用工具进入服务器
方法2
抓包,双写 ::$DATA
window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,它的目的就是不检查后缀名
例如:"phpinfo.php::$DATA" Windows会自动去掉末尾的::$DATA变成"phpinfo.php
我们查看源代码可以发现这么一个变量
网站有所防御,会清除::$DATA,防止我们利用::$DATA绕过监测后缀名。
服务器是从第一个字符开始匹配::$DATA,比如第一个从:开始,只有后面完全匹配::$DATA,才会清除,那么我们就可以利用双写::$DATA。那么到底如何双写呢。
1.::$DATA::$DATA,这种写法明显不对,因为第一次开始匹配,发现一个::$DATA清除后,还会继续匹配发现还是::$DATA那么就都会清除掉。
2.::$::$DATADATA,开始匹配,匹配到::$以后下一个应该是字母D但是下一个是:则会认为不是,那么就开始从第二个:同理,知道匹配到中间的::$DATA,会将这个清除掉,然后会接着从下一位开始匹配也就是D开始第一个就匹配失败,那么继续往后,后面都不是从:开始。所以最后就留一下了一个::$DATA。这样就达成了我们的目的
开始抓包
在这里双写,然后放包会发现.php文件上传成功
访问图像链接,将::$data去掉再次访问
可以看到一句话木马上传成功

图片+配置文件绕过

Pass-04

.htaccess 文件(或者分布式配置文件,全称是HypertextAccess(超文本入口)。提供了针对目录改变配置的方法。它里面可以存放Apache服务器配置相关的指令。
.htaccess
<FilesMatch "as.png">
setHandler application/x-httpd-php
</FilesMatch>
通过一个.htaccess 文件调用 php 的解析器去解析一个文件名中只要包含"as.png"这个字符串的任意文件,所以无论文件名是什么样子,只要包含"as.png"这个字符串,都可以被以 php 的方式来解析,一个自定的.htaccess 文件就可以以各种各样的方式去绕过很多上传验证机制。
也可以使用以下方式:
先上传 .htaccess 文件,内容如下
SetHandler application/x-httpd-php(这个万能)
或者
AddType application/x-httpd-php jpg
再上传一句话木马 shell.txt 或者 shell.jpg 文件
解题过程
可以看到这关的源代码添加了更多的黑名单。我们再想通过其他后缀解析php文件就比较困难,那么就用到了.htaccess 文件,先编辑好上传
之所以可以使用 .htacces文件是因为这关源代码中不会随机更改文件名
而第三关会将上传厚的文件随机更改名字这样就会让 .htacces文件失效
上传好 .htaccess 文件后再上传一个.png的文件,直接将一句话木马文件后缀改成这个。 .htaccess 文件的作用是将任何文件当成php文件进行解析
发现上传成功,使用中国蚁剑进行连接也成功了

点和空格绕过

pass-4

由于删除点和首尾去空这些验证只是一次性,所以我们可以进行 点和空格绕过
bp抓包绕过 这里我们上传post.php文件,然后bp抓包修改为1.php. .这里是点+空格+点。然后放包
可以看到删除点和去空后还剩下一个点,且文件成功被解析

pass-5

查看源代码发现将.htaccess文件也列入黑名单
那么利用点和空格绕过

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在Linux系统部署ONLYOFFICE协作办公利器并实现多人实时编辑文档

文章目录 1. 安装Docker2. 本地安装部署ONLYOFFICE3. 安装cpolar内网穿透4. 固定OnlyOffice公网地址 本篇文章讲解如何使用Docker在本地服务器上安装ONLYOFFICE&#xff0c;并结合cpolar内网穿透实现公网访问。 Community Edition允许您在本地服务器上安装ONLYOFFICE文档&…

DSVPN实验报告

一、分析要求 1. 配置R5为ISP&#xff0c;只能进行IP地址配置&#xff0c;所有地址均配为公有IP地址。 - 在R5上&#xff0c;将接口配置为公有IP地址&#xff0c;并确保只进行了IP地址配置。 2. R1和R5之间使用PPP的PAP认证&#xff0c;R5为主认证方&#xff1b;R2于R5之间…

Figma使用问题(更新自己遇到的问题)

文章目录 前言一、如何安装插件&#xff1f;方法1&#xff1a;Figma Community / Figma中文社区方法2&#xff1a;菜单栏 二、图片倾斜插件使用1.Angle Mockups前提&#xff1a;执行过程&#xff1a; 三.中文字体插件&#xff08;宋体等&#xff09;Chinese Font Picker前提&am…

【算法题】三道题理解算法思想——二分查找算法

二分查找算法 本篇文章中会带大家从零基础到学会利用二分查找的思想解决算法题&#xff0c;我从力扣上筛选了三道题&#xff0c;难度由浅到深&#xff0c;会附上题目链接以及算法原理和解题代码&#xff0c;希望大家能坚持看完&#xff0c;绝对能有收获&#xff0c;大家有更好…

阿里云2核4G服务器租用价格,支持多少人在线?

阿里云2核4G服务器多少钱一年&#xff1f;2核4G配置1个月多少钱&#xff1f;2核4G服务器30元3个月、轻量应用服务器2核4G4M带宽165元一年、企业用户2核4G5M带宽199元一年。可以在阿里云CLUB中心查看 aliyun.club 当前最新2核4G服务器精准报价、优惠券和活动信息。 阿里云官方2…

[项目实践]---RSTP生成树

[项目实践] 目录 [项目实践] 一、项目环境 二、项目规划 三、项目实施 四、项目测试 |验证 ---RSTP生成树 一、项目环境 Jan16 公司为提高网络的可靠性&#xff0c;使用了两台高性能交换机作为核心交换机&#xff0c;接入层交 换机与核心层交换机互联&#xff0c;形成冗…

数据恢复宝典:揭秘分区合并后的数据拯救之路

在计算机存储管理中&#xff0c;分区合并是一项常见的硬盘操作。它通过将两个或多个相邻的磁盘分区合并成一个更大的分区&#xff0c;来扩展存储空间或简化磁盘管理。然而&#xff0c;这个看似简单的操作背后&#xff0c;却隐藏着数据丢失的巨大风险。许多用户在尝试分区合并时…

【Linux系统】信号量实现同步和互斥

一.回顾 在这之前已经讲解了System V版本的信号量&#xff0c;主要内容为以下3点&#xff1a; 信号量本质是一把计数器申请信号量本质就是预订资源PV操作(申请和释放)是原子的 今天我们要学习的是POSIX版本的信号量&#xff0c;以上三点同样遵循 二.信号量VS互斥锁 1.联系&…

蓝桥杯23年第十四届省赛真题-三国游戏|贪心,sort函数排序

题目链接&#xff1a; 1.三国游戏 - 蓝桥云课 (lanqiao.cn) 蓝桥杯2023年第十四届省赛真题-三国游戏 - C语言网 (dotcpp.com) 虽然这道题不难&#xff0c;很容易想到&#xff0c;但是这个视频的思路理得很清楚&#xff1a; [蓝桥杯]真题讲解&#xff1a;三国游戏&#xff0…

OpenHarmony系统开发之应用接口文件转换工具介绍

简介&#xff1a; 应用接口文件转换工具是根据异构格式接口文件(.h 文件)转换生成 OpenHarmony 系统应用层需要的 TS(type-script)接口文件(*.d.ts)的工具。若某个服务实现方式为 c&#xff0c;且供应用层访问的接口已在.h 文件中定义&#xff0c;此时&#xff0c;NAPI 接口开…

23年蓝桥杯javaB组

23年蓝桥杯java-b组 前言&#xff1a; 23年蓝桥杯当时并没有参加&#xff0c;不过打算参加24年的蓝桥杯&#xff0c;于是打算复习下23年的题目&#xff0c;哦&#xff0c;不做不知道&#xff0c;做了几道题后评价一下&#xff0c;真的是老&#x1f437;上&#x1f3e0;&#…

13 完全分布式搭建-集群配置

1.集群部署规划 NameNode 和 SecondaryNameNode 不要安装在同一台服务器 ResourceManager 也很消耗内存&#xff0c;不要和 NameNode、SecondaryNameNode 配置在 同一台机器上。 在文章中与教材上有区别&#xff0c;在理论课上已讲解。 masterslave01slave02HDFS NameNode D…

HashMap关键源码带读

文章目录 目录 文章目录 前言 1 . 成员变量 灵魂五问 第一问: 默认初始化容量为啥是16? 第二问: 最大容量为什么必须是2的幂? 第三问: 链表转红黑树的阈值为什么是8? 第四问: 红黑树转链表的阈值为什么是6? 第五问: 默认加载因子为什么是0.75? 2. 成员方法 eq…

嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记15:PWM输出

系列文章目录 嵌入式|蓝桥杯STM32G431&#xff08;HAL库开发&#xff09;——CT117E学习笔记01&#xff1a;赛事介绍与硬件平台 嵌入式|蓝桥杯STM32G431&#xff08;HAL库开发&#xff09;——CT117E学习笔记02&#xff1a;开发环境安装 嵌入式|蓝桥杯STM32G431&#xff08;…

Linux:TCP协议的三次握手和四次挥手

文章目录 三次握手四次挥手为什么要进行三次握手&#xff1f;三次握手也不安全 本篇解析的主要是TCP的三次握手和四次挥手的过程 三次握手 如图所示&#xff0c;在TCP要进行链接的时候&#xff0c;其实是要进行三次握手的 第一次握手是指&#xff0c;此时客户端要给服务器发送…

AI学习-Pandas数据处理分析

文章目录 1. Pandas概述2. Series用法2.1 Series的创建2.2 Series的取值2.3 Series的相关方法 3. DataFrame用法3.1 DataFrame创建3.2 DataFrame取值3.3 DataFrame相关方法 1. Pandas概述 ​ Pandas 是一个开源的数据分析处理库&#xff0c;它应用在数据科学、统计分析、机器学…

python中的deque详解

文章目录 摘要示例1&#xff1a;基本使用示例2&#xff1a;使用maxlen限制队列长度示例3&#xff1a;使用deque实现滑动窗口算法示例 4: 使用 deque 实现旋转数组示例 5: 使用 deque 实现最大/最小栈示例 6: 使用 deque 实现广度优先搜索&#xff08;BFS&#xff09; 摘要 deq…

力扣56. 合并区间

Problem: 56. 合并区间 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.将数组按内部的一维数组的第一项按从小到大的顺序排序&#xff1b; 2.创建二维结果数组merged&#xff0c;并将排序后的数组中的第一个一维度数组存入到merged中&#xff1b; 3.从后面的一…

理解游戏服务器架构-部署架构

目录 前言 我所理解的服务器架构 什么是否部署架构 部署架构的职责 进程业务职责 网络链接及通讯方式 与客户端的连接方式 服务器之间连接关系 数据落地以及一致性 数据库的选择 数据访问三级缓存 数据分片 读写分离 分布式数据处理 负载均衡 热更新 配置更新 …

express实现用户登录和注册接口

目录 1 创建数据库2 连接数据库3 集成ORM库4 创建业务逻辑5 创建路由7 测试接口总结 我们在编写后端接口的时候操作数据库是一种常见的功能需求&#xff0c;express本身并不提供直接操作数据库的能力&#xff0c;需要借助第三方库来操作数据库&#xff0c;本篇讲解一下软件开发…