网站遭劫持了,被注入恶意代码,请教各位大佬如何清除并再次预防?

2024-07-29 16:34:19 +08:00
 black9

前两天用户反馈移动端网页访问不正常,一查看发现,特定的路由会触发跳转到黄色广告地址。 如: 网址:https://www.网址.com/edu 在 pc 端正常访问,但在移动端就会被跳转到其他网站上。 如修改路由为/edu123也会跳转,修改为/ed则不会。初步判断关键字为edu

进行排查:

  1. dns污染
    网站都是使用了https,排除
  2. nginx
    通过查看日志以及转发记录,发现/edu 被转发到了 php-cgi ,排除
  3. php
    在排查时在看见 v2 中有人遇到类似的问题,于是照着大佬的思路排查,结果发现每个站都被添加了一个 pass.php 文件。 根据代码内容搜索,是用Godzilla生成的木马脚本。对网络安全这个块不太懂,有没有大佬知道怎么切底清除这个脚本带来的影响?

初步处理尝试:

清除每个站点下的 pass.php 文件,以及相同时间被创建的一些文件。检查 php.ini 文件以及 so 文件是否被修改。没有发现可疑配置后,重启 php 服务再次访问。 结果还是一样会跳转到其他网站。。。

继续排查:

查看 php 慢日志时,发现请求网页时有执行file_get_contents函数,于是循着文件路径查看,找到了罪魁祸首,项目composer下的autoload_real.php被植入了一行代码,删除掉后网址恢复正常。

疑问请求:

请问这是利用了 composer 的漏洞吗? composer 的版本是 2.3.7? 然后被植入 pass.php 的文件是不是宝塔的漏洞导致被上传的?因为我看到这些文件都是 www 宝塔用户上传的。

5999 次点击
所在节点    PHP
49 条回复
black9
2024-07-29 20:50:08 +08:00
@helionzzz 感谢提醒
black9
2024-07-29 20:50:27 +08:00
@jenson47 好的 感谢
jiangaimin
2024-07-29 23:15:28 +08:00
如果你用的是宝塔,一般不会是服务器的漏洞。我感觉是你的网站程序有漏洞。被人 getshell 了。我根据你截图的 composer 截图,猜测你网站用的是 thinkphp 框架。
这种情况 第一:要先清马;第二:检查自己网站漏洞,然后修复。第三:如果你服务器上有别的站点,也有可能是从旁站跨站过来的。
如果单纯的清马,不找到漏洞原因,还会被人搞的。可以根据马的创建时间,或修改时间,查找那个时间段的日志,然后看看访问了哪些你网站的 url ,来检查对方是怎么搞到 shell 的。
black9
2024-07-29 23:35:40 +08:00
@jiangaimin 受教了 🙏 用的就是 thinkphp 已经清马了 我尝试一下查找漏洞
iminto
2024-07-30 00:08:01 +08:00
PHP 养活了国内一大堆黑客。。。

这一眼就是 php 框架漏洞。

宝塔虽然烂,但也不至于这么脆,找 Linux 的问题更是找错了方向。
dorothyREN
2024-07-30 00:22:11 +08:00
你们可能需要的是一个运维
cctv180
2024-07-30 01:14:06 +08:00
@black9 #14 具体我也不清楚,跳转去博彩了,可能是帮忙搬站的人干的,因为我恢复几次都再次被黑。后来我换掉连宝塔后台入口一起换掉就正常了。所以不是 PbootCMS 本身的原因。宝塔后台只给商家帮忙搬站。
dzdh
2024-07-30 03:42:45 +08:00
fpm 以非 root 用户运行屏蔽 chmod 、chown 权限。web 目录除必要的目录外其他目录不允许写入。上传目录禁止运行 php 脚本。
dj721xHiAvbL11n0
2024-07-30 08:51:44 +08:00
要不你试试 1panel?
yulgang
2024-07-30 09:02:47 +08:00
一键全站挂马
网站可能存在上传漏洞。非必要目录只读,文件读写目录去掉执行权限
hewiefsociety
2024-07-30 09:05:24 +08:00
花钱请人..比如我 😄
ken678
2024-07-30 09:12:10 +08:00
大概率是框架问题,和 composer 无关
xdzhang
2024-07-30 09:45:54 +08:00
阿里云有个 waf2.0 ,比较便宜,至少过滤规则啥的比较省心。
abccccabc
2024-07-30 10:02:03 +08:00
楼主,找到 thinkphp 的漏洞了没?我的站用 thinkphp5.0.24 也被改过文件,把我惹急了,直接把上传的地方取消了。消停了好久,最近,我的 aaPanel 挂了,起不来了。不晓得是不是黑客搞的鬼。还安装了一个 dzx3.4 ,不晓得是不是这个的问题。
JensenQian
2024-07-30 10:30:56 +08:00
宝塔啊
那正常
9A0DIP9kgH1O4wjR
2024-07-30 10:39:58 +08:00
定期升级框架,关注框架的安全修复日志,及时更新
stew5566
2024-07-30 10:41:40 +08:00
@pikko #1 小白求解,如果把 ssh 端口从 22 换成其他端口有用吗
ladypxy
2024-07-30 10:56:58 +08:00
首先开源代码,要及时更新。

php 网站,首先要把所有 php 文件权限设置成只读+运行。然后临时目录可以写但是不允许执行。
同时可以 nginx 里设置 php 白名单,即只有白名单的文件可以运行解析,其余的一概返回 444 。
lyxxxh2
2024-07-30 11:01:53 +08:00
作为一个 6phper,宝塔很正常啊。

自己部署? 在搞笑吗
先不说时间成本,就说安全。
宝塔默认生产环境,eval system 函数都给你禁了,.user.ini 也帮你设置好了。
人家就是专门做这个的,这么大用户量,他不知道安全是什么?
对于小白,自己部署会配置吗

我用了几年宝塔,也没见过被入侵。
composer 漏洞,要是有这个,早就暴雷了,就像之前 tp 上传漏洞暴雷。
autoload_real.php 每次请求都会加载,又隐蔽,确实是放马的好位置。

至于漏洞,估代码的问题,很大可能是上传问题。
1. 源头验证:校验后缀。 (校验 mine-type 没用,随便绕 后缀现在似乎不行了)
2. 不给执行: 上传保存路径是 public,别人访问就可以直接执行,或者直接换成云存储。
当然不排除服务器被攻克的可能。
BeforeTooLate
2024-07-30 11:09:30 +08:00
@lyxxxh2 作为 6phper 我倒觉得还用宝塔是不正常的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1060934

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX