html5网站布局教程/品牌推广方式都有哪些
Pass-01(JS校验)
看题目我们准备好我们的php脚本文件,命名为1.php
上传该php文件,发现上传失败
方法一:将浏览器的JavaScript禁用
然后就能上传了
方法二:
查看源码,发现只能上传以下形式的文件
我们将刚才的1.php的后缀改为.jpg
上传该文件并用bp抓包,send to Repeater,将其后缀改回1.php,再send即可上传成功
Pass-02(服务端(后端)验证)
还是上传1.php提示“文件类型不正确,请重新上传”
查看源码,发现本题的漏洞在于后端利用 PHP 的全局数组$_FILES()获取上传文件信息,其只检测content-type字段
而常用的content-type字段有:
image/jpeg :jpg 图片格式
image/png :png 图片格式
image/gif :gif 图片格式
text/plain :纯文本格式
text/xml : XML 格式
text/html : HTML 格式
再次用bp抓包,然后send to Repeater
将content-type字段改为image/jpeg,再点击send,上传成功
打开源文件查看是否上传成功加以验证
Pass-03(文件名后缀校验(黑名单绕过))
直接查看源码吧:
发现只是过滤了一小部分的文件后缀,而利用一些危险的文件后缀还是可以上传的
可以修改为其他的文件后缀如:.php3,.php4,.php5,.phtml,.phps等
我们上传1.php3,可以上传成功
Pass-04(文件名后缀校验(配置文件解析控制))
查看本关源代码发现他把几乎全部的文件后缀名过滤掉了,啊啊啊
但是他又貌似漏掉了.htaccess文件。。。。
那么什么是.htaccess文件呢?
htaccess 文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess 文 件,可以实现:网页 301 重定向、自定义 404 错误页面、改变文件扩展名、允许/阻止特定的用户或者目录 的访问、禁止目录列表、配置默认文档等功能。
解法:上传.htaccess 解析文件,利用其配置,将白名单文件的类型解析成php文件类型。
新建一个txt文件或者php文件,写入如下代码
<FilesMatch "1.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
这段代码意思为:将服务器上的1.jpg文件解析为php文件
保存后将文件名改为.htaccsee(注意:htaccess文件不能起名字,他就是.htaccess文件,如果你将他改为4.htaccess或者其他的什么名字 是不可以的,无法解析。)
再建一个php文件,写入phpinfo()函数,保存后将后缀改为.jpg,我这里为1.jpg
准备工作都完成后,回到题目,先上传.htaccsee文件,再上传1.jpg文件
上传成功后,看不出什么
但我们访问1.jpg,发现他以php的形式显示了出来
Pass-05(文件名后缀校验(.user.ini解析))
还是直接看源码,非常好,他在过滤了一堆后缀名的基础上,又把上关使用的.htaccess过滤掉了 。。。
没事,我们还有方法——利用.user.ini配置文件
.user.ini比.htaccess 用的更广,不管服务器是 nginx/apache/IIS,当使用 CGI/FastCGI 来解析 php 时,php 会优先搜索目录下所有的.ini 文件,并应用其中的配置。类似于 apache的.htaccess,但语法与.htacces不同,语法跟 php.ini 一致
而php.ini 是 php的配置文件,.user.ini 中的字段也会被 php 视为配置文件来处理,从而导致 php 的文件解析漏洞。 但是想要引发 .user.ini 解析漏洞需要三个前提条件:
服务器脚本语言为PHP
服务器使用CGI/FastCGI模式(上网简单了解)
上传目录下要有可执行的php文件
废话不多说,开始做题:
还是新建一个txt文件或者php文件,写入如下代码:
auto_prepend_file=1.jpg
意思就是将所有的php文件都自动包含1.jpg文件。(.user.ini相当于一个用户自定义的
php.ini)
再将文件名改为.user.ini,上题的1.jpg还能用嘿嘿
那就回题目,先上传.user.ini文件,再上传1.jpg文件,后面的过程就和上一题一样了
其实还有解法二/三....:(这里是第10关解法,后关的解法前关都适用)
直接用 php. .(点空格点), 绕过上传
Pass-06(文件名后缀校验(大小写绕过))
这关连.ini都给过滤了
但但但但但是没有使用strtolower()函数,可以使用大小 写绕过黑名单 把.php 格式改为.Php 上传上去之后,就会自动解析为.php
注意:
Windows 系统下,对于文件名中的大小写不敏感。例如:test.php 和 TeSt.PHP 是一样的。
Linux 系统下,对于文件名中的大小写敏感。例如:test.php 和 TesT.php 就是不一样的。
Pass-07(文件名后缀校验(空格绕过))
又来了,又使用strtolower()函数了,大小写绕过不管用了
没关系,他未做去空格的操作->trim() ,所以还有空格绕过
Windows 系统下,对于文件名中空格会被作为空处理,程序中的检测代码却不能自动删除空格。从而绕 过黑名单。
bp抓包,1.php后加一个空格,上传成功!
Pass-08(文件名后缀校验(点号绕过))
不出所料,trim()函数来了,空格绕过也不行了
可是他对上传的文件后缀名未做去点.的操作 ->deldot(),我们还有点号绕过
接下来就一样了,bp抓包,只需在1.php后加个.就行了!
Pass-09(文件名后缀校验(::DATA绕过))
果然,deldot()函数过滤了点号
但又对上传的文件后缀名没有做去::$DATA 处理
因此我们可以利用::$DATA后缀
Windows 系统下,如果上传的文件名为 1.php::$DATA 会在服务器上生成一个
1.php 的文件,其中内容和所上传文件内容相同,并被解析。
bp抓包,在1.php后加个::$DATA就行了
但访问1.php::$DATA是不行的,还需将 ::$DATA去掉
成功访问!
Pass-10(文件名后缀校验(拼接绕过))
::$DATA绕过不好使了,无话可说,直接上解法:
将文件名进行过滤操作后,将文件名拼接在路径后面,所以需要绕过前面的首尾去空以及去点。
bp抓包,在1.php后加. .(点空格点)就行了
访问成功!
之前有的忘写访问结果了,除了1.php::$DATA需将 ::$DATA去掉外,都能直接访问成功哦!
Pass-11(文件名后缀校验(双写绕过))
利用 str_ireplace()将文件名中符合黑名单的字符串替换成空,总之就是前面的方法都不好使了
解决方式:利用双写黑名单字符,对字符串的一次过滤后拼接出 php,文件名.pphphp
bp抓包,1.php后缀改为.pphphp就行了
上传成功!
相关文章:

