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

 「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。

原理

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

触发点/检测

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

  • 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

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

士别三日wyx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值