文件包含漏洞原理/利用方式/应对方案

举报
士别三日wyx 发表于 2021/12/23 02:33:44 2021/12/23
【摘要】 原理 用户利用文件包含函数上传可执行脚本文件,造成信息泄露或任意命令执行 触发点/检测 文件包含漏洞的检测需要配合代码审计,重点在文件包含的函数 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 任意代码执行


  
  1. ?url=php://input -- GET请求参数中使用php://input协议
  2. <?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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。