phpMyAdmin利用小结

phpMyAdmin利用小结,第1张

在phpmyadmin根目录下后面添加:

在fofa上搜索相应站点进行测试:

Trick:如何判断目录是否存在,往往确定了/var/www/html目录,但是还有一层目录不能 确定,可以采用目标域名+常用的网站根目录的方式进行爆破,当使用

不存在将会报错Can't create/write to file '/var/www/html/666.txt' (Errcode: 2);

如果存在但是目录写不进去将返回(Errcode: 13);

利用过程:

1、获取网站绝对路径

2、判断是否有读写权限:

版本5.5.53之前默认为空,之后的版本默认为null

这个值是只读变量,只能通过配置文件修改,且更改后需重启服务才生效

3、写入shell到网站根目录下

原理:MySQL5.0版本以上会创建日志文件,phpmyadmin有一个记录日志的文件,但是一般情况下会关闭。通过修改日志的全局变量,打开日志并指定日志保存路径,设置日志记录名称为.php

查询日志全局变量:

打开日志全局变量:

设置日志保存路径:

进行查询,使查询的语句写入日志文件中:

原理:只有当查询语句执行的时间要超过系统默认的时间时,该语句才会被记入进慢查询日志

启用慢查询日志(默认禁用):

修改slow_query_log_file日志文件的绝对路径以及文件名:

慢查询时间值:

如果查询时间超过了这个时间值(默认为10秒),这个查询语句将被记录到慢查询日志中

通常情况下执行sql语句时的执行时间一般不会超过10s,所以说这个日志文件应该是比较小的,而且默认也是禁用状态,不会引起管理员的察觉。

向日志文件写入shell:

phpmyadmin反序列化漏洞任意文件读取(WooYun-2016-199433)

影响phpMyAdmin 2.x版本,poc如下:

CVE-2016-5734 RCE:

利用条件:

主要原因由于将用户输入的信息拼接进preg_replace函数第一个参数中,而在PHP5.4.7以前,preg_replace存在漏洞,可以0进行截断,并将正则模式修改为e,进而执行命令。

在Kali中有自带的EXP

具体请参考: https://www.jianshu.com/p/8e44cb1b5b5b

CVE-2018-12613文件包含:

利用条件:

满足以下5个条件:

判断是否存在漏洞经过二次编码绕过

/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd

然后在sql语句中执行一些语句记录到日志,然后在包含即可

SELECT '<?php phpinfo()?>'

查询phpmyadmin cookie值(开发者工具查看)

http://192.168.75.130:8080/index.php?target=db_sql.php%253f/../../../../../../tmp/sess_ff16b4962b5343089c8fcd4c58df53ba

CVE-2014 -8959:本地文件包含

利用条件:

POC:

在实际利用中可以利用写入文件到/tmp目录下结合此漏洞完成RCE,php版本可以通过http header、导出表内容到文件的附加内容看到。

CVE-2013-3238:

利用条件:

msf有相应的利用模块:

exploit/multi/http/phpmyadmin_preg_replace

CVE-2012-5159:

利用条件:

msf有相应的利用模块:

exploit/multi/http/phpmyadmin_3522_backdoor

CVE-2009-1151:

PhpMyAdmin配置文件/config/config.inc.php存在命令执行

利用条件:

msf有相应的利用模块:

exploit/unix/webapp/phpmyadmin_config

弱口令&万能密码:

弱口令:版本phpmyadmin2.11.9.2, 直接root用户登陆,无需密码

万能密码:版本2.11.3 / 2.11.4,用户名’localhost’@'@”则登录成功

phpMyAdmin渗透利用总结

phpMyAdmin 渗透利用总结

本地phpmyadmin远程连接服务器端MySQL 首先要确定mysql远程连接已开启,如果没有开启按照下面的二个方法操作:

方法一:改表法

