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

52 天前
 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 宝塔用户上传的。

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

这一眼就是 php 框架漏洞。

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

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

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

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

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

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

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

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

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

© 2021 V2EX