首页 > 其他分享 >Web通用漏洞--文件包含

Web通用漏洞--文件包含

时间:2023-08-13 16:47:57浏览次数:38  
标签:Web 配置文件 包含 文件 -- 漏洞 Windows mysql root

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,配置文件,包含,文件,--,漏洞,Windows,mysql,root
From: https://www.cnblogs.com/Pengj/p/17626746.html

相关文章

  • dp-矩阵链相乘顺序
    矩阵链相乘顺序目录矩阵链相乘顺序问题描述举例说明问题分析程序问题描述A1,A2,..,An表示n个矩阵的序列,其中Ai为\(P_{i−1}×P_i\)阶矩阵,i=1,2,...,n。向量P=<P0,P1,P2..Pi>表示矩阵链的输入,其中P0是A1的行数,P1是A1的列数,P1是A2的行数,以此类推。计算这个矩阵需要做n−1次两......
  • dp-钢条切割
    钢条切割目录钢条切割问题描述问题分析思路及简化自顶向下递归带备忘录的递归自底向上程序问题描述Serling公司购买长钢条,将其切割为短钢条出售。假设切割工序没有成本,不同长度的钢条的售价如下:length12345678910price1589101717202430那么钢......
  • org.springframework.context.ApplicationContextException: Failed to start bean 'd
    ##    一、报错信息org.springframework.context.ApplicationContextException:Failedtostartbean'documentationPluginsBootstrapper';nestedexceptionisjava.lang.NullPointerException具体报错信息如下:##  二、报错原因     SpringBoot2......
  • CompletableFuture 异步编排
      1.业务场景  查询商品详情页的逻辑比较复杂,有些数据还需要远程调用,必然需要花费更多的时间。  假如商品详情页的每个查询,需要如下标注的时间才能完成,那么,用户需要5.5s后才能看到商品详情页的内容。很显然是不能接受的,如果有多个线程同时完成这6步操作,也许只需要......
  • 汉诺塔
    汉诺塔#include<stdio.h>#include<time.h>#defineN5voidsolve();voidmove(chara,charb,charc,intnum);voidprint_hanoi();intmain(intargc,char**argv){clock_tbegin,end;begin=clock();solve();end=clock(......
  • 水仙花数
    水仙花数一个三位数,各位数分别是abc,则满足如下条件的数称为水仙花数:\[abc=a^3+b^3+c^3\]比如:\[153=1^3+5^3+3^3\]水仙花总数为153,370,371,407。精确地说,3位数的三次幂数就叫做水仙数。数较多的还有其他相应称呼,如:四个数字的四叶玫瑰数目共有3:1634,8208,9474......
  • dp-摸牌博弈
    摸牌博弈//摸牌博弈//一维排列的卡牌,其上有不同的数字,两个对手A和B依次从中摸牌//卡牌及顺序均对两人可见//每次只能从最左或最右摸牌//最终摸到的卡牌数字之和最大者获胜//两个人都绝顶聪明(两人都会选择对自己有利对对手不利的牌)#include<iostream>#include<n......
  • dp-最长回文子序列
    最长回文子序列算法导论3rd-15.2问题描述回文:palindrome,是正序和逆序完全相同的非空字符串一个字符串有许多子序列,可以通过删除某些字符而变成回文字符串,字符串“cabbeaf”,删掉‘c’、'e'、‘f’后剩下的子串“abba”就是回文字符串,也是其中最长的回文子序列。在一个给定的......
  • dp-最长公共子序列
    最长公共子序列目录最长公共子序列问题描述最长公共子序列不等于最长公共子串问题分析程序问题描述最长公共子序列(LCS)是一个在一个序列集合中(通常为两个序列)用来查找所有序列中最长子序列的问题。一个数列,如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的......
  • dp-最优二叉搜索树
    最优二叉搜索树目录最优二叉搜索树问题描述问题分析思路程序问题描述最优二叉搜索树(OptimalBinarySearchTree,OptimalBST)问题,形式化定义:给定一个n个不同关键字的已排序的序列K=<k1,k2,...,kn>(k1<k2<...<kn),用这些关键字构造一棵二叉搜索树——对每个关键字ki,都有一个概......