利用:  1. 利用慢查询日志写入webshell
          2. phpMyAdmin的setup目录暴露一些隐私信息
          3. 通过phpMyAdmin修改php的ini配置文件,可以进行远程命令执行
          4. 可以用来反弹shell

0x00 简介

phpMyAdmin 大家很熟悉了,很多服务器都会默认安全,用来管理数据库。默认安装的情况下会存在一些安全隐患。

0x01 隐患

1. phpMyAdmin的setup目录暴露一些隐私信息
首先是默认的 setup 目录,phpMyAdmin 安装后的 setup 目录可以直接访问,这个目录可以执行一些操作,暴露一些隐私信息,如下图:

2. 通过phpMyAdmin修改php的ini配置文件,可以进行远程命令执行

可以通过 phpMyAdmin 来修改 php 的 ini 配置文件,这意味着可以配置 allow_url_include 和 auto_prepend_file,allow_url_include 即允许内容包含。auto_prepend_file 是向 php 文件中添加指定的内容,也是内容包含,用过 wvs 的 acusensor 应该会很熟悉这个选项,wvs 的 acusensor 用来做灰盒扫描,能把问题定位到代码的具体行数,其原理就是将 acusensor 文件上传到服务器,配置的时候就需要打开 auto_prepend_file 选项,以此扫描时可以将 acusensor 的内容包含到每个 php 文件中,做到了灰盒代码分析的功能。

利用 phpMyAdmin 修改 php 的 ini 文件,只需要在目录后跟上参数 - d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input,其作用就是打开 allow_url_include 项和 auto_prepend_file 项,然后通过 php 的 input 协议写入内容,这样就可以写入 php 代码,然后结合 php 的一些执行系统命令的行数,达到远程命令执行的效果。

可以直接使用 burp 的 repeater 模块来做测试,首先需要指定目标的 ip 和端口,如下图:

之后就可以直接请求 phpMyAdmin 然后加上上述参数,post 方式请求,请求的数据就是要运行的命令,这里使用 php 的执行命令函数 passthru,如下图:

上面通过命令 whoami 可以看到自己是 www-data,www-data 是一个可以操作 web 的用户,pwd 给的当前目录是在 var/www 下,ls 查看了该目录下的文件。同理,就可以利用 echo 命令写入内容然后重定向到一个文件中,如下图:注意:这里加 \ 是为了防止 $变量被过滤掉

上图通过 $_GET 来接收内容,然后给到 system 执行命令函数,注意的是 $ 需要用反斜杠进行转义,重定向到 getshell 文件中,写入后通过 ls 查看如下:

getshell 文件已经写入,通过 cat 查看内容如下:

这也就是一句话目录,可以通过猜到直接连接,通过网页也可以直接访问 cmd 参数后跟要执行的命令即可,如下图:

因为自己是 www-data 权限,向 ifconfig 这种命令是没有权限执行的,直接 ifconfig 没有任何结果返回,这里可以通过查看 ifconfig 命令所在的目录,然后去目录中直接执行这个程序,可以通过 whereis 命令查看其位置,如下图:

返回结果是在目录 / sbin/ifconfig 下,则可以直接输入 / sbin/ifconfig 来运行,如下图:

3. 可以用来反弹shell

上面就是基本的写入一句话目录的利用,除此之外,也可以做反向的 shell,利用方式和上面一样,只不过上面是 post 的 php 代码是 passthru 这种,而反向 shell 也是 post 一段 php 代码,这段代码 kali 自带,可以直接复制出来使用,其目录在 usr/share/webshell 目录下,这个目录下包含了多种语言的一些 shell 脚本,如下图:

php 目录下的 php-reverse-shell 文件是用来做反向 shell 的,这个文件中有两处需要配置,一个是反向 shell 反的目标 ip,另一个就是反向目标的端口,配置如下:

配置好后直接通过 post 请求即可,如下图:

请求后,就可以在 105 的机器上进行连接,下面是通过 nc 监听 1234 端口的结果:

和终端是一样的,可以正常执行命令,可以看到 ip 是靶机的 104:

0x02 总结

上面就是 phpMyAdmin 默认安装的情况下会存在的一些问题和利用方法,并不是什么新姿势,但思路也值得学习,kali 自带的 shell 脚本也值得学习。渗透过程中默认配置也是一个很大的攻击面,也会存在很多的隐患,不容小觑。

