前言

  • 刚开始复现这个漏洞的时候是在自己的本机上然后跟着大佬的复现步骤可是没有预期的结果最后看了另一篇文章

    当时整个人都麻了

              

首先何为phpMyAdmin

根据官方的说明phpMyAdmin 是一个用PHP编写的免费软件工具,旨在 通过 Web处理MySQL的管理。phpMyAdmin 支持对 MySQL 和 MariaDB 的广泛操作。经常使用的操作(管理数据库、表、列、关系、索引、用户、权限等)可以通过用户界面执行,同时您仍然可以直接执行任何 SQL 语句。

  大家也该是不陌生的,我想最开始学习php的时候应该有相当一部分人是从phpstudy开始的而在高版本的phpstudy中会自动为我们安装phpMyAdmin,说是安装其实就是在www下的一个文件夹

下面我们开始介绍该漏洞

1.漏洞的位置

  该漏洞在phpmyadmin的index.php文件大约在第50行左右

  • 首先事检查target是否为空
  • 然后是检查target是否为字符串
  • 再然后是判断target是否存在于target_blacklist中而在该数组中就只用import和export两个所以还是很容易绕过的
  • 最后是一个来自Core文件的一个checkPageVaalidity函数,Core在phpMyAdmin\libraries\classesCore.php中

  然后我们进入checkPageVaalidity函数

  • 该函数要两个参数可是我们在index.php中发现我们就传入一个参数这个参数就是$page
  • 首先会判断$whitelist参数是否为空如果是空的会赋予一个默认的值这个数组是



    这里就不全都展示了,确实很多
  • 我们可以发现在第三个if的时候会查看我们传入的target是否在给定的数组里,只有在的时候才会返回true
  • 而在第四个if的时候是会以?作为截取的标志来截取?前面的字符串判断是否存在于数组$goto_whitelist中,phpmyadmin的开发团队考虑的很全面这个判断就是考虑到target后面可能还有参数的情况这样判断就可以保证target带有参数也能正常运行,可是就是因为考虑的太全面了所以在这里就有一个漏洞
  • 第5个if就是在对target解码后在截取判断了一遍。

在说这个漏洞之前我们先看一个php特性双重编码

  在php中我们对?进行双重编码()在传个服务端是服务端解码就会是%3f而这是php就会把%3f之前的文件当成文件夹(这个漏洞的发现大佬是真的牛!!!!!)接下来做一个实验



  首先我们先建立三个文件

index222.php

mmmm





结果

  现在我们回归正题因为在checkPageVaalidity函数中允许我们在target后面在带参数这漏洞不就来了吗!!!



  之前看大佬的文章发现有一个general_log方法(这个还不会之后会补上的)这里我们就用大佬们常用的session文件包含方式。先说明各个系统session文件的存储位置Macos的session保存目录为/var/tmp/,Linux的session保存目录为/var/lib/php/sessions,Windows是在tmp/tmp/下,这里我遇到了一个bug或许是因为我的phpmyadmin4.8.0是后添加的,这里我找不到对应的session文件就很迷。我做实验是在18号可是就是没有那天的session文件而且在整个文件中也没有。



但是可以发现我们在进行执行sql命令是时我们的命令时被记录在相应的seesion文件里的注意看最后两个session记录可以发现在我们查询前后的记录是不同的





最后预期的payload就是127.0.0.1/phpmyadmin-4.8.0/index.php?target=db_sql.php%253f/../../../../../../tmp/tmp(sess_............)

最后我们看一道题:





进入之后可以发现有一串乱码





这里什么什么都没有也是迷了半天因为我的御剑啥也没扫出来,之后是看到题目是有一个数据库才想起来是不是有phpmyadmin:



这里可以看到版本是4.8.1所以我们可以用PhpMyadmin后台文件包含漏洞然后就是

payload = http://37faeb76-df25-4860-b7b1-d62d17a00186.node4.buuoj.cn:81/phpmyadmin/?target=db_datadict.php?%253f/../../../../../../../../etc/passwd



发现有反馈所以说可以。



  这里说明一下这个../可以多加但不可以少,这样可以保证能让其返回到跟文件夹,还有就是db_datadict.php是可以替换的只要是$whitelist数组里的都可以哦

最后就是:payload=http://37faeb76-df25-4860-b7b1-d62d17a00186.node4.buuoj.cn:81/phpmyadmin/?target=db_datadict.php?%253f/../../../../../../../../flag

  • 今天又是菜鸡刷题的一天,但我一定要刷跟跟多的题成为更大的菜鸡。

参考:

https://www.phpmyadmin.net/

https://blog.csdn.net/Mikasa_/article/details/88425166

https://blog.csdn.net/Mikasa_/article/details/88594749

https://www.cnblogs.com/0daybug/p/13494650.html