uploads靶场通关(1-11关)
Pass-01(JS校验) 看题目我们准备好我们的php脚本文件,命名为1.php 上传该php文件,发现上传失败 方法一:将浏览器的JavaScript禁用 然后就能上传了 方法二: 查看源码,发现只能上传以下形式的文…...

6.1黄金探底回升是否到顶,今日多空如何布局
近期有哪些消息面影响黄金走势?今日黄金多空该如何研判? 黄金消息面解析:周三(5月31日)黄金期货价格攀升,美国国债收益率下降推动金价升至一周最高收盘位。美市尾盘,现货黄金收报1962.42美元/盎司,上升3…...

自定义ViewGroup实现流式布局
目录 1、View的绘制流程 2、自定义ViewGroup构造函数的作用 3、onMeasure 方法 3.1、View的度量方式 3.2、onMeasure方法参数的介绍 3.3、自定义ViewGroup onMeasure 方法的实现 4、onLayout方法 5、onDraw方法 6、自定义View的生命周期 7、自定义流式布局的实现 扩展ÿ…...

Git版本控制
目录 版本控制 概念 为什么需要版本控制? 常见的版本控制工具 Git 1、安装 2、了解基本的Linux命令 3、配置git 用户名和邮箱 4、git 工作模式 5、git 项目管理 6、git 分支 托管平台 远程仓库 Gitee 关联多个远程库 Git服务器 Git GUI 版本控制 概…...

若依之权限处理
若依之权限处理 若依前后端不分离版本使用的是shiro进行权限控制,本文主要是对shiro在若依中的使用进行分析。 RBAC权限模型 RBAC是指基于角色的访问控制。其基本思想是,对系统的各种权限不是直接授予具体的用户,而是在用户集合与权限集合…...

