V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
xianxiaobo
V2EX  ›  Linux

如果别人知道我的 mysql 用户名和密码,能够入侵我的服务器吗?

  •  
  •   xianxiaobo · 2018-11-15 09:59:25 +08:00 · 9539 次点击
    这是一个创建于 2204 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有时候传代码会把 jdbc.properties 传上去。。。你们都是怎么做的呢

    38 条回复    2018-11-16 09:06:08 +08:00
    KingEngine
        1
    KingEngine  
       2018-11-15 10:10:19 +08:00   ❤️ 1
    既然发现了问题,为什么不首先想到改密码?而是在 v2 发个帖?
    xianxiaobo
        2
    xianxiaobo  
    OP
       2018-11-15 10:16:28 +08:00
    @KingEngine 改密码肯定会啊,只是很好奇这种问题能造成多大的伤害,以及大家都是怎么做的。
    find456789
        3
    find456789  
       2018-11-15 10:18:51 +08:00   ❤️ 1
    mysql 设置白名单 ip, 只允许 服务器 ip 访问, 这样安全性就会提升很多

    , 如果你 mysql 谁都可以链接, 然后密码还暴露了, 人家拿到密码,你的所有数据都暴露无遗了
    GoLand
        4
    GoLand  
       2018-11-15 10:19:33 +08:00   ❤️ 2
    你的 MySQL 是外网也能访问吗......通常这种服务基础服务都是只有集群内网才能访问啊。
    cat9life
        5
    cat9life  
       2018-11-15 10:20:54 +08:00   ❤️ 1
    没有 block 外网访问的话肯定死翘翘啊,或者正好你们内网早就被人入侵过但是苦于无法提权,你这正还给了一个突破口。
    markgor
        6
    markgor  
       2018-11-15 10:21:00 +08:00   ❤️ 4
    那要看 mysql 的权限,还有 mysql 账户的权限
    如果 mysql 是用 root 运行的,然后 mysql 账号也有 load_file 或 outfile 的话,那基本都能入侵你服务器
    xianxiaobo
        7
    xianxiaobo  
    OP
       2018-11-15 10:21:21 +08:00
    @GoLand 个人服务器,刚开始学 java,mysql
    xianxiaobo
        8
    xianxiaobo  
    OP
       2018-11-15 10:22:33 +08:00
    @markgor 懂了,谢谢大佬
    markgor
        9
    markgor  
       2018-11-15 10:25:06 +08:00
    正常做法:
    mysql 创建独立的系统账号,严格控制权限体系,根据业务需求对指定的文件给予读写或只读权限。
    mysql 内部的账号也做好权限划分,只给予业务所需的功能权限。

    通过设定白名单,只允许本地访问或指定的 ip 链接(业务机器 ip 和堡垒机 ip )进行访问
    mysql 整台机禁止外网连接
    增加数据审核功能( mysql 有相关的插件,不过性能一般)

    上面做法也是等保要求 3 级的做法
    gaius
        10
    gaius  
       2018-11-15 10:26:02 +08:00
    不要传服务器配置文件到公网
    MaxLv
        11
    MaxLv  
       2018-11-15 10:30:21 +08:00 via iPhone
    看权限 能写文件的话就直接写 shell 了
    fumichael
        12
    fumichael  
       2018-11-15 10:36:03 +08:00
    我前不久也想过这个问题,参照下面链接
    https://www.v2ex.com/t/74245
    passerbytiny
        13
    passerbytiny  
       2018-11-15 10:37:13 +08:00
    你这不是废话吗

    @find456789 #3
    @GoLand #4
    @markgor #6
    他连配置文件不上传都不知道,这么高深的东西更不可能懂
    ClutchBear
        14
    ClutchBear  
       2018-11-15 10:37:36 +08:00
    设置禁止远程登录就是了.
    只允许内网 ip 登录
    zhuawadao
        15
    zhuawadao  
       2018-11-15 10:37:52 +08:00
    拔网线啊
    markgor
        16
    markgor  
       2018-11-15 10:42:21 +08:00
    @zhuawadao 哈哈,按文件要求的确是这样
    如果有重要事件发生,必须第一时间切断物理上的连接,
    然后报警,
    再检查日志和数据的完整。
    msg7086
        17
    msg7086  
       2018-11-15 10:44:42 +08:00
    有很多情况需要检查。比如,
    你 MySQL 监听外网了吗。
    你 MySQL 运行在 root 上了吗。
    你泄露的账号密码是全球都可以登录的吗。
    你防火墙开了吗。
    等等,各种。不同的设置造成的后果严重性也各不相同。
    SimonFu
        18
    SimonFu  
       2018-11-15 10:52:51 +08:00
    上一家公司运维为了省事儿,
    服务器 mysql 直接暴露公网,
    而且还是 root 用户可以直接访问,
    密码用的 enpass 随机生成的 32 位字符串不知可不可行。。。。
    (针对业务系统,还是做了数据库用户的权限区分限制的,localhost 访问。)
    nutting
        19
    nutting  
       2018-11-15 11:17:24 +08:00
    微软的 sql server 可以,上大学时候机房默认装着,弱密码,可以用工具装木马
    sonyxperia
        20
    sonyxperia  
       2018-11-15 11:19:25 +08:00
    那相当于把服务器地址也暴露了吧,如果数据库和 tomcat 在同一台机子
    LichMscy
        21
    LichMscy  
       2018-11-15 11:30:05 +08:00
    1. docker run -e 传入密码
    2. 用 jasypt 加密数据库密码
    xuextx
        22
    xuextx  
       2018-11-15 12:00:30 +08:00   ❤️ 2
    LZ 大概想知道的是,知道了 MYSQL,是否能入侵到整台服务器里面把
    opengps
        23
    opengps  
       2018-11-15 12:10:20 +08:00
    不专门研究,真的不敢相信入侵方法多种多样,能达到什么样的入侵效果往往是弱点组合起来的。所以不用多想,各方面努力加强防护吧
    licoycn
        24
    licoycn  
       2018-11-15 12:11:44 +08:00
    禁止远程访问 只可以本地访问拿到了也没有用 除非侵入了你的服务器
    WordTian
        25
    WordTian  
       2018-11-15 12:16:01 +08:00 via Android
    @SimonFu 一旦出现 sql 注入,那服务器基本就沦陷了
    tedzhou1221
        26
    tedzhou1221  
       2018-11-15 14:00:39 +08:00 via Android
    之前是用连接池工具 druid,带有解密功能。
    所以 jdbc.properties 里面的数据库密码信息是密文
    chinvo
        27
    chinvo  
       2018-11-15 14:03:38 +08:00 via iPhone
    @SimonFu #18 为啥低权限账号反而做的安全策略更好……
    xpresslink
        28
    xpresslink  
       2018-11-15 14:06:55 +08:00
    应用和 mysql 跑在同一台服务器时候我都是直接用 unix socket 连接,把所有端口都关闭。
    dko
        29
    dko  
       2018-11-15 14:36:16 +08:00
    只开 localhost,不要用 root,配个 user 就好了
    虽然 user 也可以提权,不过尽可能注意就好了。
    martinsu
        30
    martinsu  
       2018-11-15 15:20:26 +08:00
    华住酒店数据库泄露了解一下
    shellj
        31
    shellj  
       2018-11-15 15:30:13 +08:00
    把账号密码这些东西写在环境变量里
    aino
        32
    aino  
       2018-11-15 15:36:59 +08:00
    @shellj #31 好像海星
    CoderEQ
        33
    CoderEQ  
       2018-11-15 16:21:35 +08:00
    你在路上捡到一把钥匙,你能偷到这把钥匙主人家的东西吗
    aaaaasam
        34
    aaaaasam  
       2018-11-15 17:05:49 +08:00
    有访问授权控制的,如果你的 mysql 给的是 'root'@'1.1.1.1'就算你有密码,那也只能 1.1.1.1 这个地址去登录
    CasualYours
        35
    CasualYours  
       2018-11-15 17:35:03 +08:00
    mysql 权限过高是很容易侵入服务器的,mysql 的 system 命令可以执行服务器指令。
    ihuotui
        36
    ihuotui  
       2018-11-15 20:41:52 +08:00 via iPhone
    应用配置分离
    largecat
        37
    largecat  
       2018-11-15 22:01:49 +08:00 via Android
    只是写普通文章,传个配置文件不含服务器 ip 地址,拿到密码也不知道服务器在哪里吧
    pythonCoder
        38
    pythonCoder  
       2018-11-16 09:06:08 +08:00   ❤️ 1
    如果按照题目要求“能够入侵我的服务器吗?”,各位都跑题了;
    1.如果没做 WEB、DB 的分离(应用和数据部署在不同的服务器),并且泄漏了 mysql 的 root 账户,你的服务器非常容易被入侵,这里的入侵是拿到 webshell ;

    2.除了 1.这种情况,其它的最多也就是数据被查看、删除和修改,对服务器没什么任何影响。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5075 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:46 · PVG 17:46 · LAX 01:46 · JFK 04:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.