jijiniaoa 2020-12-17 19:47:29 4925次浏览 1条回复 0 0 0

起因:

最近写了个 恋爱话术 VIP 破解版 小程序,被攻击了,黑客直接明目账单的登陆到了我的服务器上安装各种肉鸡程序。

gh_315b2b15b8e3_344.jpg

寻找入侵路径:

   黑客是如何免密登陆到我的服务器的,因为服务器配置ssh publickey登陆,关闭了密码登陆

按照这个问题思考,如果黑客登陆我的服务器,必须把他机器的ssh 公钥 写入 到我服务器的authorized_keys中。cat 了一下 果然多出来一条 授权公钥,还起了个tx 的前缀,估计入侵前做了功课,腾讯云和阿里云的ip地址输入到百度里都会有提示。 clipboard.pngclipboard_baidu.png

为了防止黑客进一步破坏,删掉了这条授权公钥。从这个角度来看,黑客一定是获取到了linux中某个用户的权限,而且这个用户还可以直接对root 目录下的 文件进行读写操作。 按照这个思路思考,目前机器上安装了mysql php nginx , php 及 nginx 分别新建了用户,用户所属www用户组,唯独MySQL用的是root用户。黑客极大的可能是通过msyql读写文件信息的,那么很有可能是通过 后端项目sql注入拿到sql-shell读取文件权限的。为了验证这个猜想,直接去查找nginx日志记录,查看是否存在sql注入关键字,结果验证了我的猜想。如下图 sqlmap.png

黑客利用sqlmap注入工具对search接口成功sql注入,通过mysql load_file 函数成功读取配置文件 ,成功获取数据库的账号密码。至此黑客完全拿到了数据库的权限。

防范: 1.接口请求和返回加密,这一步能够很好的解决sql注入的问题,增加黑客入侵的成本,同时也可以减少你的数据被爬取得分险。 jiami.png

2.mysql 用户权限限制,项目中的mysql账号不要使用,全量授权和外网开放。如果授权的话 单独授权给项目使用的数据库,且 单数授权 insert select update 项目简单所需的mysql功能。 sql.png

3.mysql 启动用户改成非root权限用户。

  • 回复于 2020-12-18 09:35 举报

    拿到数据库权限后,如何修改的 authorized_keys 文件呢?

    4 条回复
    回复于 2020-12-18 10:43 回复

    通过 Mysql select into outfile命令 ,相当于是写文件了

    回复于 2020-12-18 10:45 回复

    最主要的是 黑客拿到了 外网可访问的 mysql root用户权限了, 这个时候他基本上直接可以控制我的mysql了,还有其它很多方式,直接可以拿到 服务器的 执行权限的

    回复于 2020-12-18 11:22 回复

    mysql 默认有 secure_file_priv 的限制,难道 你手动把这个限制 关掉了?
    再说 select into outfile 不能覆盖现有文件,只能导出到一个 新文件

    回复于 2020-12-18 11:33 回复

    secure_file_priv 这个限制是开启的, 黑客通过plugin目录上传shell 文件也是可以的,但是我没有找到这个目录下存在shell文件,应该是被删掉了。

您需要登录后才可以回复。登录 | 立即注册