Web通用漏洞--文件包含

文件包含原理

在项目开发过程中,开发人员通常会将重复使用的函数写入单个文件中,在使用该类函数时,直接调用文件即可,无需重新编写,这种调用文件的过程成为文件包含。在文件包含过程中,如果用户可以控制所包含的文件,则为文件包含漏洞。

文件包含函数

PHP:include、require、include_once、require_once等

include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行

require函数出现错误的时候,会直接报错并退出程序的执行

Java:java.io.File、java.io.FileReader等

ASP.NET:System.IO.FileStream、System.IO.StreamReader等

LFI本地文件包含

LOCAL FILE INCLUDE(LFI)成为本地文件包含,顾名思义,包含文件为服务器本身的文件

  1. 配合文件上传进行文件包含,在进行文件包含时,可以配合文件上传,传入其他文件类型的文件,通过文件包含可以将文件进行PHP解析,从而帮助我们获取shell
  2. 包含本地文件,通过文件包含可以读取服务器上的文件。采用绝对路径读取或相对路径读取

    常见的敏感信息文件

    Windows:
C:\boot.ini //查看系统版本
C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件
C:\Windows\repair\sam //存储系统初次安装的密码
C:\Program Files\mysql\my.ini //Mysql配置
C:\Program Files\mysql\data\mysql\user.MYD //Mysql root
C:\Windows\php.ini //php配置信息
C:\Windows\my.ini //Mysql配置信息
C:\Windows\win.ini //Windows系统的一个基本系统配置文件

Linux:

/root/.ssh/authorized_keys
/root/.ssh/id_rsa
/root/.ssh/id_ras.keystore
/root/.ssh/known_hosts //记录每个访问计算机用户的公钥
/etc/passwd
/etc/shadow
/etc/my.cnf //mysql配置文件
/etc/httpd/conf/httpd.conf //apache配置文件
/root/.bash_history //用户历史命令记录文件
/root/.mysql_history //mysql历史命令记录文件
/proc/mounts //记录系统挂载设备
/porc/config.gz //内核配置文件
/var/lib/mlocate/mlocate.db //全文件路径
/porc/self/cmdline //当前进程的cmdline参数
  1. 包含日志文件

    在对网站进行访问时,中间件会记录访问者的相关信息,可以通过修改UA头或者其他地方将恶意代码插入日志文件中,利用文件包含对日志文件进行包含。

    Apahce默认日志文件位置
/var/log/apache/access.log

/var/log/apache2/access.log

/etc/httpd/logs/access_log
  1. 包含session文件

    通过修改session可控变量,将session文件中插入恶意代码,在对session文件进行包含

    Linux默认位置:
/var/lib/php/sess_PHPSESSID

/var/lib/php/sess_PHPSESSID

/tmp/sess_PHPSESSID

/tmp/sessions/sess_PHPSESSID

RFI远程文件包含

Remote File Include RFI远程文件包含

如果在PHP配置文件中,allow_url_include、allow_url_fopen两个选项打开的状态下可以进行远程文件包含,可以包含其他网站上的文件。

PHP伪协议

在进行文件包含时,还可以使用PHP中封装协议进行文件包含。

以上内容仅作学习,如有错误或瑕疵,欢迎批评指正,感谢阅读。

