文件包含漏洞原理/利用方式/应对方案
【摘要】
原理
用户利用文件包含函数上传可执行脚本文件,造成信息泄露或任意命令执行
触发点/检测
文件包含漏洞的检测需要配合代码审计,重点在文件包含的函数
include()require()include_once()require_once()f_open()f_read()
利用方式
文件包含漏洞可分为 本地文件包含(LF...
原理
用户利用文件包含函数上传可执行脚本文件,造成信息泄露或任意命令执行
触发点/检测
文件包含漏洞的检测需要配合代码审计,重点在文件包含的函数
- include()
- require()
- include_once()
- require_once()
- f_open()
- f_read()
利用方式
文件包含漏洞可分为 本地文件包含(LFI) 和 远程文件包含 两种
本地文件包含可以遍历目录,造成信息泄露
远程文件包含可以执行任意命令,获取WebShell,需要PHP开启url包含功能( allow_url_include ),PHP5.2以前默认是开启 , 5.2以后就默认关闭了
防御
针对远程文件包含可关闭url包含功能( php.ini文件中 allow_url_include=off )
针对本地文件包含可以设置白名单,过滤危险字符(比如.和/)
伪协议
文件包含漏洞可以配合伪协议使用
- php协议读取文件源码或者任意代码执行
- data协议任意代码执行
- zip协议配合文件上传开启后门
php://filter 读取文件源码
?url=php://filter/read=convert.base64-encode/resource=phpinfo.php
php://input 任意代码执行
-
?url=php://input -- GET请求参数中使用php://input协议
-
<?php system('ls'); ?> -- post请求体中的内容会被当做文件内容执行
data://text/plain 任意代码执行
?url=data://text/plain,<?php system('ls') ?>
zip:// 配合文件上传开启后门
?url=zip://shell.jpg
文章来源: blog.csdn.net,作者:士别三日wyx,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/wangyuxiang946/article/details/118788658
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)