默认安装的 phpMyAdmin 会存在哪些安全隐患

版权声明: https://blog.csdn.net/fageweiketang/article/details/85148528

0x00:简介

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

0x01:隐患

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

请输入图片描述

其次是,可以通过 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 来运行,如下图:

请输入图片描述

上面就是基本的写入一句话目录的利用,除此之外,也可以做反向的 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:

请输入图片描述

除了上面的 phpMyAdmin 配置 ini 文件外,在 ubuntu 和 debian 的服务器上会默认安装 php5-cgi,cgi 即公共的网关接口,php 执行时需要的环境。而 cig 的安装目录没有在 www 下,所以通过扫描器等一些手段发现不了,但 cgi 目录却可以直接访问。cgi 目录是在 usr/bin 下,这个也可以通过 whereis 查看。利用方法和上面的 phpMyAdmin 一样,如下图:

请输入图片描述

上图中?后的参数和 phpMyAdmin 的基本一样,也是通过配置其包含的选项来利用的,其需要进行 url 编码,burp 的 decode 解码如下:

请输入图片描述

0x03:总结

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

公众号回复数字“8”领取CIS加固全套手册。

微 信:fageweiketang,朋友圈不定期干货分享,欢迎讨论。

公众号:发哥微课堂,专注于代码审计、WEB渗透、网络安全。

                     

猜你喜欢

转载自blog.csdn.net/fageweiketang/article/details/85148528