前言

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

    当时整个人都麻了

              

首先何为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. NSArray文件读写

    1.NSArray数据写入到文件中 NSArray *arr = @[@"lnj", @"lmj", @"jjj", @"xcq& ...

  2. 抽象类,interface接口,接口和继承的区别

    一.抽象类 需要抽象类的原因:父类方法不确定性的问题.考虑将该方法设计为抽象(abstract)方法所谓抽象方法就是没有实现的方法.所谓没有实现就是指,没有方法体.当一个类中存在抽象方法时,需要将该类 ...

  3. ROS::message_filters中的一个报错(mt::TimeStamp……)

    『方便检索』 ros::Time msg_time = mt::TimeStamp<typename mpl::at_c<Messages, i>::type>::value( ...

  4. 【论文总结】Zero-Shot Semantic Segmentation

    论文地址:https://arxiv.org/abs/1906.00817 代码:https://github.com/valeoai/ZS3 一.内容 Step 0:首先使用数据集(完全不包含 Un ...

  5. 《PHP程序员面试笔试宝典》——如何回答非技术性问题?

    如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 评价一个人的能力,除了专业能力,还有一些非专业能力,如智力.沟通能力和反应能力等,所以在IT企业招聘过程的笔试.面试环节 ...

  6. ios cannot use "@throw" with objective-c exceptions disabled 问题解决方案

    http://blog.csdn.net/huayu_huayu/article/details/51781182 我不转载  我跳转 哈哈哈哈哈哈   其实也就是 解决办法:修改target -&g ...

  7. Python 随机(random)模块的不可预测之美

    1 . 概念 1.1 真.伪随机数 大部分的计算机语言都会提供 API 生成随机数,此类 API 称为随机数生成器. 计算机可以用随机数模拟现实世界中的各种随机概率问题,没有随机生成器的编程语言不是& ...

  8. windows加普通用户加入管理员组

    net localgroup administrators 用户名 /add ------------>使用这句命令添加用户到管理组 shutdown -g 重启电脑

  9. 入手这个商业智能工具,建设自助式BI平台轻松搞定

    ​数据的重要性无需多言,可数据的获取和使用却依然不是一件容易的事.尤其是对企业中不掌握数据的广大业务人员,对数据又爱又恨,对掌握数据对IT部门,更是恨多爱少,为了拿到数据分析数据,不断的申请.催促.沟 ...

  10. Smartbi大数据在金融业的应用案例

    我们平时听说的商业智能其实就是BI分析,它是一种提高企业智能化的手段和工具,既可以满足企业发展的需要,而且也可提高企业竞争力.思迈特软件Smartbi作为数据分析系统,受到了不少金融业客户的青睐.今天 ...