Web通用漏洞--文件包含的更多相关文章

  1. web安全原理-文件包含漏洞

    前言 起来吃完早饭就开始刷攻防世界的题,一个简单的文件包含题我竟然都做不出来我服了  拿出买的书开始从头学习总结文件包含漏洞! 一.文件包含漏洞 文件包含漏洞 文件包含函数的参数没有经过过滤或者严格的 ...

  2. 【web】php文件包含(利用phpinfo)

    Docker搭建复现环境 地址:https://github.com/vulhub/vulhub/tree/master/php/inclusion ps. github单独下载一个文件夹的方法: 安 ...

  3. 文件包含漏洞(pikachu)

    文件包含漏洞 在web后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用'包含'函数功能,比如把一系列功能函数都写进function.php中,之后当某个文件需要调用的时候,就直接在文 ...

  4. Tomcat AJP 文件包含漏洞复现(CVE-2020-1938)

    漏洞原理 Tomcat配置了两个Connecto,它们分别是HTTP和AJP. HTTP默认端口为8080,处理http请求:AJP默认端口8009,用于处理 AJP 协议的请求. AJP比http更 ...

  5. 文件包含(File Inclusion)

    什么是文件包含? 本室旨在为您提供利用文件包含漏洞的基本知识,包括本地文件包含 (LFI).远程文件包含 (RFI) 和目录遍历.此外,我们将讨论这些漏洞被发现后的风险以及所需的补救措施 在某些情况下 ...

  6. 小白日记37:kali渗透测试之Web渗透-手动漏洞挖掘(三)-目录遍历、文件包含

    手动漏洞挖掘 漏洞类型 #Directory traversal 目录遍历[本台机器操作系统上文件进行读取] 使用者可以通过浏览器/URL地址或者参数变量内容,可以读取web根目录[默认为:/var/ ...

  7. 风炫安全web安全学习第三十四节课 文件包含漏洞防御

    风炫安全web安全学习第三十四节课 文件包含漏洞防御 文件包含防御 在功能设计上不要把文件包含的对应文件放到前台去操作 过滤各种../,https://, http:// 配置php.ini文件 al ...

  8. 风炫安全web安全学习第三十三节课 文件包含漏洞基础以及利用伪协议进行攻击

    风炫安全web安全学习第三十三节课 文件包含漏洞基础以及利用伪协议进行攻击 文件包含漏洞 参考文章:https://chybeta.github.io/2017/10/08/php文件包含漏洞/ 分类 ...

  9. 记一次phpmyadmin 4.8.1 远程文件包含漏洞(BUUCTF web)

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

  10. WEB攻击与防御技术 pikachu——文件包含下载上传漏洞

    文件包含漏洞 一.LOCAL 上来就是一个选择,当我们选择一个球员的时候,如图所示,url会提交一个get请求 如果这个服务器架设在linux上我们就可以一直../../../../../到根目录然后 ...

随机推荐

  1. iview中时间选择器组件改变日期格式

    //改变视图的显示格式,但不会改变value的值的格式 format="yyyy-MM-dd" //改变value值的格式 @on-change="anZhuangDat ...

  2. 2022-03-07:K 个关闭的灯泡。 N 个灯泡排成一行,编号从 1 到 N 。最初,所有灯泡都关闭。每天只打开一个灯泡,直到 N 天后所有灯泡都打开。 给你一个长度为 N 的灯泡数组 blubs

    2022-03-07:K 个关闭的灯泡. N 个灯泡排成一行,编号从 1 到 N .最初,所有灯泡都关闭.每天只打开一个灯泡,直到 N 天后所有灯泡都打开. 给你一个长度为 N 的灯泡数组 blubs ...

  3. < Python全景系列-2 > Python数据类型大盘点

    <Python全景系列-2> Python数据类型大盘点 欢迎来到我们的系列博客<Python全景系列>!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高 ...

  4. Element-DatePicker的宽度

    Element如何修改DatePicker的宽度 方法/步骤 1 打开一个vue文件,添加DatePicker日期选择器组件,设置默认日期为null.如图 2 在组件上添加style样式属性,设置wi ...

  5. 深入浅出 OkHttp 源码解析及应用实践

    作者:vivo 互联网服务器团队- Tie Qinrui OkHttp 在 Java 和 Android 世界中被广泛使用,深入学习源代码有助于掌握软件特性和提高编程水平. 本文首先从源代码入手简要分 ...

  6. (亲测有效-专门解决Mac环境)Pycharm 解决无法打开的问题

    前提是Mac 安装了PyCharm.app 1.第一步:先输入: cd /Applications/PyCharm.app/Contents/MacOS 2.第二步:查看无法打开pycharm的原因, ...

  7. Linux常用磁盘管理命令详解

    du du命令用于查看文件和目录磁盘的使用空间. 命令语法:du [参数] [文件或目录名称] 参数说明: 参数 说明 -a 列出所有的文件与目录容量. -h 以G.M.K为单位,返回容量. -s 列 ...

  8. HDU 6981.Rise in Price (Beam Search 贪心)

    by 0htoAi,写于2021.8.14 Problem Description There are n×n cells on a grid, the top-left cell is at (1, ...

  9. Python 列表、字典、元组的一些小技巧

    1. 字典排序 我们知道 Python 的内置 dictionary 数据类型是无序的,通过 key 来获取对应的 value.可是有时我们需要对 dictionary 中的 item 进行排序输出, ...

  10. Simple CTF

    来自tryhackme的Simple CTF IP:10.10.27.234 信息收集 端口扫描 nmap -sV -T4 10.10.27.234 可以看到三个端口 21/tcp 打开 ftp vs ...