微信小程序被黑客攻击痕迹查找及防御

起因:

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

rGGObj.jpg

寻找入侵路径:

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

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

rGGjVs.png

rGGqKg.png

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

rGGvan.png>

黑客利用 sqlmap 注入工具对 search 接口成功 sql 注入,通过 mysql load_file 函数成功读取配置文件

,成功获取数据库的账号密码。至此黑客完全拿到了数据库的权限。

防范:

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

rGGLrQ.png

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

  1. sql 语句不要写原生,尽量使用框架的 orm, 框架会转义
  2. 检测请求中是否夹带 select union 的字段,sql 注入会使用到这些字段测试 MySQL 是否存在以下注入漏洞
    B:Boolean-based-blind (布尔型型注入)
    E:Error-based (报错型注入)
    U:Union query-based (联合注入)
    S:Starked queries (通过 sqlmap 读取文件系统、操作系统、注册表必须 使用该参数,可多语句查询注入)
    T:Time-based blind (基于时间延迟注入)

5. 因为框架有的时候也会有漏洞,最好关注一下官网的安全通知,看自己的版本是否已存在漏洞

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 9

search 接口怎么写的 :flushed:

4年前 评论
jijiniaoa (楼主) 4年前

其实我是来看话术的 :wink:

4年前 评论
jijiniaoa (楼主) 4年前

laravel 不是会处理 sql 字符串吗,不会是用原生写的吧。。

4年前 评论
jijiniaoa (楼主) 4年前

是不是 账号密码登陆就能防止了? like 的 sql 注入怎么解决?望指点

4年前 评论
jijiniaoa (楼主) 4年前
jijiniaoa (楼主) 4年前

如果可以操作 root,那就是被提权了。 1. 有没有用 Reids,如果有控制好 Redis 的写权限。 2. 部署小程序项目接口的用户不能用 root。 3. 控制好 PHP 的 disable_functions,如果必要开启危险函数一定检查好使用,就是内容外部不可控。 4. 查看系统内核,如果内核版本过低一定要升级。这一步跟 Redis 写权限一样,都是为了防止被入侵后的提权。

4年前 评论

伪造你的 token 就这么简单!jwt,必须加密,你看看你的用户登录,是不是 JWT

4年前 评论
lufeijun1234

安全无小事啊

4年前 评论

没那么复杂... 手写 sql 又如何,用参数绑定就行了.

4年前 评论

file

电脑打开就这样了?

4年前 评论
jijiniaoa (楼主) 4年前