phpMyAdmin v4.8.1 文件包含漏洞

原理:

在通过服务器脚本的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄露、恶意代码的注入等。

文件包含分为两种,一种为本地文件包含,一种为远程文件包含,此篇记录本地文件包含。本地文件包含(Local File Include),简称 LFI。

文件包含在 php 中,涉及到的危险函数有四个,分别是 include()、include_once()、require()、require_once()。

区别如下:

include:包含并运行指定的文件,包含文件发生错误时,程序警告,但会继续执行。

include_once:和 include 类似,不同处在于 include_once 会检查这个文件是否已经被导入,如果已导入,下文便不会再导入,直面 once 理解就是只导入一次。

require:包含并运行指定的文件,包含文件发生错误时,程序直接终止执行。

require_once:和 require 类似,不同处在于 require_once 只导入一次。

准备:

1.php环境

2.phpMyAdmin v4.8.1的环境 https://www.phpmyadmin.net/files/4.8.1/

3.在phpMyAdmin的根目录下加入1.text  内容

开始试验

1.通过审计我们找到这个


2.找到原代码(并分析)


/index.php
libraries/classes/Core.php

3.进攻方式

在链接中输入 index.php?target=db_search.php%253f/../1.txt (db_search.php可以是数组中任意一个值)

得到

4.说说index.php?target=db_search.php%253f/../1.txt 的执行流程

1>首先在index.php中进行判断最后走到里面

2>分析过程

带序号的为流程

开头摘与 https://blog.csdn.net/fageweiketang/article/details/80699051

你可能感兴趣的:(phpMyAdmin v4.8.1 文件包含漏洞)