iwebsec靶场 文件包含漏洞通关笔记5-远程文件包含绕过

CSDN 2024-06-28 08:03:02 阅读 97

目录

前言

1.%00截断

2.问号截断

3.#号截断法

第05关 远程文件包含绕过

1.打开靶场

2.源码分析

3.00截断的条件

4.文件包含00截断绕过

5.问号截断

6.#号截断


前言

PHP的文件包含可以直接执行包含文件的代码,包含的文件格式是不收限制的,只要能正常执行即可。文件包含函数有include、include_once,require、require_once。他们之前的区别就是include遇到报错还会执行下面的代码,require则是会报错退出程序。

文件上传的截断绕过通常源码包含如下字段,比如说传入的参数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.问号截断

这种阶段方法不受magic_quotes_gpc和PHP版本号的影响,值得注意的是此绕过仅对远程文件包含有效,webserver会把问号当作请求的参数,后面的内容自然就可以忽略,不过这种方法对本地文件包含并不生效。

3.#号截断法

在井号#后面添加html字符串,#会截断后面的扩展名,从而绕过过滤名的过滤

号要进行URL编码,这里要注意编码为%23

第05关 远程文件包含绕过

1.打开靶场

iwebsec 靶场漏洞库iwebsec

icon-default.png?t=N7T8

http://iwebsec.com:81/fi//05.php打开后靶场如下所示

2.源码分析

如下所示,源码包含include函数具备文件包含漏洞

<?php

require_once('../header.php');

?>

<html>

<head>

<title>远程文件包含绕过</title>

</head>

<h2>远程文件包含绕过</h2>

<div class="alert alert-success">

<p>/05.php?filename=http://127.0.0.1/vuln/fi/test.txt%23 </p>

</div>

<body>

<?php

if(isset($_GET['filename'])){

$filename = $_GET['filename'];

include($filename . ".html");

}else{

exit();

}

?>

这段代码与第02关内容一样,对filename的处理源码如下所示,是将文件名后加上.html的后缀,也就是如果filename=test.txt,那么include的文件未test.txt.html。

$filename = $_GET['filename'];

include($filename . ".html");

就是说无论传入任意后缀的文件,尾部都会被加上.html后缀,那么考虑用%00截断方法,这样可以将后面的.html截断,include函数传入的参数仍为原始文件名。

0x00是十六进制表示方法,是ascii码为0的字符,在有些函数处理时,会把这个字符当做结束符。系统在对文件名的读取时,如果遇到0x00,就会认为读取已结束。这个可以用在对文件类型名的绕过上。如果文件名为test.txt%00,尾部加上.html后缀后拼接后就是

test.txt%00.html

由于服务器在对文件读取时遇到%00时,会认为字符已经结束,于是文件名又变回了

test.txt

3.00截断的条件

第一点:PHP的版本要小于5.3.4 <

第二点:php中的设置文件php.ini中的 magic_quotes_gpc 要关闭,

若想修改magic_quotes_gpc,需要修改php.ini文件,将magic_quotes_gpc关闭掉,记得修改后将Apache服务重启。

4.文件包含00截断绕过

使用%00截断法,在文件名尾部加上%00

05.php?filename=http://127.0.0.1/fi/test.txt%00

iwebsec 靶场漏洞库iwebsec

icon-default.png?t=N7T8

http://iwebsec.com:81/fi//05.php?filename=http://127.0.0.1/fi/test.txt%00

5.问号截断

http://iwebsec.com:81/fi/05.php?filename=http://127.0.0.1/fi/test.txt?

6.#号截断

http://iwebsec.com:81/fi/05.php?filename=http://127.0.0.1/fi/test.txt%23



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。