iwebsec靶场 文件包含漏洞通关笔记2-文件包含绕过(截断法)
目录
前言
1.%00截断
2.文件字符长度截断法(又名超长文件截断)
方法1(路径截断法)
方法2(点号截断法)
第02关 文件包含绕过
1.打开靶场
2.源码分析
3.00文件截断原理
4.00截断的条件
5.文件包含00截断绕过
(1)访问test.txt
(2)访问敏感文件
6.文件字符长度截断法(垃圾字符为./)
前言
文件包含漏洞中,在服务器执行一个PHP文件时可以通过文件包含函数执行另一个文件,无论这个文件是不是PHP为其后缀,都可以当成PHP执行。
文件上传的截断绕过通常源码包含如下字段,比如说传入的参数filename=phpinfo.txt,那么include时会为文件名加上 .html后缀,于是include的文件名就变为了phpinfo.txt.html,这样会导致文件包含漏洞利用出现失败。于是如何进行漏洞渗透,使得此时渗透过程中即便传入的参数为phpinfo.txt,但是包含的文件仍为phpinfo.txt,这个后缀.html加不到后面,就可以绕过这个文件包含的过滤了。
$filename = $_GET['filename'];include($filename . ".html");
通常来讲文件包含的绕过方法为%00截断以及字符长度截断法。
1.%00截断
前提是php<5.3.4且 magic_quotes_gpc=off,原理是%00是被会url解码成0x00,如果遇到0x00,就会认为读取已结束,所以导致截断。
2.文件字符长度截断法(又名超长文件截断)
方法1(路径截断法)
(1)前提是php版本<5.2.8
(2)Windows下目录最大长度为256字节,超出的部分会被丢弃;
(3)Linux下目录最大长度为4096字节,超出的部分会被丢弃。
方法2(点号截断法)
(1)仅适用windows系统
(2)当长度大于256B时才会造成扩展名截断
由于本关卡中iwebsec是搭建在docker中,使用linux系统故而只能使用路径截断法
第02关 文件包含绕过
1.打开靶场
iwebsec 靶场漏洞库iwebsechttp://iwebsec.com:81/fi/02.php
2.源码分析
如下所示,源码包含include函数具备文件包含漏洞
<?phprequire_once('../header.php');?>
<html><head><title>本地文件包含绕过</title></head><h2>本地文件包含绕过</h2><div class="alert alert-success"><p>/02.php?filename=test.txt%00 </p></div><body>
<?phpif(isset($_GET['filename'])){$filename = $_GET['filename'];include($filename . ".html");}else{exit();}?>
不过文件包含的过程中,对filename的处理源码如下所示,是将文件名后加上.html的后缀,也就是如果filename=test,那么include的文件未test.html
$filename = $_GET['filename'];include($filename . ".html");
也就是说无论传入任意后缀的文件,尾部都会被加上.html后缀,那么考虑用%00截断方法,这样可以将后面的.html截断,include函数传入的参数仍为原始文件名
3.00文件截断原理
00/x00截断原理:0x00是十六进制表示方法,是ascii码为0的字符,在有些函数处理时,会把这个字符当做结束符。系统在对文件名的读取时,如果遇到0x00,就会认为读取已结束。这个可以用在对文件类型名的绕过上。
服务器在解析过程中,遇到ascii码为零的位置就停止,而这个ascii码为零的位置在16进制中是00,用0x开头表示16进制,也就是所说的0x00截断。
这样的话,如果我们要包含的文件名字为test.txt,在服务器拼接上.html后再被include,文件名变为了test.txt.html,这样就没有办法进行渗透
test.txt.html
假设此时我们要包含的文件名为test.txt%00,这时候在在服务器拼接上.html后再被include,文件名变为了test.txt%00.html
test.txt%00.html
由于%00截断的原理,服务器在将%00解码后,发生了截断功效,于是文件名便为
test.txt
这样就实现了文件包含%00绕过截断
4.00截断的条件
第一点:PHP的版本要小于5.3.4 <
第二点:php中的设置文件php.ini中的 magic_quotes_gpc 要关闭,
若想修改magic_quotes_gpc,需要修改php.ini文件,将magic_quotes_gpc关闭掉
5.文件包含00截断绕过
(1)访问test.txt
iwebsec 靶场漏洞库iwebsechttp://iwebsec.com:81/fi/02.php?filename=test.txt%00
(2)访问敏感文件
访问/etc/passwd, 如下所示渗透成功
iwebsec 靶场漏洞库iwebsechttp://iwebsec.com:81/fi/02.php?filename=/etc/passwd%00
访问Apache的httpd配置文件,如下所示渗透成功
iwebsec 靶场漏洞库iwebsechttp://iwebsec.com:81/fi/02.php?filename=/etc/httpd/conf/httpd.conf%00
6.文件字符长度截断法(垃圾字符为./)
在这里构造垃圾字符时,有一个小技巧使用word文档构造./././一直累加,直到字符数超过4096即可
构造如下url,垃圾字符的长度在linux系统中要超过4096
http://iwebsec.com:81/fi/02.php?filename=test.txt/./././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././
如下所示渗透成功
相关文章:
iwebsec靶场 文件包含漏洞通关笔记2-文件包含绕过(截断法)
目录 前言 1.%00截断 2.文件字符长度截断法(又名超长文件截断) 方法1(路径截断法) 方法2(点号截断法) 第02关 文件包含绕过 1.打开靶场 2.源码分析 3.00文件截断原理 4.00截断的条件 5.文件包含00截断绕过 …...
【基于Cocos Creator实现的赛车游戏】9.实现汽车节点的控制逻辑
转载知识星球 | 深度连接铁杆粉丝,运营高品质社群,知识变现的工具 项目地址:赛车小游戏-基于Cocos Creator 3.5版本实现: 课程的源码,基于Cocos Creator 3.5版本实现 在上一节的课程中,您已经实现了通过触控给刚体施…...
蓝蓝设计为教育行业提供软件UI交互设计服务
在教育行业,软件的用户体验设计对于提供优质教育体验至关重要。教育行业软件用户体验设计需要考虑到学生和教师的需求,以及教育环境的特殊性。为了确保设计的成功,选择一家专业的设计公司是至关重要的,而北京蓝蓝设计公司就是您的…...
Java从入门到精通-类和对象(二)
0. 类和对象 3. 类的构造方法 构造方法是一种特殊的方法,用于创建和初始化对象。构造方法的名称必须与类名相同,它没有返回值,并且在创建对象时自动调用。构造方法的主要作用是确保对象在创建时具有合适的初始状态。 以下是构造方法的基本概…...
Python解析MDX词典数据并保存到Excel
原始数据和处理结果: https://gitcode.net/as604049322/blog_data/-/tree/master/mdx 下载help.mdx词典后,我们无法直接查看,我们可以使用readmdict库来完成对mdx文件的读取。 安装库: pip install readmdict对于Windows平台还…...
线性代数的本质(四)
文章目录 行列式二阶行列式 n n n 阶行列式行列式的性质克拉默法则行列式的几何理解 行列式 二阶行列式 行列式引自对线性方程组的求解。考虑两个方程的二元线性方程组 { a 11 x 1 a 12 x 2 b 1 a 21 x 1 a 22 x 2 b 2 \begin{cases} a_{11}x_1a_{12}x_2b_1 \\ a_{21}x_…...
FreeMarker详细介绍
FreeMarker详细介绍 FreeMarker FreeMarker概述 FreeMarker概念 FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 是一个Java类库…...
房地产小程序 | 小程序赋能,房地产业务数字化升级
随着科技的不断发展,房地产行业正逐渐向数字化转型。在这个过程中,房地产小程序成为了一种重要的工具,可以帮助房地产企业提供更好的购房体验、增加销售额,并实现管理的便捷化。 优点 便捷购房体验:房地产小程序为用户…...
Databend 开源周报第 110 期
Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 使用 BendSQL 管…...
开源大模型ChatGLM2-6B 1. 租一台GPU服务器测试下
0. 环境 租用了1台GPU服务器,系统 ubuntu20,GeForce RTX 3090 24G。过程略。本人测试了ai-galaxy的,今天发现网友也有推荐autodl的。 (GPU服务器已经关闭,因此这些信息已经失效) SSH地址:* 端…...
SQL10 用where过滤空值练习
描述 题目:现在运营想要对用户的年龄分布开展分析,在分析时想要剔除没有获取到年龄的用户,请你取出所有年龄值不为空的用户的设备ID,性别,年龄,学校的信息。 示例:user_profile iddevice_idge…...
JVM--Hotspot Architecture 详解
一、Java Virtual Machine (JVM)概述 Java Virtual Machine 虚拟机 (JVM) 是一种抽象的计算机。JVM本身也是一个程序,但是对于编写在其中执行的程序来说,它看起来像一台机器。对于特定的操作系统ÿ…...
ThreadLocal功能实现
模拟ThreadLocal功能实现 当前线程任意方法内操作连接对象 一个栈对应一个线程 , 一个方法调用另一个方法都是在一个线程内 , 只有执行了线程的start方法才会创建一个线程 定义一个Map集合 , key是当前线程(Thread.currentThread) , value是要绑定的数据(Connection对象) 以…...
Linux编辑器-vim使用
文章目录 前言一、vim编辑器1、vim的基本概念2、vim的基本操作2.1 命令模式切换至插入模式2.2 插入模式切换至命令模式2.3 命令模式切换至底行模式 3、vim命令模式命令集3.1 移动光标3.2 删除文字3.3 复制与粘贴3.4 替换3.5 撤销上一次操作3.6 更改3.7 跳至指定的行 4、vim末行…...
自助式数据分析平台:JVS智能BI功能介绍(二)数据集管理
数据集是JVS-智能BI中承载数据、使用数据、管理数据的基础,同样也是构建数据分析的基础。可以通俗地将其理解为数据库中的普通的表,他来源于智能的ETL数据加工工具,可以将数据集进行分析图表、统计报表、数字大屏、数据服务等制作。 在整体的…...
《5G技术引领教育信息化新革命》
5G技术引领教育信息化新革命 随着5G技术的快速发展,教育领域也迎来了全新的信息化时代。5G技术为教育行业提供了更高速、更稳定、更智能的网络连接,使得教育信息化不再局限于传统的课堂教学,而是延伸到了线上、线下的全时空教育。本文将详细介…...
cmake学习过程记录
目录 基础命令学习配置opencvcmake (Windows版本) 基础命令学习 //设置最低版本号 cmake_minimum_required(VERSION 3.5)//设置项目名称 project (hello_headers)//递归遍历文件夹src中的cpp文件放到变量SOURCES中 file(GLOB_RECURSE SOURCES src/*.cpp)//设置目标exe名称…...
Vue3、Vite使用 html2canvas 把Html生成canvas转成图片并保存,以及填坑记录
这两天接到新需求就是生成海报分享,生成的格式虽然是一样的但是自己一点点画显然是不符合我摸鱼人的性格,就找到了html2canvas插件,开始动工。 安装 npm install html2canvas --save文档 options 的参数都在里面按照自己需求使用 https://a…...
centos yum源配置(CentOS7 原生 yum 源修改为阿里 yum 源)
文章目录 centos yum源配置centos搭建内网yum源内网centos的yum软件源配置CentOS7 原生 yum 源修改为阿里 yum 源 centos yum源配置 centos搭建内网yum源 您好,在CentOS系统上搭建本地内网YUM仓库的方法如下: 安装httpd和createrepo工具 yum install httpd createrepo -y创…...
linux————ansible
一、认识自动化运维 自动化运维: 将日常IT运维中大量的重复性工作,小到简单的日常检查、配置变更和软件安装,大到整个变更流程的组织调度,由过去的手工执行转为自动化操作,从而减少乃至消除运维中的延迟,实现“零延时”…...
初识Java 8-1 接口和抽象类
目录 抽象类和抽象方法 接口定义 默认方法 多重继承 接口中的静态方法 作为接口的Instrument 本笔记参考自: 《On Java 中文版》 接口和抽象类提供了一种更加结构化的方式分离接口和实现。 抽象类和抽象方法 抽象类,其介于普通类和接口之间。在构…...
微信小程序音频后台播放功能
微信小程序在手机息屏后依旧能播放音频,需要使用 wx.getBackgroundAudioManager() 方法创建后台音乐播放器,并将音乐播放任务交给这个后台播放器。 具体实现步骤如下: 小程序页面中,使用 wx.getBackgroundAudioManager() 方法创…...
NotePad——xml格式化插件xml tools在线安装+离线安装
在使用NotePad时,在某些情形下,需要格式化Xml格式内容,可以使用Xml Tools插件。 一、在线安装 1. 打开Notepad 软件 2. 选择插件,选择“插件管理” 3. 搜索 XML Tools,找到该插件后,勾选该文件ÿ…...
图书管理系统 数据结构先导课暨C语言大作业复习 | JorbanS
问题描述 读取给定的图书文件book.txt中的信息(book.txt中部分图书信息如下图所示),完成一个图书信息管理系统,该系统的各个功能模块要求利用菜单选项进行选择。 系统功能要求 图书浏览 读取book.txt中的文件信息并依次输出所…...
python 爬虫的开发环境配置
1、新建一个python项目 2、在控制台中分别安装下面三个包 pip install requests pip install beautifulsoup4 pip install selenium/ 如果安装时报以下错误: raise ReadTimeoutError(self._pool, None, "Read timed out.") pip._vendor.urllib3.exceptio…...
技术架构图是什么?和业务架构图的区别是什么?
技术架构图是什么? 技术架构图是一种图形化工具,用于呈现软件、系统或应用程序的技术层面设计和结构。它展示了系统的各种技术组件、模块、服务以及它们之间的关系和交互方式。技术架构图关注系统内部的技术实现细节,以及各个技术组件之…...
数据增强
一、数据增强 当你训练一个机器学习模型时,你实际做工作的是调参,以便将特定的输入(一副图像)映像到输出(标签)。我们优化的目标是使模型的损失最小化, 以正确的方式调节优化参数即可实现这一目…...
【Unity】2D 对话模块的实现
对话模块主要参考 【Unity教程】剧情对话系统 实现。 在这次模块的构建将基于 unity ui 组件 和 C#代码实现一个从excel 文件中按照相应规则读取数据并展示的逻辑。这套代码不仅能实现正常的对话,也实现了对话中可以通过选择不同选项达到不同效果的分支对话功能。 …...
laravel安装初步使用学习 composer安装
一、什么是laravel框架 Laravel框架可以开发各种不同类型的项目,内容管理系统(Content Management System,CMS)是一种比较典型的项目,常见的网站类型(如门户、新闻、博客、文章等)都可以利用CM…...
【VS插件】VS code上的Remote - SSH
【VS插件】VS code上的Remote - SSH 目录 【VS插件】VS code上的Remote - SSH获得Linux服务器或者Linux系统的IP地址下载插件远程登录注意如果Linux虚拟机系统无法连接成功可能是没有开启ssh服务优势 作者:爱写代码的刚子 时间:2023.9.12 前言࿱…...
适合vue做的网站类型/网站排名快速提升
2019独角兽企业重金招聘Python工程师标准>>> 如果你的服务器每天需要处理大量数据,比如每天千万级,那么强烈建议你修改你的代码,可以把单条的insert改成批量的提交 ,update也是同理,这对于数据录入和修改的…...
海南建设局相关网站/百度宣传推广
简介LinuxApacheMySQL/MariaDBPHP(简称LAMP),是一组常用来搭建动态网站或者服务器的开源软件。部署及环境:系统平台:CentOS 7.2Apache版本:2.4.23Mysql 版本:5.7.17PhP版本:7.0.12安装前准备:Ce…...
新闻头条新闻/北京关键词优化报价
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 支持向量机是由间隔最大化和高维映射两大部件组成。间隔最大化是目标,支持向量机的损失函数…...
宁波奢华做网站排名/seo外包
Java 实例 - 获取异常的堆栈信息以下实例演示了使用异常类的 printStack() 方法来获取堆栈信息:/*author by w3cschool.ccMain.java*/public class Main{public static void main (String args[]){int array[]{20,20,40};int num115,num210;int result10;try{result…...
大型电商网站开发价格/热搜榜排名前十
SVM算法比较复杂,数学功底要求很高。 详见七月大神博客《 支持向量机通俗导论(理解SVM的三层境界)》转载于:https://www.cnblogs.com/ahu-lichang/p/7181773.html...
soho外贸网站建设/优化seo是什么意思
文章目录题目题目解析解题代码我的个人小站: acking-you.github.io题目 OJ平台 题目解析 实际上就是一个前缀和二分的处理,我一旦爆出前缀和二分,应该就都有思路了! 解题代码 这里偷懒使用了STL,当然也可自己去写二…...