因为在linux环境下,默认是关闭3306端口远程连接的,需要开启,如果装mysql数据库时开启了3306就OK了。

默认mysql帐号不允许从远程登陆,只允许localhost访问。登入mysql后,更改 "mysql" 数据库 里的 "user"(远程数据库的名称) 表里的 "host" 项,把"localhost"改称"%" 。这样mysql就可以远程操作了。

update user set host = '%' where user = 'root'

注意:这样方法只是把本机localhost访问改为了"%"所有地址IP都可以访问mysql服务器,这样很不安全。默认localhost访问的时候有所有操作权限。所以不安全!推荐用第二个方法。

方法二:授权法 (推荐使用)

(1)SQL语句:

grant select,insert,update,delete on *.* to root@"%" Identified by "password"

允许地址IP上root用户,密码dboomysql来连接mysql的所有数据库,只付给select,insert,update,delete权限。 这样比较安全。如果只允许IP(192.168.1.1)上root用户

访问更安全,操作(2)

(2)SQ语句:

grant select,insert,update,delete on *.* to root@"192.168.1.1" Identified by "password"

只允许地址IP(192.168.1.1)上root用户访问更安全了。

(3)

grant all on *.* to root@"192.168.1.1" Identified by "password"

允许地址192.168.1.1上用root用户,密码password来连接mysql的所有数据库,付给所有权限。不太安全。

现在重启mysql服务,如果服务器上安装了防火墙,看看3306端口开启没,如果没需要开启3306端口才能用了,在linux下要开启防火墙 打开3306 端口,编辑这个文件vi /etc/sysconfig/iptables

输入

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

保存后在控制台输入 /etc/init.d/iptables restart 重启防火墙,记得一定要重启防火墙。

配置好本地PHP环境,下载PHPMYADMIN

方法一:

(一)、下载phpmyadmin

http://www.phpmyadmin.net/home_page/index.php

(二)、修改libraries文件夹下的config.default.php文件或者phpmyadmin根目录的config.inc.php文件。

1、查找$cfg['PmaAbsoluteUri'] ,将其值设置为本地的phpmyadmin路径

2、查找$cfg['Servers'][$i]['host'] , 将其值设置为mysql数据库地址,例如127.0.0.1

3、查找$cfg['Servers'][$i]['user'] , 将其值设置为mysql数据库用户名,例如admin

4、查找$cfg['Servers'][$i]['password'] , 将其值设置为mysql数据库密码,例如admin

(三)、在本地访问phpmyadmin 可查看远程mysql数据库,phpMyAdmin 3.3.1只需要修改 $cfg['Servers'][$i]['host']的值,用户名密码 访问phpmyadmin时输入。

方法二:

1,在浏览器中输入:http://localhost/phpmyadmin/setup/

2,点击“新建服务器” ,填写表单:

服务器名称:主机名称

服务器主机名:主机IP

认证方式:config

config 认证方式的用户名:用户名

config 认证方式的密码:用户密码

3,保存后返回setup界面,点击下载,下载的文件为 config.inc.php

4,将下载的文件 config.inc.php 复制到 /usr/share/phpmyadmin/ 目录下

5,编辑 /usr/share/phpmyadmin/config.inc.php

添加以下代码

/* Server: localhost [1] */

$i++

$cfg['Servers'][$i]['verbose'] = '主机名称'

$cfg['Servers'][$i]['host'] = '主机IP'

$cfg['Servers'][$i]['port'] = ''

$cfg['Servers'][$i]['socket'] = ''

$cfg['Servers'][$i]['connect_type'] = 'tcp'

$cfg['Servers'][$i]['extension'] = 'mysqli'

$cfg['Servers'][$i]['auth_type'] = 'config'

$cfg['Servers'][$i]['user'] = '用户名'

$cfg['Servers'][$i]['password'] = '密码'


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/12372.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-11
下一篇2023-02-11

发表评论

登录后才能评论

评论列表(0条)

    保存