一、文件包含的定义

如果说使用文件包含的路径是攻击者可控的话,此时,我们可以通过控制参数变量从而能包含本不在开发者意愿之内的文件。

本地文件包含:包含服务器端的文件

远程文件包含:包含远程url的文件 (allow_url_fopen allow_url_include)

可以用什么去截断:? #(%23)

二、文件包含的利用

1.配合文件上传漏洞执行getshell

2.包含日志getshell

3.包含session getshell

4.读取配置文件

三、PHP中常见包含文件函数

include():当使用该函数包含文件时,只有代码执行到include()函数时才将文件包含进来,发生错误时,给出告警继续向下执行。

include_once():相同,区别是当重复调用同一文件时,程序只调用一次。

require():include和require的区别;当处理一个不存在或者无法包含的文件时,对于include会抛出错误,继续执行下面代码,require会抛出致命错误。

require_once:相同,区别是当重复调用同一文件时,程序只调用一次。

include和require的区别;当处理一个不存在或者无法包含的文件时,对于include会抛出错误,继续执行下面代码,require会抛出致命错误

四、data:text/plain

条件:allow_url_fopen参数与allow_url_include都需要开启

用法1:?file=data:text/plain,<?php执行的内容?>

用法2:?file=data:text/plain,base64,编码后的php代码

注意base64加密后的代码,不能够有+,否则会和url中额+编码冲突

五、php://filter

利用条件

只是读取,所以只需要开启allow_url_fopen

实现效果

将文件中的数据进行base64加密之后在输出

index.php?file=php://filter/read=convert.base64-encode/resource=123.cn

六、zip://伪协议

使用zip伪协议,需要将#编码为%23,所以需要php版本>=5.3.0,要是因为版本的问题无法将#编码成%23,可手动。

用法:?file=zip://[压缩文件路径+压缩文件名]#[压缩文件内的子文件名]

file=zip://./1.zip%231.txt

file=zip://C:\phpStudy\WWW\haha\1.zip%231.txt

找到文件包含点,与后缀无关。

七、file伪协议

file://可以用来访问本地系统,且不受allow_url_fopen参数与allow_url_include的影响。

 用法

?file=file://文件绝对路径

八、session包含:

1,得知道session的存储位置

2,有可控的session点

3,有文件包含点

九、修复

十、文件包含伪协议

WEB安全-文件包含相关推荐

  1. Web安全——文件包含漏洞

    一.文件包含漏洞 原理     文件包含漏洞是"代码注入"的一种.其原理就是注入一段用户能控制的脚本或代码,并让服务端执行."代码注入"的典型代表就是文件包含. ...

  2. WEB漏洞—文件包含漏洞

    介绍 所谓文件包含漏洞,故名思意,就是在文件中包含(引用)了其他文件所导致的漏洞.例如有些函数在不同代码中的作用都是相同的,在这里我们可以称呼它为"变量",那么这时程序员就会将该& ...

  3. Web安全—文件包含漏洞(RFILFI)

    文件包含函数(RFI&LFI) ASP和JSP只能实现本地文件包含,PHP既可以本地文件包含也可以远程文件包含 1,文件包含漏洞简介: 在日常的应用开发中,开发者会将常用的功能模块单独实现,然 ...

  4. 西邮ctf2020 web之文件包含解析

    比赛地址:http://39.97.182.97/ 这四道考题都是利用的php伪协议 参考php伪协议,利用文件包含漏洞 第一题:http://watcem.top/wangzhan/27.php 直 ...

  5. Web安全之文件包含漏洞

    什么是文件包含 程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件.而无需再次编写,这种 文件调用的过程一般被称为文件包含. 例如:include "conn ...

  6. test.php.bak,记一次phpmyadmin 4.8.1 远程文件包含漏洞(BUUCTF web)

    题目很简单,一个滑稽 打开源码,发现存在source.php文件 于是访问文件,发现出现一串php源码 提示存在hint.php,于是访问发现一句话 flag not here, and flag i ...

  7. CTFSHOW web入门 命令执行+文件包含+PHP特性

    刷题时间记录表 ID 开始时间 结束时间 刷题范围 1 2021.08.23 19:20 2021.08.23 21.30 web41-45 2 2021.08.24 22:16 2021.08.25 ...

  8. web常见漏洞解析 注入 xss csrf 文件上传 文件包含 -dvwa演示

    注(以下环境皆是自己在本机搭建,请勿在公网真实操作) 1.注入 1.1 SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶 ...

  9. 暑期练习web25:web code(i春秋)index.php文件包含、base64图片加密

    这次有意思,上来就是个萌妹子 但我们不能光看妹子,学习更重要!查看一波源码,很长一段,前面提示了是base64(html中图片可以用base64表示,那么用base64表示的文本就是破损图片) 但是我 ...

最新文章

  1. STM32CubeMX使用(六)之RTC及制作时间戳
  2. firefox与IE浏览器在web开发上面的一些区别
  3. java姓名转拼音加处理多音字
  4. 企业WiFi怎么管理
  5. [ERP/鼎捷E10][生产制造]取代料/替代料
  6. 关于博弈论的硬币问题
  7. android 多张图片渐变切换控件
  8. Unity 手机游戏屏幕翻转/转屏问题
  9. __builtin_choose_expr
  10. 英语字母表及其冠词用法
  11. pythonsocket接口_python socket 模块API
  12. 【Java8新特性 串行/并行流-Optional容器类-时间格式化线程安全等】
  13. Dalvik smali语法
  14. 科普--电脑显示的硬盘容量为什么比标称的要小?
  15. 被用户满意度坑的经历
  16. OpenWrt配置打印服务器无线桥接,手机无线打印
  17. Linux test
  18. 服务器主板纽扣电池型号,纽扣电池的常见型号(cr2032,cr2450)怎么看
  19. 少有的追剧时光~《传闻中的陈芊芊》追剧后感
  20. android 10bit,作为“普通用户” 我们为什么建议你不强求10bit屏幕?

热门文章

  1. 阿里云服务器如何购买?新手指南来了
  2. InvocationTargetException
  3. 女朋友喜欢看电影 然后就有了这个程序 来来来 大家一起看电影
  4. vue项目中高德地图的注册及使用
  5. 线性表,线性表和链表的区别
  6. 软件测试基础丨测试工程师之间要善于发现闪光点——测试理念篇
  7. 【编程题训练】简易压缩算法
  8. Unity_DoTween_制作图标上下跳动小动画
  9. Virtualbox最全扩展虚拟磁盘空间大小(vdi/vmdk)方法(Mac/Linux/Windows)
  10. Android如何实时监控CPU频率