默认安装的phpMyAdmin会存在哪些安全隐患的更多相关文章

  1. 小白日记35:kali渗透测试之Web渗透-手动漏洞挖掘(一)-默认安装引发的漏洞

    手动漏洞挖掘 即扫描后,如何对发现的漏洞告警进行验证. #默认安装 流传linux操作系统比windows系统安全的说法,是因为windows系统默认安装后,会开放很多服务和无用的端口,而且未经过严格 ...

  2. Linux下Apache PHP MYSQL 默认安装路径

    apache: 如果采用RPM包安装,安装路径应在 /etc/httpd目录下apache配置文件:/etc/httpd/conf/httpd.confApache模块路径:/usr/sbin/apa ...

  3. CentOS 7 / RHEL 7 上安装 LAMP + phpMyAdmin

    原文 CentOS 7 / RHEL 7 上安装 LAMP + phpMyAdmin 发表于 2014-11-02 作者 Haoxian Zeng 更新于 2014-12-12   之前根据在 Lin ...

  4. Kali学习笔记29:默认安装漏洞

    文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 默认安装漏洞: 早期Windows默认自动开启很多服务 ...

  5. PHP安装-phpMyAdmin+Discuz

    PHP安装-phpMyAdmin+Discuz基于Apache和MySQL安装完成之后继续安装PHP.以构建LAMP动态网站平台.http:./configure --prefix=/usr/loca ...

  6. Ubuntu16.04下安装配置phpmyadmin

    在项目配置了阿里的druid,可以监控session,spring和详细sql的执行情况以及具体到表等信息,但是仍然发现不够详细,而且作为一个半吊子dba,一直用linux命令分配权限和管理数据库,效 ...

  7. Windows10系统如何更改程序的默认安装目录?

    Windows10系统如何更改程序的默认安装目录? 在Windows10系统的使用中,软件程序的默认安装目录是:C:\Program Files\...或者C:\Program Files(x86)\ ...

  8. CentOS下mysql默认安装位置

    如果采用RPM包安装,安装路径应在/usr/share/mysql目录下 mysqldump文件位置:/usr/bin/mysqldump mysqli配置文件: /etc/my.cnf或/usr/s ...

  9. centos Apache、php、mysql默认安装路径

    apache: 如果采用RPM包安装,安装路径应在 /etc/httpd目录下 apache配置文件:/etc/httpd/conf/httpd.conf Apache模块路径:/usr/sbin/a ...

随机推荐

  1. HMAC在“挑战/响应”(Challenge/Response)身份认证的应用

    HMAC的一个典型应用是用在"挑战/响应"(Challenge/Response)身份认证中. 认证流程 (1) 先由客户端向服务器发出一个验证请求. (2) 服务器接到此请求后生 ...

  2. 果蝇优化算法_Fruit Fly Optimization

    1. 果蝇优化算法背景 在夏天,果蝇是一种随处可见的昆虫.果蝇在嗅觉和视觉特别突出.腐烂的食物发出一种刺鼻的味道,温度越高这种气味的扩散速度较快,果蝇对这种味道非常敏感.腐烂的味道和食物的位置有关.一 ...

  3. 7、滑动窗口套路算法框架——Go语言版

    前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...

  4. c++设计模式概述之访问者

    代码写的不够规范,目的是为了缩短篇幅,实际中请注意. 参看: http://c.biancheng.net/view/1397.html 1.概述 类比生活中的场景,购物商场中的商品.顾客.收营员.商 ...

  5. c++设计模式概述之观察者

    代码写的不够规范,目的是缩短篇幅,实际情况请不要这样做 1.概述 观察者模式,类比生活中的场景,比如看电影,观众对播放的内容有不同的反应, 再比如订阅,公众号订阅,只要你订阅了其公众号,你就会收到其推 ...

  6. 【LeetCode】51. N-Queens 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 回溯法 日期 题目地址:https://leetco ...

  7. 【LeetCode】526. Beautiful Arrangement 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  8. 【LeetCode】797. All Paths From Source to Target 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 回溯法 日期 题目地址:https://leetco ...

  9. C# RabbitMQ的使用

    本文目的如题. 安装 先说一下RabbitMQ的安装,建议使用Docker镜像安装,Docker安装的好处是不管Windows系统还是Linux,安装步骤少,安装方法相同,不容易出错.使用下面的命令就 ...

  10. Netty源码分析之ByteBuf引用计数

    引用计数是一种常用的内存管理机制,是指将资源的被引用次数保存起来,当被引用次数变为零时就将其释放的过程.Netty在4.x版本开始使用引用计数机制进行部分对象的管理,其实现思路并不是特别复杂,它主要涉 ...