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

本文阅读 2 分钟
首页 安全分享,WEB安全 正文

原理

用户利用文件包含函数上传可执行脚本文件,造成信息泄露或任意命令执行

触发点/检测

文件包含漏洞的检测需要配合代码审计,重点在文件包含的函数

  • 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
本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/wangyuxiang946/article/details/118788658
-- 展开阅读全文 --
Redis底层数据结构--跳跃表
« 上一篇 04-28
BUUCTF Web [强网杯 2019]随便注
下一篇 » 06-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复