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 内容<?php phpinfo(); ?>
开始试验
1.通过审计我们找到这个

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



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