其实我网站中马应该可以追朔到去年的八月份,当时好像是在 xx 平台有用户给我留言说网站上的游戏进不去了 (五子棋多人联机)。于是我打开一看发现首页被静态化了,为了快速能访问就重新提交了入口文件也没继续理会。
直到后来,隔一断时间就又有人留言说打不开,我才开始排查起因了。进入项目代码里,我发现有些文件被修改了。另一方面呢,网站的收录也在不断变少,甚至搜索出来的词和描述都变了,有赌博的,也有体育,迷彩之类的,我猜测应该是中马了。
但是有一点想不通,这人是不是闲得无聊。网站上除了技术类文章,还有就是一些 H5 单机游戏,资源城和多人联机游戏由于没有其他收入支撑,到期后就关闭了。剩下的就是一些免费使用的小工具了,有必要在我网站上挂马吗,带着这个疑问就全都排查了一下代码,终于找到了两个文件能解释这个问题了。
他是直接拿静态化的首页加了一些脚本放在了入口文件上,导致我导航栏的跳转全部失效,以下就是我截取的部分文件代码,再说明一下里面放了什么。
也就是标题,描述和关键词都改了,就是上面的模样经过 ascii 编码,可以通过脚本之家的工具 ascii 转中文查看。他改的大概都是一些体育,迷彩之类的词,这也就解释了为什么网站的搜索词都变了,因为没有跳转收录也就变少了。
Js 主要是下面那一长串数字,是 unicode 编码了。我一个数字一个数字转完之后,发现原来是一个 Js 脚本引入,最后 ducument.write 就是每次进入都引入脚本,脚本如下。
原来是给他的网站做引流,所以我也打开了他网站,就是下面这个。
这个文件就是他们挂上去的,可能是之前通过留言表单的 bug 提交的,文件名 dama.php,网络上搜索应该就可以了解到,代码如下:
\x62\x61\x73\x65\x36\x34\x5f\x64\x65\x63\x6f\x64\x65 像这个是十六进制,可以通过 JS 的 console.log 或 alert 显示出来,其实就是 base64_deocde 函数名,而 \nc\n3\nR\ny\nX\n3\nJ\nv\nd\nD\nE\nz\n 同样打印出来是如下一串换行的字母,所以就是 base64_decode () 那串,解码后是一个 str_rot13 () 函数
所以那一串长长的就是被 ROT13 编码了,可以通过以下方式修改,还原出那一串是些什么东西,也可以把 dama.php 在本地项目里直接运行。
运行后的样子如下,登陆密码就是他代码里的那个 $password, 其实大概猜的到是 Admin 经过 md5 的,登陆后如下。
登陆后,就可以看到,自己网站就如同裸奔,他可以任意的提交,修改,删除文件,还可以对目录或文件提权,扫描,执行命令等等功能。最后通过我修改后,近几日网站没有再出现之前的问题了。以上文件仅作提示,所以关于如何修改和那个大马如何使用就不做介绍了。