V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
xianxiaobo
V2EX  ›  Linux

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

  •  
  •   xianxiaobo · Nov 15, 2018 · 10212 views
    This topic created in 2725 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

    2.除了 1.这种情况,其它的最多也就是数据被查看、删除和修改,对服务器没什么任何影响。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   750 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 128ms · UTC 20:56 · PVG 04:56 · LAX 13:56 · JFK 16:56
    ♥ Do have faith in what you're doing.