华为OD机试真题 Java 实现【矩阵最大值】【2023 B卷 100分】,附详细解题思路
一、题目描述 给定一个仅包含0和1的N*N的二维矩阵,请计算二维矩阵的最大值。 计算规则如下: 1、每行元素按下标顺序组成一个二进制数(下标越大越排在低位),二进制数的值就是该行的值。矩阵各行值之和为矩阵的值。 2、允许通过向左或向右整体循环移动每行元素来改变各元…...

ModuleNotFoundError: No module named ‘transformers_modules.chatglm-6b_v1‘的解决方案
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

MMPretrain代码课
安装注意事项 训练时需要基于算法库源码进行开发,所以需要git clone mmpretrain仓库。如果只调用,则pip install 即可。 from mmpretrain import get_model, list_models,inference_model分别用于模型的获取、例举、推理 此时还没加载预训练权重 tor…...

Selenium自动化程序被检测为爬虫,怎么屏蔽和绕过
Selenium 操作被屏蔽 使用selenium自动化网页时,有一定的概率会被目标网站识别,一旦被检测到,目标网站会拦截该客户端做出的网页操作。 比如淘宝和大众点评的登录页,当手工打开浏览器,输入用户名和密码时,…...

Nvidia Jetson Orin:开发技巧
Jetson PXXX定义 P2180 -> Jetson TX1 P3310 -> Jetson TX2 P3489 -> Jetson TX2i P3448 -> Jetson Nano devkit P3448-0020 -> Jetson Nano production module P2888 -> Jetson Xavier P2888-0060 -> Jetson Xavier-8GB P3701 -> Jetson AGX Orin D…...

为什么需要 git 和 相关的小知识
为什么需要git和相关的小知识 先看一个实际需求,引出Git 问题: 公司五一活动计划 ● 先说一个最简单的情况,比如你做了公司五一活动计划书(如图) 解决方案: 版本管理工具(Git) 一句话: Git 是目前最流行的分布式版本控制软件 Git 是怎么来的? Git…...

(详解)vue中实现主题切换的三种方式
目录 一、背景 二、实现思路 方法1:定义全局的CSS变量 方法2:切换已定义好的css文件 方法3:切换顶级CSS类名 (需使用css处理器,如sass、less等) 一、背景 在我们开发中我们会遇到像是需要切换程序风格、主题切换啦这种应用场景。 参考大佬…...

英国皇家植物园采用机器学习预测植物抗疟性,将准确率从 0.46 提升至 0.67
内容一览:疟疾是严重危害人类生命健康的重大传染病,研究人员一直在致力于寻找新的植物源性抗疟疾化合物,以研发相关药物。近期英国皇家植物园利用机器学习 算法 有效预测了植物抗疟性,该研究成果目前已发表在《Frontiers in Plant…...

基于Locust实现MQTT协议服务的压测脚本
一、背景简介 业务背景大概介绍一下,就是按照国标规定,车辆需要上传一些指定的数据到ZF的指定平台,同时车辆也会把数据传到企业云端服务上,于是乎就产生了一些性能需求。 目前我们只是先简单的进行了一个性能场景的测试…...

AURIX TC3XX Cached PFLASH与Non-Cached PFLASH的区别
Cached ? Non-Cached? 在阅读TC3XX的用户手册时,在内存映射表中,有两个segment都是Program Flash,而且大小都一样是3M,一个是segment 8 另一个是segment10 这难免让人产生疑惑,二者区别在哪? …...

uniapp开发小程序-显示左滑删除效果
一、效果图: 二、代码实现: <template><view class"container"><view class"myorderList"><uni-swipe-action><uni-swipe-action-item class"swipe-action-item" :right-options"option…...

FPGA 的数字信号处理:Verilog 实现简单的 FIR 滤波器
该项目介绍了如何使用 Verilog 实现具有预生成系数的简单 FIR 滤波器。 绪论 不起眼的 FIR 滤波器是 FPGA 数字信号处理中最基本的模块之一,因此了解如何将具有给定抽头数及其相应系数值的基本模块组合在一起非常重要。因此,在这个关于 FPGA 上 DSP 基础…...

