«

头疼,网站竟然被挂马了,我简单研究了一下

时间:2025-4-13 14:25     作者:独元殇     分类: 开发相关


[toc]

惊恐的发现

这几天没有怎么上网站,昨天下午打开电脑打开我的网站时,突然感觉有点不对劲。

我在浏览器地址栏输入 ccg ,浏览器一如既往地给我补全 ccgxk.com,然后我回车,网页在转动中,突然跳到了一个非法赌博网站,我以为我眼花了,然后重新打开我的网站,发现这次没有跳转。我反复试了几次,感觉应该是浏览器其他页面的跳转吧。

但是,我还是有点怀疑,因为我以前吃过亏。于是打开另一个浏览器,火狐浏览器,打开隐私界面,我去!真的跳转到赌博页面!!!我查看源代码,转了半天,感觉也没有什么不对劲,于是又重复了几次,发现每次都是第一次打开时,会跳转,再刷新就没了。

排查问题点

这是什么原理呢?我现在需要排除是网站文件的原因,亦或服务器解析的原因。

于是我将 index.php 修改后,发现不跳转了。那就是网站文件被篡改了。

然后我就使用 php 里的 exit('xxx'); 这种语句来逐行调试,之后我..... 我差点有点怀疑人生,我苦笑了一下,大叹气一口,那个跳转到赌博网站的坏坏代码,竟然就写在 jquery.min.3.5.1.js 外链里,而且是把 jqurey 的代码清空了,只留下它那个坏坏代码。

img

代码是意思是:加载网站后,检查一下 cookie 里有没有留下标记,如果没有(代表这是第一次打开这个页面),就跳转到非法网站且留下 cookie 。这样,如果我们不清理 cookie,那么只会看见这个非法网站一次。黑客认为这样可以神不知鬼不觉。

为什么不追加到 jqurey 原来的代码后面呢?为什么不直接写到模板文件的其他文件里呢?说实话,如果它是追加到 jq 原代码后面,我可能找破天都找不到问题出在哪里。

哈哈,如果是想做到神不知鬼不觉,追加 jq 后是对的,但清空 jq 就不对了:这样我会发现的。

其实,我在昨天下午感觉不对劲了,我突然发现 jQuery 一直不起作用,浏览器控制栏疯狂报 $ 之类的红色错误!但我只是简单将其归结为服务器网速的问题。没想到,黑客把我的 jqurey 文件清空了,然后将坏坏代码放到里面......

我连忙将 jq 更换成其他的可用的一个地址,网站于是不再跳转到非法网站。

文件是怎么被篡改的

网站被挂马,是正常的现象,我对这个篡改是什么时候怎么篡改的有点兴趣。更重要的是,我得排查这是不是 emlog 的问题,难道是 emlog 有 0day 了???

我打开我的网站的文件管理器,然后发现了有这一个不对劲的东西。当然还有我的被篡改的 jq

它是 根目录 下的 data

img

img

前天被修改的,而且里面空无一物。

很明显,这个文件不是我搞的。 data 文件夹是 前天下午一点半被动过的,而 被篡改的 jq 的修改时间也是 前天下午一点半,中间只差两分钟,很显然,这两个文件是有关联的。

如果没猜错,挂马文件就在 data 里。那到底是怎么被添加到我的网站的?FTP 还是 emlog 的 0day 漏洞?还是其他???

于是我就打开统计,发现那个时间点有一个 IP 访问过我的页面。

img

但我打开它的历史访问记录后,我傻眼了,这个 IP 这几天足足访问了我页面几百次....

img

而且时间均匀。

为了寻找答案,我把服务器的日志下载了下来。

重点排查 4-11 这一天。

img

在下午 1点半 这个作案时间点,我有两点发现:

  1. 这个北京的 IP 可能是巧合,是个机器人,叫“自动流水线”,每半小时就会来访问一次,意图未知。
  2. 这个 /data/ 文件夹里,原来有个 md5.php ,它可以篡改我的文件。它之所以叫 md5.php ,与 /data/ 一样,都是混淆名称,让人们以为这是个正常的文件。

作案完毕后,/data/ 被清空了。

img

那么,疑问来了,/data/ 文件夹是怎么进入我的文件里的?这是整个事件里最恐怖的事!

根据最近 4 天的日志。是 4-11 号凌晨 01:11 分的时候,/data/ 这个文件夹第一次被 GET 200 成功 ,而相关 IP 是当天凌晨 01:07 第一次访问我的网站,是百度链接跳转进来的,关键词是 site:ccgxk.com,可怕的是,我找不到任何的蛛丝马迹。三分钟的时间,只有 GET,然后我的网站里就有了 /data/ 的痕迹。

