upload-labs通关

 前记:

在这里面我们使用一句话木马时使用php里的一个函数phpinfo(),该函数能显示出网页具体的php版本和有关的信息。

pass-01(js前端验证)

方法1:禁用js/删除js验证

      1.禁用js

           按f12,在“调试器”右端的设置中,禁用js,上传成功后右键图片,在新页面中打开图片即可

         

       2.删除js

               把网页源码中的return checkFile删除后上传打开即可。(和删除代码是一样的)

方法2:bp抓包改文件后缀

传一个允许上传类型的文件,bp抓包以后,修改后缀回.php即可

方法3:删除代码

将选中部分的源码删除掉,再上传即可,如果找不到路径,可在f12的“网络”模块中找到

pass-02(MIME验证)

方法1:修改文件类型

上传一个php文件,bp抓包后修改Content-Type为image/jpeg(常用)、image/png、image/gif,另外两个是源码中承认的

方法2:上传合法文件和改后缀

上传一个合法的文件,例如jpg,bp抓包后再把文件的后缀改回来即可(可能需要多次放包,直至出现上传成功的框)

pass-03(黑名单验证,特殊文件类型)

查看源码后发现禁止上传.asp|.aspx|.php|.jsp,修改文件后缀为php1,php2,php3,php4.php5,phtmI, pht上传即可

注意:phpstudy_pro在此上传成功后不能正确显示,如果要正确显示,需要回溯2018版本,选择php版本不带nts的,如果是其他的可以尝试修改httpd.conf配置文件,Pro版本不知道改了能不能,可以试一下

pass-04(.htaccess)

这个和ctfhub上的那个一样,在源码中许多后缀都被禁用了,我们这里使用.htaccess是因为在我们上传了一个.htaccess文件后再上传一个某类型的文件,后面上传的文件就可以变成php解析过的,详情请搜索“分布式配置文件”或者“.htaccess”。所以我们再上传了.htaccess后就再上传一个.jpg再访问就行了

.htaccess文件内容有以下几种(常见)

AddHandler php5-script .png  //使用 php5-script 处理器来解析所匹配到的文件
AddType application/x-httpd-php .png  //将特定扩展名文件(这里是.png)映射为php文件类型
SetHandler application/x-httpd-php    //将该目录及子目录的所有文件均映射为php文件类型

pass-05(黑名单验证,.user.ini)

.user.ini是php的一种配置文件,相当于一个用户自定义的php.ini,它可以在(你在语句中定义的那个)php文件执行之前将其包含,然后获取shell,细节去搜索,展开讲有点多。

上传目录存在php文件(readme.php),再先上传.user.ini后,修改php.ini配置文件,上传后面的图片码,最后访问这个(readme.php)或者图片码文件的路径即可

auto_prepend_file=文件名
auto_append_file=文件名

 修改如下

pass-06(大小写绕过黑名单)

查看源码,发现大小写绕过这种方式没有被禁止,我们就可以利用,上传文件后缀为Php这类

pass-07(收尾去空)

查看源码和上面的相比,收尾去空这一项没有了,我们可以利用bp抓包后在后缀后添加空格,就可以上传成功。

 

pass-08(字符绕过)

查看源码,与前面的相比,没有了删除文件名后的点那项,我们在bp抓包以后可以再文件后缀后加一个.这样的字符就可以绕过了

 

pass-09(::$DATA绕过黑名单)

还是看源代码,与之前的相比,没有了去除字符串那项,用::$DATA绕过

 

pass-10(点空格点绕过黑名单)

查看源码:deldot()函数从后向前检测,当检测到末尾的第一个点时会继续它的检测,但是遇到空格会停下来,因此我们在文件后缀后加“. .”后上传即可。

 

pass-11(双鞋绕过)

str_ireplace()函数:此函数无视大小写, 如果文件名含有黑名单里面的字符串就替换为空,而且只替换一次,它从左往右读,所以替换为空后还是php,可以双写为pphphp,phphpp

 

pass-12(%00截断-get型)

