在 Firgt的博客发布,在萌社区转载
参考 :
https://linux.do/t/topic/1642281 -评论区
https://moe.one/thread-2162.htm -评论区
https://developer.aliyun.com/ask/583820
https://developer.aliyun.com/ask/23967
https://ask.csdn.net/questions/9232998
https://telegra.ph/%E8%BF%90%E8%90%A5%E5%95%86%E6%B5%81%E9%87%8F%E5%8A%AB%E6%8C%81-03-14
https://www.bt.cn/bbs/thread-117490-1-1.html
距离我在LINUX DO社区和萌社区转载我的博客文章使用CloudflareCDN却不幸遭到域名劫持,跳转到恶意网站,如何解决?已有三天
这三天内收到评论共40则,看到了许多小伙伴的经验和反馈,我决定总结一下这几天处理我的网站劫持的经验。
回想了一下这几天被劫持的经历,我对网站倒是无所谓,但是域名毕竟用的的是我亲戚的实名(不敢惹事)
当时想到招就是先关他几天站再说,不就俩步骤,先停小黄云,再停站点,回头再查查文件是不是有问题
结果把站点停了,小黄云关了,刷了一下网站页面
嗯?怎么又给我跳到9*窝了😅...
可以看一下比较完整的过程 : https://linux.do/t/topic/1642281 (后面确实是治标不治本呐)
只有参考意义哈😊,适用于轻度劫持(还没到DDoS的程度)
相信看到访问自己网站时还能在里面看到哮劫劫是什么感受吧🤗
先查查自己的网络有没有问题(确实有本地网络劫持的),服务器是不是野的,IDC是不是一帮神人在管😱
如是,先换😇
如果你用的是大厂的VPS的话,有法子让那帮人给你的服务器查一查有没有被侵入。
如果你用的是野生的VPS的话...先看看下面的步骤。
去电脑上抓是哪里要求跳转
要求跳转有很多方式啊,比如页面内直接跳转,响应头直接跳转,中间人直接跳转,本地浏览器插件、js跳转,更狠的有把DNS污染的
使用你的谷歌浏览器,开无痕模式,js要允许,其他插件全部关闭,然后打开开发者工具,
切到Network面板,之后在地址页输入你的网站,一般出现这种跳转,反正就是当他一跳转的时候,你就直接把那个刷新按钮关掉,然后看看面板里面出现了什么,勾 "Preserve log",先查301、302重定向有没有问题,看看他被跳转到哪个网站,之后再在面板内搜索框输入.js,看看有没有什么不属于你网站的js文件,
切到Sources面板:搜索页面中的window.location、location.href、eval(),把那一段或者那一行的代码
粘贴到记事本,
切到Elements面板:检查有没有什么不太对劲的iframe或异常脚本标签,
把这些全部都记下来,
如果你的知识水平/自学能力比较强的话,可以用一些工具抓,比如Fiddler、Charles、Wireshark、uBlock Origin、DNS Benchmark。
根据用户的描述是在访问的时候额外多了一个来自fazsv.xyz的host.js,并且在根据L站里佬Sycxyc和Eric-Terminal的测试,发现运行$ curl https://www.fazsv.xyz/host.js -H 'Referer: https://blog.firgt.cn/' -H 'User-Agent: Mozilla/5.0 (Linux; Android 14; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.86 Mobile Safari/537.36'会有20%左右的概率跳转黄色网站
curl -H ‘Cache-Control: no-cache’ https://君の域名/ -H ‘User-Agent: Android’ -s | grep 查询内的html内容
你也可以试试使用模仿上面的代码来使用curl和g r e p查找一下会不会出现恶意的代码,还可以把域名替换成原站,看看是CDN出了问题,还是VPS出了问题
利用排除法,有理由怀疑是在我的VPS、CDN、用户层面出问题
这个时候就应该扫一下你的VPS了,既然这个是一个外来的js,那么就说明可能有文件引用了这个js,或者nginx中动态配置的要引用这个js(你网站被注入或侵入),如果你能查到服务器log可以保证你的服务器牢牢掌握在自己手上的话,去查一下js,替换掉js、不用野鸡cdn的js、把js从官网上下载下来再扫一遍,再把网站的引用链接导回站内,还有一种更简单的就是在Cloudflare CDN开启脚本监控
如果你的网站被注入或者侵入,使用maldet等工具扫描或者使用g r e p命令行查找文件
如果你实在是认为你的服务器已经不可救药了,最简单的方法就是:
备份一些数据;
重装服务器系统
重新安装正版面板, 不要使用弱密码
创建一个静态站点, 解析域名
(上述都可以不需要,直接换大厂的得了😧)
直接创建一个空页面,可以试试重新安装nginx,如果这个时候还有问题,那就说明你的CDN配置有问题(比如CDN网站账号密码泄露了,被大哥开后门😅)
改掉账密之后去详查相关的网站跳转规则
(以Cloudflare举例,选择你的域名之后去点安全→安全规则,然后再去查规则→概述/设置)把这些删了之后再回来看看
如果还有的话...
那你应该检查下面的选项你有没有配置了 :
下面是我使用Argon主题的Wordpress博客的安全响应头配置,Nginx配置文件中的 server 块内任意空白处:
add_header Content-Security-Policy "default-src 'self' https://v1.hitokoto.cn https://hitokoto.cn; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: *; frame-src 'self'; child-src 'self'; object-src 'self'; frame-ancestors 'self'; base-uri 'self'; form-action 'self'" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=(), notifications=(), popup=(), fullscreen=(), autoplay=()" always;
配置之后记得使用Security Headers网站检查
只要你看了这上面的设置,那么基本上不会有任何问题了🤗
当然cf还有另外一个地方可以配置(感谢雾小蒜的提醒)
至此大功告成
如果你有建议或要反馈问题,可以联系我
作者:FirgtZhong