正在加载...

记一次网站被恶意JS注入

建站那些事  ·  2025-08-24

预计阅读时间: 10.0 分钟
1998 字4 图250 字/分
⚠️
本文有一定时效性·1个月前更新
最后更新: 2025年08月25日

事发突然

从昨天晚上开始,我的网站似乎被劫持了,手机端进入时会被重定向到一个黄色网站,但电脑端和MAC均不会被跳转

起初怀疑是DNS劫持,但很快排除掉了

使用F12进行审查和性能分析,发现了一个可疑的javascript,性能消耗巨大,虽然名为nodejs,但是因为网站的主题 插件 大部分都是我自己开发的

有没有用这玩意我心理还是很有数的

image.png

又在页面里看到了这个script似乎是被嵌入了head部分里

image.png

但是打开header.php并没有找到相关的字样

问题来了

它在哪?

起初我怀疑是代码被混淆了,于是用grep搜遍了eval decode这样的字样

grep -Rni "eval(" ./
grep -Rni "unescape(" ./
grep -Rni "base64" ./
grep -Rni "document.write" ./

并没有可疑的项目

又怀疑是我的数据库被人恶意插入代码了

mysqldump -u root -p 数据库名 > dump.sql

仍然没有搜到相关的可疑字样

又开始怀疑是PHP配置被恶意篡改了

# 检查全局PHP配置文件
php -i | grep -E "(auto_prepend_file|auto_append_file)"
cat /etc/php/*/apache2/php.ini | grep -E "(auto_prepend_file|auto_append_file)"
cat /etc/php/*/fpm/php.ini | grep -E "(auto_prepend_file|auto_append_file)"
# 检查是否有全局包含的恶意文件
find /tmp /var/tmp /dev/shm -name "*.php" -mtime -30

仍然没有相关的可能的恶意代码

使用curl指令访问网站,仍然查到了被恶意注入的js

curl -H "User-Agent: Mozilla/5.0" https://leeinx.com | grep pian

至少现在能确定是被动态注入了

因为我使用了宝塔的WAF,理论上不可能出现这样的问题,怀疑是宝塔WAF被感染了

# 检查WAF配置文件
find /www/server/btwaf -name "*.lua" -exec grep -l "pianzw" {} \; 2>/dev/null
find /www/server/btwaf -name "*.conf" -exec grep -l "pianzw" {} \; 2>/dev/null

# 检查WAF数据库
sqlite3 /www/server/btwaf/config/config.db "SELECT * FROM rules WHERE content LIKE '%pianzw%';" 2>/dev/null

# 检查WAF模块
ls -la /www/server/btwaf/inc/

依然没有可疑的结果


原来是你

事情的转折在于

我的服务器内的所有网站均被插入了恶意代码

其中既包括PHP项目,也包括反向代理项目

那问题就明了一些了

大概率是nginx的问题

迅速的检验了一下nginx的MD5

image.png

原来是被大手子搞后门了

彻底卸载了nginx后又重装了一下,发现恶意代码已经没有了

5b1af1c4c2be168a1ce2a93e8268b53d.png

又回到干干净净的网站了

评论
正在加载验证组件