freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Pikachu靶场通关之File Inclusion
2021-01-20 17:57:11

一、本文介绍

今天,我们来学习一项web安全里最常见的漏洞,File Inclusion。本篇文章将会带领大家进入到File Inclusion这项漏洞的世界里,让大家领略到File Inclusion这项漏洞的魅力,从而对File Inclusion漏洞有更深刻的认识。

学习一项新的漏洞,简单来说,我们要从四个方面来入手,第一个方面是产生这项漏洞的原因,不管是从代码层面,还是从逻辑层面等方面,来对这项漏洞有一个清楚的认识,有位大佬说得好,只有对漏洞原理了如指掌,才会有更多的突破点来挖掘漏洞;第二个方面是这项漏洞应该如何利用,是直接使用漏洞利用的各种工具,还是自己的写或者是借鉴其他大佬的漏洞利用的脚本等,漏洞利用的方式不一而同,具体问题具体分析;第三个方面是这项漏洞对网站等能够造成什么样危害,能够达到什么样的效果,是获取网站的权限,还是获取管理员或者用户的账号密码或者是敏感信息等;第四个方面当然是,我们应该如何去防范这项漏洞,以及这项漏洞的修复方式,分别从代码层面、逻辑层面等方面如何去修复。

本篇文章将分别从File Inclusion漏洞的原理、File Inclusion漏洞如何利用、File Inclusion漏洞的危害以及File Inclusion漏洞如何防范与修复这四个方面,来和大家一起学习File Inclusion这项漏洞,下面我们进入正题。

二、File Inclusion的原理

File Inclusion(文件包含漏洞)原理

文件包含,是一个功能。在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。 比如在PHP中,提供了:

include(),include_once()

require(),require_once()

这些文件包含函数,这些函数在代码设计中被经常使用到。

大多数情况下,文件包含函数中包含的代码文件是固定的,因此也不会出现安全问题。但是,有些时候,文件包含的代码文件被写成了一个变量,且这个变量可以由前端用户传进来,这种情况下,如果没有做足够的安全考虑,则可能会引发文件包含漏洞。攻击着会指定一个“意想不到”的文件让包含函数去执行,从而造成恶意操作。根据不同的配置环境,文件包含漏洞分为如下两种情况:

1.本地文件包含漏洞:仅能够对服务器本地的文件进行包含,由于服务器上的文件并不是攻击者所能够控制的,因此该情况下,攻击着更多的会包含一些固定的系统配置文件,从而读取系统敏感信息。很多时候本地文件包含漏洞会结合一些特殊的文件上传漏洞,从而形成更大的威力。

2.远程文件包含漏洞:能够通过url地址对远程的文件进行包含,这意味着攻击者可以传入任意的代码,这种情况没啥好说的,准备挂彩。

因此,在web应用系统的功能设计上尽量不要让前端用户直接传变量给包含函数,如果非要这么做,也一定要做严格的白名单策略进行过滤。

三、File Inclusion的利用

1.File Inclusion (local)

查看源码,没有做任何过滤,变量传进去直接包含

1611136383_6007fd7f301d57a1905e2.png!small?1611136385213

点击kobe,提交

可以看到读取了file1.php,在include里面创建一个phpinfo.php文件

1611136393_6007fd89f1856b6ddee97.png!small?1611136395888

对url进行修改,可以利用文件上传漏洞上传的phpinfo文件,在此处进行包含(详情见文件上传靶场,此处直接利用)

http://x.x.x.x/vul/fileinclude/fi_local.php?filename=../../unsafeupload/uploads/phpinfo.php&submit=%E6%8F%90%E4%BA%A4

1611136402_6007fd924ebfad0c0ea61.png!small?1611136404377

2.File Inclusion (remote)

在php.ini配置文件打开这个选项

1611136421_6007fda558b17d3729aad.png!small?1611136423247

查看源码

1611136425_6007fda9ce9ca75053127.png!small?1611136428009

远程文件包含很简单,其实就是使用文件包含远程服务器上的文件并执行

1611136431_6007fdaf2a90fdab0e2d4.png!small?1611136433196

四、File Inclusion的危害

1、web服务器的文件被外界浏览导致信息泄露;

2、脚本被任意执行,典型影响如下:篡改网站;执行非法操作;攻击其他网站;

3、这类漏洞看起来貌似并不严重,一旦被恶意利用则会带来很大的危害。本地文件包含不仅能够包含web文件目录中的一些配置文件(比如Web应用、数据库配置文件、config文件),还可以查看到一些Web动态页面的源代码,为攻击者进一步发掘web应用漏洞提供条件,甚至一旦与路径遍历漏洞相结合,还可能直接攫取目标系统的用户名与密码等文件。

五、File Inclusion的修复

1、建议白名单,通过筛选固定文件名方法,不满足已知的文件的名字就不能够执行远程包含

2、指定访问一定的路径,再将参数拼接到路径当中

3、过滤../ ./,配置php.ini文件,都关闭allow_url_fopen 和 allow_url_include

六、本文总结

到此为止,通过本篇文章,我们大家分别从File Inclusion漏洞的原理、File Inclusion漏洞如何利用、File Inclusion漏洞的危害以及File Inclusion漏洞如何防范与修复这四个方面,一起学习了File Inclusion这项漏洞,相信大家已经对File Inclusion这项漏洞有了明确而深刻的认识。

本人之后还会陆续分享我在网络安全与渗透测试学习之路上的各种笔记,包括且不限于各种漏洞原理、漏洞挖掘、漏洞复现以及靶场CTF通关教程等等,希望大家多多点赞关注支持。

免责声明:本站提供的安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

转载声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

欢迎关注公众号:国服最强渗透掌控者

1611136448_6007fdc03ac5c01037b15.png!small?1611136450387

一名普通的白帽子,努力追求着成为国服最强渗透掌控者的梦想,希望我的分享能够给大家带来帮助,并且能够为网络安全事业做出自己的贡献。此生无悔入网安,争做渗透第一人。

# 渗透测试 # web安全 # 网络安全技术 # 靶场
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录