首页 > 所有文章 > 行业 >文章详情

mysql 获取本地ip地址(安装mysql时默认的用户名是)

时间:2023-10-28 22:36:25 浏览量:29

读了《MySQL蜜罐获取攻击者微信ID》的文章,文中说明了通过mysql蜜罐读取攻击者微信ID的过程,抱着学习的态度尝试了一下

mysql中有一个 load data local infile 函数能够读取本地文件到mysql数据库中。当攻击者用爆破mysql密码的扫描器扫描到我们的mysql并连接上的时候,客户端(攻击者)会自动发起一个查询,我们(服务端)会给与一个回应,我们在回应的数据包中加入 load data local infile 读取攻击者的本地文件到我们数据库中,达到反制的目的。

LOAD DATA INFILE语句用于高速地从一个文本文件中读取行,并写入一个表中。文件名称必须为一个文字字符串。
LOAD DATA INFILE 是 SELECT ... INTO OUTFILE 的相对语句。把表的数据备份到文件使用SELECT ... INTO OUTFILE,从备份文件恢复表数据,使用 LOAD DATA INFILE。基本语法如下:

这个功能默认是关闭的,当我们本地mysql服务器没有开启这个功能执行时会报错:

我们可以通过如下命令查看功能状态

show global variables like 'local_infile';

我们通过如下命令开启这个功能:

set global local_infile=1;

然后我们通过如下命令尝试读取本地的C盘目录下的1.txt文件

load data local infile 'C:/1.txt' into table test fields terminated by '\n';

我们模拟一下攻击者通过扫描器连接MySQL数据库的通信过程
工具:Wireshark

首先我们通过Wireshark抓取通信流量查看一下通信过程

我们就是在上面的最后一步回应中插入读取客户端本地文件的语句,从而读取客户端的本地文件到数据库表中。

下载地址:https://github.com/allyshka/Rogue-MySql-Server

然后编辑 rogue_mysql_server.py 这个文件,修改里面的读取文件的路径(windows或者linux的路径都行)

这个数据包是像形如Navicat这种数据库连接软件在连接之前都会自动发送的一个请求查询的。从查阅资料来看,大多数MySQL客户端以及程序库都会在握手之后至少发送一次请求,以探测目标平台的指纹信息

SET NAMES utf8mb4

接下来就是服务器端给出的回应包,但是这个数据包里面大有文章,包含了读取本地 C:/1.txt 文件的命令

然后我们就发现接下来客户端就把服务器请求的 1.txt 文件传输到了服务器。


__EOF__

原文链接:https://www.cnblogs.com/tzf1/p/15749657.html