使用粒子群优化算法(PSO)辨识锂电池二阶RC模型参数(附MATLAB代码)
目录 一、原理部分 二、代码详解部分 三、结果及分析 一、原理部分 PSO算法由美国学者于 1995 年提出,因其算法简单、效果良好,而在很多领域得到了广泛应用。该算法的起源是模拟鸟群的觅食过程,形成一种群体智能搜索算法。 其核心是&#…...

如何利用地面控制点实现倾斜摄影三维模型数据的几何坐标变换和纠正?
如何利用地面控制点实现倾斜摄影三维模型数据的几何坐标变换和纠正? 倾斜摄影是一种在空中拍摄地表物体的技术,可以获得高分辨率、高精度的三维模型数据,广泛应用于城市规划、建筑设计、土地管理等领域。然而,由于航拍时无法避免姿…...

设计规则之里氏替换原则
tip: 作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。 相关规则: 推荐:体系化学习Java(Java面试专题) 1.6大设…...

【叠高高】叠蛋糕游戏的微信小程序开发流程详解
记得小时候玩过的搭积木游戏吗,和叠高高游戏原理差不多的,与之类似的还有盖高楼游戏,就是看谁盖的(叠的)最高,这里讲一下比较基础的叠高高游戏小程序实现过程,对编程感兴趣的同学可以参考学习一…...

收集关键词的方法有哪些?(如何查找精准的行业流量关键词)
关键词的收集通常可以通过以下几种方法: 关键词收集方法 1.根据市场价值、搜索词竞争性和企业实际产品特征进行筛选:确定您的关键词列表之前,建议先进行市场分析,了解您的竞争对手、行业状况和目标受众等信息,以更好地了解所需的特…...

【GreenDao】RxQuery查询并修改GreenDao数据库,完成后更新UI
GreenDao是一个轻量级的ORM(对象关系映射)数据库,而RxJava是一个响应式编程库,可以帮助我们更轻松地处理异步事件。在 Android 应用程序中,您可以使用这两个库一起处理数据库查询和更新,并使用观察者模式来…...

Modifier ‘public‘ is redundant for interface methods错误
java中接口的方法默认是 public abstract 的 所以放心的删掉public即可,如果改为protected 或者 private还会报错 接口的方法及变量的默认修饰符 1.接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract (只能是 public abst…...

Redis缓存击穿及解决问题
缓存击穿的意思是对于设置了过期时间的key,缓存在某个时间点过期的时候,恰好这时间点对这个 Key有大量的并发请求过来,这些请求发现缓存过期- -般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把DB压垮。 解决方案有两种…...

环境感知算法——2.CenterNet基于KITTI数据集训练
1. CenterNet简介 CenterNet采用了一种新的检测思路,即以目标中心点为基础,直接回归出目标的位置和大小。而传统的目标检测算法通常会先产生大量候选框(Anchor),再通过分类器进行筛选,这种方法比较复杂。C…...

JUC 高并发编程基础篇
JUC 高并发编程基础篇 • 1、什么是 JUC • 2、Lock 接口 • 3、线程间通信 • 4、集合的线程安全 • 5、多线程锁 • 6、Callable 接口 • 7、JUC 三大辅助类: CountDownLatch CyclicBarrier Semaphore • 8、读写锁: ReentrantReadWriteLock • 9、阻塞队列 • 10、ThreadPo…...

【十二】设计模式~~~行为型模式~~~命令模式(Java)
命令模式-Command Pattern【学习难度:★★★☆☆,使用频率:★★★★☆】 1.1. 模式动机 在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个…...

可再生能源的不确定性和储能系统的时间耦合的鲁棒性和非预期性区域微电网的运行可行性研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

Revit中如何使创建的族文件内存变小
族文件的大小直接影响到项目文件的大小和软件运行速度,如何将族文件做的最小并且满足项目需求呢? 方法一:清除未使用项 1. 族制作完成可以把族文件中未用到的外部载入族或其他多余数据删掉,点击“管理”选项卡下拉的“清除未使用项”命令; 2…...