前言
2021年3月5日半夜12点【腾讯云】发来了以下短信,尊敬的用户,您的服务器172.21.0.5(腾讯云账号ID:xxxxxx 账号昵称:xxxx 地域:北京)检测到存在未处理的31415926.jsp木马文件。您的服务器疑似被黑客入侵,请及时登录主机安全控制台处理相关安全事件,并开通主机安全专业版防护。
缘由
之前本来想做一个图床,做着做着就做成了一个后台权限管理系统,然后就开源了,再然后就搞了一个演示环境,再再然后就被挂马了,挂马那会我是在睡梦中的!
唉,现在的年轻人真的不讲武德,趁我熟睡偷袭我,真的是大意了!
挂马
此马是不是看起来特别简陋,有没有一种上古时代的感觉,打开页面其实就是用JSP撸了一个简单文件管理系统。
各种文件增删查改都可以,还可以执行脚本命令,项目中的配置文件参数也是一览无余,顿时一身冷汗直冒,这特么要是生产环境,自行脑补吧!
防护
这次还好,貌似并没有做什么破坏,但下次被偷袭的话可能就没那么幸运了!下面由非专业人士总结了一些防护措施!
文件上传漏洞,上传文件一定要做好前后端验证,不要跟撸主学,为了省事只做了前端验证,而恶意攻击者完全可以修改表单去掉JS校验!
配置文件中除了数据库配置尽量不要写死一些重要的参数,数据库必须做白名单验证!
不要用 root 启动服务!不要用 root 启动服务!不要用 root 启动服务!重要的事情说三遍!
代理层面禁止对应后缀访问,至少能防护一些简单的木马:
location ~* \.(jsp|sh)$ {
deny all;
}
代理层做动静分离,静态文件请求直接走 Nginx 服务,防止木马伪装成图片!
上传的文件尽量不要存放到本地服务,如果有条件放到云存储!
容器 Tomcat 后台管理漏洞,默认用户名及密码登录后可直接上传 war文件获取webshell!
弱口令漏洞,建议使用数字+字符+特殊字符做密码,数据库不要明文存储,并且用MD5进行多重加盐加密!
禁止页面抛出异常信息,有经验的入侵者,可以从JSP程序的异常中获取很多信息,比如程序的部分架构、程序的物理路径、SQL注入爆出来的信息等!
SQL注入漏洞,在数据库访问层中禁止使用+来拼接SQL语句!
强烈建议增加服务的访问日志,记录来访者的 IP ,传递参数,对后台操作用户建立日志,记录其操作内容。完善的日志记录可以帮助你发现潜在的危险,找到已经发生的问题!
好了,我就知道这么多了,让专业的人干专业的事,必要还是装个杀毒软件吧在服务器上!
感谢
最后,感谢盆友不杀之恩,服务器还是那个服务器,项目还是那个项目,我觉得大概率是关注了公众号的小伙伴,因为撸主开启了登录关注验证,如果这位盆友看到给点个在看吧再走吧!
最后的最后,如果想学习 JSP 管理系统的的可以私聊撸主,单独发你,这种东西就不瞎鸡儿传播了!