可能的原因

很遗憾,我目前只知道这些,黑客是个活人,他操作着几个 IP,他还有「欣赏阅读」过我的网站,但是他那天凌晨从百度外链进入我的页面后,直接在三分钟内,日志里完全没有记录的情况下,访问了 /data/md5.php 这个挂马程序,至于这个挂马程序是那个时候放入我的文件里的吗?我不知道,日志没有任何记录,那么....

那么真相有可能是:挂马程序很早就放入我的网站文件里的,那天凌晨,黑客只是访问了一下,确认他的挂马程序还在,于是就去睡觉了。下午,访问挂马程序,然后将 jq 篡改后,就删去挂马程序,然后事件结束。

可是我又将最近 2 年的日志都下载了下来!!! 搜索 /data/ 这个文件夹的 访问 记录,发现非 404 的有效记录,只有案发当天的哪个 2025-4-11,也就是说,挂马程序很可能就是在当天进入我的网站里的,而且是 99% 的可能性!

我一身冷汗!啊!这三分钟里到底发生了什么???

img

是的,故事的高潮就在这 三分钟!上面图中的这三分钟,我的网站就被攻陷了 (ಥ_ಥ) ,我研究过来研究过去,就是找不到关键点.... 到底是哪里出了问题!!!他有看过我的后台,发现进不去后,又退了出来,他一直停留在这个页面,然后... 然后... 然后... md5.php 这个可恶的文件就出现了。是 emlog 的 0day 还是服务器商的服务器的问题呢?这可怕的三分钟到底发生了什么???

img

攻陷后,黑客是放置了一个广告,说明这是一个专业黑客,不是玩着搞的,而是有任务!他要给他们的客户做宣传!说明他肯定不是只搞我一个人的网站,他还会搞其他人的。

那真相。真是个鬼了。我真的想不到。

如果黑客大哥巡回,能发现我的这篇文章,很希望能够解答一番,感激不尽!!!

答案找到了

【2025-4-15 号 更新】

在某个高质量网站上,我找到了一个针对我这个问题的回复,是一个大佬说的。向我透露出了黑暗的互联网深处的一些内容:

img

(没有多神秘,首先如果你确定对方动手之前用 site:ccgxk.com 进来的话,我估计你早就被挖掘过了,甚至shell已经拿到了,被发出去后,大家只是随机选择了在你那挂马,挂完你才发现的。此外可能性更大的是你的服务器被拿到了,列出了website,逐个看流量,然后对流量还不错的值得挂的挂一下。至于被黑的主体,可能是跨站,如果你是用虚机的话,一些小虚机很容易跨,如果是你的云服务器,要么是安全被渗透,要么就是非大厂的云主机,那种跟虚机一样,换个名字而已,虚拟化没有多神,权限隔离也只在能力范围内而已。包括那么流行的docker。
所以,根据自己的环境载台情况做排除,不要局限于系统本身。)

是的,就是这样!因为我以前有进过某主机商的服务器,拿到了 shell ,看着三千多个文件夹,我也有这种冲动,也想过这种事。就是这样!

标签: 原创 黑客 挂马

推荐阅读:

评论:
avatar
vioulo 21 小时前
博主还挺可爱,
avatar
Lvtu 7 天前
我公司网站JS前段时间全部被挂码了,发现后全部清理了一遍,不知有没有用?刚好服务器要到期了,准备换个服务器和程序重新折腾一个。。。
avatar
威言威语 9 天前
我多年前也被黑过,索性全部重装推倒重来。
avatar
w4j1e 12 天前
想起很多年前折腾渗透的时候,我们也会用 site inurl 等等语法通过搜索引擎来找漏洞,即 google hacking。
早些年使用开源程序有一个问题就是 hacker 可能比其他人更早发现漏洞,以及对程序的目录结构更加了解。
我们也常常把webshell无论大马小马写在一些具有迷惑性的文件中,比如 md5.php、skin.php、admin_back.php等等。
commentator
独元殇 11 天前
@w4j1e:google hacking  ,有意思。开源程序确实很危险,很容易爆出 0day 。
avatar
collick 12 天前
估计你的网站流量还算可观,这是认可了你啊!!! 哈哈
commentator
独元殇 12 天前
@collick:一天平均 30~50 个 ip,吊儿郎当的水平 ~
avatar
老派 12 天前
以前遇到过运营商劫持,用某个地方运营商的宽带,就会自动植入网页代码。跟这个症状差不多。后来投诉工信部都没有解决。
commentator
独元殇 12 天前
@老派:我去,直接 运营商劫持,那流量不得哗啦啦的大...
avatar
2broear 13 天前
没想到是主机厂的锅。。
commentator
独元殇 12 天前
@2broear:哈哈,应该大多数攻击都是主机的锅吧,主机厂一端一大锅,程序半天也搞不了几个。除非特别牛逼,流量大,有统战价值
avatar
obaby 14 天前
如果是这种业务能力,基本都是工具批量搞得。
哪怕是 vps 也不见得就是足够的安全,如果人工搞成本太高了,这些扫站的每天都扫。😂
commentator
独元殇 13 天前
@obaby:对于小网站,被黑,基本是两种情况:1. 专业级批量被黑     2.  黑客练手