cve-2018-12613-PhpMyadmin后台文件包含漏洞的更多相关文章

  1. 再看CVE-2018-12613 phpmyadmin后台文件包含&&RPO攻击

    写在前面 因为看了朋友的一篇分析又回头想了想自己去年遇到的这个纠结的问题. 去年写过一篇phpmyadmin后台文件包含的文章,写的非常的草草,并没有分析的过程,只是把自己的问题记了下来.当时纠结于最 ...

  2. phpMyAdmin本地文件包含漏洞

    4 phpMyAdmin本地文件包含漏洞 4.1 摘要 4.1.1 漏洞简介 phpMyAdmin是一个web端通用MySQL管理工具,上述版本在/libraries/gis/pma_gis_fact ...

  3. phpmyadmin任意文件包含漏洞分析(含演示)

    0x01 漏洞描述 phpmyadmin是一款应用非常广泛的mysql数据库管理软件,基于PHP开发. 最新的CVE-2014-8959公告中,提到该程序多个版本存在任意文件包含漏洞,影响版本如下: ...

  4. [CVE-2014-8959] phpmyadmin任意文件包含漏洞分析

    0x01 漏洞描述 phpmyadmin是一款应用非常广泛的mysql数据库管理软件,基于PHP开发. 最新的CVE-2014-8959公告中,提到该程序多个版本存在任意文件包含漏洞,影响版本如下: ...

  5. CVE-2018-12613phpMyAdmin 后台文件包含漏洞分析

    一.    漏洞背景 phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库.借由此Web接口可以成 ...

  6. phpMyAdmin后台文件包含溯源

    先上大佬解释的漏洞原理链接 https://mp.weixin.qq.com/s?__biz=MzIzMTc1MjExOQ==&mid=2247485036&idx=1&sn= ...

  7. phpMyAdmin 4.8.x 本地文件包含漏洞利用

    phpMyAdmin 4.8.x 本地文件包含漏洞利用 今天ChaMd5安全团队公开了一个phpMyAdmin最新版中的本地文件包含漏洞:phpmyadmin4.8.1后台getshell.该漏洞利用 ...

  8. 18.phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)

    phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613) phpMyAdmin是一套开源的.基于Web的MySQL数据库管理工具.其index.php中存在一处文件包含逻辑, ...

  9. phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)

    漏洞详情 范围 phpMyAdmin 4.8.0和4.8.1 原理 首先在index.php 50-63行代码 $target_blacklist = array ( 'import.php', 'e ...

随机推荐

  1. Java语言中的访问权限修饰符

    一个Java应用有很多类,但是有些类,并不希望被其他类使用.每个类中都有数据成员和方法成员,但是并不是每个数据和方法,都允许在其他类中调用.如何能做到访问控制呢?就需要使用访问权限修饰符. Java语 ...

  2. Ansible之roles模块--lnmp分布式部署

    Ansible之roles模块--lnmp分布式部署 目录 Ansible之roles模块--lnmp分布式部署 1. role模块的作用 2. roles的目录结构 3. roles内个目录含义解释 ...

  3. 【BZOJ2820】YY的GCD(莫比乌斯反演 数论分块)

    题目链接 大意 给定多组\(N\),\(M\),求\(1\le x\le N,1\le y\le M\)并且\(Gcd(x, y)\)为质数的\((x, y)\)有多少对. 思路 我们设\(f(i)\ ...

  4. 面试官:谈谈你对IO流和NIO的理解

    一.概念 NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多.在Java API中提供了两套N ...

  5. 详细介绍Windows下也能够使用osw性能升级历史

    1.Windows系统历史性能分析困难背景 在Linux/Unix上.要追朔历史性能,一般採用部署nmon进行性能监控採集与存储的方式实现.可是却没有在Windows上的版本号. Windows系统假 ...

  6. windows清理用户痕迹

    1.日志管理器的基本使用 在这里创建自定义视图是非常重要的 在设置自定义视图不必设置的事件日志选项太多,可以按日志也可以按源进行设置,根据自己的情况来做决定 在cmd下可以使用wevtutil cl ...

  7. bugku ctf 杂项 旋转跳跃 (熟悉的声音中貌似又隐藏着啥,key:syclovergeek)

    做这道题之前先给出工具   MP3Stego 下载地址 链接:https://pan.baidu.com/s/1W2mmGJcrm570EdJ6o7jD7g  提取码:1h1b 题目下载加压后 是一个 ...

  8. SQL SERVER 学习过程(一)

    还记得以前在学校的学习过数据库SQL SERVER 2008 R2 的教程,从学校毕业出来后的哪家单位基本没怎么使用过数据库,现在也忘得差不多了 做些相关的练习熟悉熟悉 --创建数据库-- creat ...

  9. 华为RH2288H服务器引导ServiceCD安装Windows Server操作系统

    安装准备 ServiceCD光盘. Windows操作系统安装光盘. 物理光驱. 使用虚拟控制台远程安装操作系统时,需要准备以下软件: ServiceCD光盘或ServiceCD ISO文件. Win ...

  10. C#控制台输出瑞典、中文显、日语显示乱码问题

    问题:瑞典文字的"æ"在控制台中无法正确的显示? String[] strings1 = { "case", "encyclopædia", ...