源码中有一个很重要的点,上面的 $img_path = $_GET['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;这行代码规定了组成上传路径的方法,这里就是我们要操作的地方。

注意:因为这个是自己搭的网站,而且是比较老的了,所以要修改一些配置

在php.ini中修改magic_quotes_gpc=On为magic_quotes_gpc=Off

 还有php的版本需要修改或者说版本号要<5.3.29,在phpstudy2018中点击切换版本,将其改为php-5.2.17+Apache注意:前文说过我们不选后面带nts的版本,我们访问上传页面时会出错。

上传php文件后,在开始save-path那行,把上传的方式改为get,然后在upload后加上文件名和%00,下面的filename=的后缀改为.jpg,再上传,用蚁剑连接即可

pass-13(%00截断-post型)

和第12题一样,上传php文件后,在开始save-path那行,把上传的方式改为post,然后在upload后加上文件名和%00,将filename=后面的后缀改为.jpg,再上传,用蚁剑连接即可

小结

1.重回php解析

pass-04,05这两个关卡都是用php的配置文件将我们修改过后缀的php一句话木马重新变为php解析

2.函数

pass-06:strtolower() 函数把字符串转换为小写

pass_07:trim()去除空格

pass-08:deldot()过滤文件名末尾的点,当检测到末尾的第一个点时会继续它的检测,但是遇到空格会停下来

pass-09:  ::$DATA之后的数据会被当成文件流处理,不会检测后缀名,且保持"::$DATA"之前的文件名 他的目的就是不检查后缀名。

pass-11:str_ireplace()函数寻找文件名中存在的黑名单字符串,将它替换成空(即将它删掉)

3.window文件名规则

pass-07/08/09都利用了window的文件名规则,文件名后的空格和点会被删除,我们在文件名上直接修改是行不通的,因此,我们必须抓包来修改

4.%00截断

这是一个大类,00截断是操作系统的漏洞,因为windows系统是用c语言或汇编语言写的,他们都是以\0即0x00结尾的,这样就可以截断字符串,因此,我们也可以用来绕过web的软waf白名单限制。

5.为什么

为什么我们要用phpinfo和文件上传,我们其实是通过上传文件时web的漏洞上传木马来进入内部,从而获得我们想要的信息。包括一系列的绕过,其实我们的最终目的就是成功的文件上传,然后进去内部。phpinfo可以显示php版本和配置信息,更方便我们入侵,也会有web的路径,这些都是很有帮助的。

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

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

相关文章

Android Studio开发工具学习之Git远程仓库拉取与推送

Git远程仓库操作 1.1 推送项目到远端服务器1.1.1 进入Gitee或Github、创建一个新的仓库1.1.2 将Android Studio中项目推送至Gitee 1.2 从远端服务器拉取项目1.2.1 AS工程页拉取新项目1.2.2 AS启动页拉取项目 1.1 推送项目到远端服务器 1.1.1 进入Gitee或Github、创建一个新的仓…

(六)几何平均数计算 补充案例 #统计学 #CDA学习打卡

一. 两个案例 1&#xff09;几何平均数计算&#xff1a;基金年平均增长率计算 在财务、投资和银行业的问题中&#xff0c;几何平均数的应用尤为常见&#xff0c;当你任何时候想确定过去几个连续时期的平均变化率时&#xff0c;都能应用几何平均数。其他通常的应用包括物种总体…

嵌入式物联网实战开发笔记-乐鑫ESP32开发环境ESP-IDF搭建【doc.yotill.com】

乐鑫ESP32入门到精通项目开发参考百例下载&#xff1a; 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;4e33 3.1 ESP-IDF 简介 ESP-IDF&#xff08;Espressif IoT Development Framework&#xff09;是乐鑫&#xff08;Espressif Systems&#xff09;为 ESP 系列…

JMeter的下载安装与使用(Mac)

1、下载地址​​​​​​https://jmeter.apache.org/download_jmeter.cgi 2、下载Binaries 下的apache-jmeter5.5.tgz 3、解压 4、启动 在bin目录下打开终端&#xff0c;输入sh jmeter 出现jmeter首页界面&#xff0c;即为成功。 5、使用 5.1 语言选择 option选项卡&am…

【Vue3+Tres 三维开发】01-HelloWord

预览 什么是TRESJS 简单的说,就是基于THREEJS封装的能在vue3中使用的一个组件,可以像使用组件的方式去创建场景和模型。优势就是可以快速创建场景和要素的添加,并且能很明确知道创景中的要素构成和结构。 项目创建 npx create-vite@latest # 选择 vue typescript安装依赖…

b站江科大stm32笔记(持续更新)

b站江科大stm32笔记&#xff08;持续更新&#xff09; 片上资源/外设引脚定义表启动配置推挽开漏oc/od 门漏极/集电极 电阻的上拉下拉输入捕获输入捕获通道主从触发模式输入捕获基本结构PWMI基本结构PWMPSC ARR CRR输入捕获模式测频率TIM_PrescalerConfig()初始化输入捕获测频法…

【MySQL】SQL优化

SQL优化 插入数据 insert 一次插入数据和批量插入数据 insert into tb_test (id, name) values (1,Tom); insert into tb_test (id, name) values (1,Tom),(2,Jack),(3,Jerry);优化方案&#xff1a; 手动控制事务&#xff0c;且按主键顺序插入。start transaction; insert …

【04-提升模型性能:集成学习与超参数优化】

文章目录 前言集成学习BaggingBoosting超参数优化随机搜索贝叶斯优化总结前言 在前几篇博文中,我们已经介绍了一些机器学习的基础知识、Scikit-learn的核心工具与技巧,以及如何评估模型性能。本篇博文将重点讲解两个可以显著提升机器学习模型性能的高级策略:集成学习和超参数…

制糖工业智能工厂数字孪生可视化平台,推进制糖产业数字化转型

制糖工业智能工厂数字孪生可视化平台&#xff0c;推进制糖产业数字化转型。随着信息技术的快速发展&#xff0c;数字化转型已成为各行各业的重要趋势。在糖果加工制造领域&#xff0c;智能工厂数字孪生可视化平台的出现&#xff0c;为行业数字化转型注入了新的活力。 糖果加工制…

STM32之HAL开发——ADC入门介绍

ADC简介 模数转换&#xff0c;即Analog-to-Digital Converter&#xff0c;常称ADC&#xff0c;是指将连续变量的模拟信号转换为离散的数字信号的器件&#xff0c;比如将模温度感器产生的电信号转为控制芯片能处理的数字信号0101&#xff0c;这样ADC就建立了模拟世界的传感器和…

WPF —— lCommand命令实例

首先在标签页面设置一个Button按钮 <Button Width"100" Height"40" Content"测试" ></Button> 1 创建一个类 继承于ICommand这个接口&#xff0c; 这个接口一般包含三部分&#xff1a; 俩个方法&#xff1a;一个判断指令是不是…

Ghost Buster Pro for Mac:强大的系统优化工具

Ghost Buster Pro for Mac是一款功能强大的系统优化工具&#xff0c;专为Mac用户设计&#xff0c;旨在提供全方位的系统清理、优化和维护服务。 Ghost Buster Pro for Mac v3.2.5激活版下载 这款软件拥有出色的垃圾清理能力&#xff0c;能够深度扫描并清除Mac上的无效目录、文件…

网工内推 | 云计算运维,厂商云相关认证优先,股票期权,全勤奖

01 国科科技 招聘岗位&#xff1a;云计算运维 职责描述&#xff1a; 1、负责私有云平台的运维管理工作,包括云平台日常运维、故障处理、扩容、版本升级、优化和维护等。 2、根据业务需求,从技术角度支持及配合各业务系统上云工作。 3、为云上业务系统提供云产品、云服务方面的…

【C++】---STL容器适配器之底层deque浅析

【C】---STL容器适配器之底层deque浅析 一、deque的使用二、deque的原理1、deque的结构2、deque的底层结构&#xff08;1&#xff09;deque的底层空间&#xff08;2&#xff09;deque如何支持随机访问、deque迭代器 3、deque的优缺点&#xff08;1&#xff09;deque的优势&…

SpringMVC基础篇(一)

文章目录 1.基本介绍1.特点2.SpringMVC跟SpringBoot的关系 2.快速入门1.需求分析2.图解3.环境搭建1.创建普通java工程2.添加web框架支持3.配置lib文件夹1.导入jar包2.Add as Library3.以后自动添加 4.配置tomcat1.配置上下文路径2.配置热加载 5.src下创建Spring配置文件applica…

报错The chromedriver version cannot be discovered以及下载chromedriver.exe和查看其版本的命令

python3.8.10&#xff0c;win10。 谷歌浏览器版本&#xff08;我写代码的时候还是123.0.x.x&#xff0c;没几天就自动更新到124.0.x.x了&#xff09;&#xff1a; 在使用selenium的时候&#xff0c;出现报错&#xff0c;The chromedriver version cannot be discovered。 &am…

Fast-DetectGPT 无需训练的快速文本检测

本文提出了一种新的文本检测方法 ——Fast-DetectGPT&#xff0c;无需训练&#xff0c;直接使用开源小语言模型检测各种大语言模型&#xff0c;如GPT等生成的文本内容。 Fast-DetectGPT 将检测速度提高了 340 倍&#xff0c;将检测准确率相对提升了 75%&#xff0c;超过商用系…

企业库存管理的数字化转型引擎

对于企业IT部门来说,库存管理一直是一项棘手且耗时的工作。从采购、入库到销售出库,整个库存管理流程都需要IT人员投入大量精力。但是,由于缺乏有效的信息化手段,企业往往难以实现对库存全生命周期的系统管控,导致了一系列难题: 传统库存管理面临的痛点 库存信息管理混乱 许多…

BUUCTF--web(2)

1、[HCTF 2018]admin1 打开题目后发现有注册和登录两个页面&#xff0c;因为题目提示admin&#xff0c;尝试用admin进行爆破 爆破得到密码为123 登录得到flag 2、[护网杯 2018]easy_tornado1 打开题目后有三个文件&#xff0c;分别打开查看 在url地址栏中发现包含两个参数&a…

分布式-知识体系

分布式系统 本质就是一堆机器的协同&#xff0c;要做的就是用各种手段来让机器的运行达到预期 分布式业务场景 分布式四纵四横说 基于 MSA&#xff08;微服务架构&#xff09;的分布式知识体系 相关概念 – 【摘自网络原文】 节点与网络 节点 传统的节点也就是一台单体的物…