第一种情况占大多数,且目的是蹭你的流量。第二种很罕见,一年都没有几次。第一种,只要你这个站没流量,在他们眼里就是站,那就不用担心。因为人家看不上。第二种,反正没几次,不在乎了。

综合来看,只要是个小人物,被黑就被黑了,重装系统即可,之后就没事了,没人在乎的嘿嘿(如果到有人在乎的程度,那就得花钱想办法了)
avatar
w 14 天前
真是不容易啊
avatar
灰常记忆 15 天前
套上CF很安全
commentator
独元殇 14 天前
@灰常记忆:cloudflare 不是验证是否是真人的那个吗?它还可以拦截 SQL 注入 XSS 这些吗?我去研究一下。
avatar
dousha 15 天前
183.x.x.x 应该是一个扫站机器人。`online_inspection_tracker` 这个 UA 刚好对应[这个项目](https://github.com/TheCoolQATeam/online-inspection-tracker/blob/1e110a85797bd74103a5d0ac17e89f5ad4075a36/online-server/src/main/java/com/onlines/onlineSaleTest/AutoCheckHtml.java#L64).

203.x.x.x 是一个香港联通的 IP. 走的联通国际网 (AS10099).

这两个 IP 地址都还挺有意思的,一个是北京移动 (AS56048); 另一个是香港联通 (AS10099). 看样子应该都是机房线路,实在不行就按 ASN 拉黑名单吧。毕竟来自机房 IP 的访问大多数都不是真人。

还有一个疑点:`/?action=cal` 这个访问现在会返回 404 页面,但是在你的日志里却是 200. 而且更有意思的是任何以 `cal` 开头的参数都会产生 404, 而别的不存在的参数则不会。看来雷埋了不止一层呢。
commentator
独元殇 14 天前
@dousha:一位大佬给我透露了一段话,我感觉我找到答案了,根据我多年前的某些经历,我确信这个就是真相!

(没有多神秘,首先如果你确定对方动手之前用site:ccgxk.com进来的话,我估计你早就被挖掘过了,甚至shell已经拿到了,被发出去后,大家只是随机选择了在你那挂马,挂完你才发现的。此外可能性更大的是你的服务器被拿到了,列出了website,逐个看流量,然后对流量还不错的值得挂的挂一下。至于被黑的主体,可能是跨站,如果你是用虚机的话,一些小虚机很容易跨,如果是你的云服务器,要么是安全被渗透,要么就是非大厂的云主机,那种跟虚机一样,换个名字而已,虚拟化没有多神,权限隔离也只在能力范围内而已。包括那么流行的docker。
所以,根据自己的环境载台情况做排除,不要局限于系统本身。)

没错,就是这样,能解释为什么以 site:ccgxk.com 进来,就是看 SEO,建立文件夹没有经过 HTTP,那就是直接用服务器搞的......  我这就是一个一年才几十块钱的虚拟主机,西部数码的。这难搞了。算了,先挂着将就吧。经常备份数据库就行,文件没什么。

至于 ?action=cal ,这个是 emlog 的日历 GET,这个我看了下系统文件,没有问题。github 真厉害,这都能找到。(*゚Д゚*) 
avatar
springwood 15 天前
我的 wp_config.php 文件(Wordpress)在 2012 年被黑过一次。然后平安了十几年,希望以后也不出问题。
commentator
独元殇 14 天前
@springwood:我这个是 虚拟主机,我感觉可能是有人开了上帝视角,然后直接在服务器的电脑上给我搞的。2012 年,好久远的日期 ~