欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

dedecms DDOS挂马漏洞的解决方法

shiping1 的头像

dedecms DDOS挂马漏洞的解决方法

 

到年底了,不知不觉过的太快了,最近俺的几个网站受到了机房的严重警告,让我意想不到的是,机房那面竟然说我的网站被挂马了,网站流量总是不断的往外发包,怎么也想不通,网站都稳定运行了好几年了,从没遇到过被挂马这一说,于是我整整工作了三天三夜终于把问题的根源找到了,也是本文的标题 “dedecms ddos挂马漏洞的解决办法”所要讲的。下面我给大家详细的介绍一下我的解决办法,希望遇到这种情况的站长童鞋们,遇到这种问题也能迎刃而解。

 

 

Dedecms是国内最有名的php开源系统,也是我用的最多的一个系统,简单实用稳定是我使用了多年的理由,正因为dedecms的开源,也导致了很多黑客盯上了这个程序,没日没夜的研究dedecms的漏洞,也就在最近终于爆发了,很多dedecms的网站都被挂马了,有的被机房警告,重的被机房强行关站,数不胜数。我想说的是既然问题出现了我们就要去解决,只有解决了,你的网站才会长期稳定发展下去。 首先从问题的特征跟大家一一介绍。

 

被挂马的特征:打开自己的网站首页,用查看源代码的方式会发现自己的网站被增加了许许多多的黑链代码,黑链代码是最简单也最能让站长们看出来的,他无非就是友情链接的代码。

再一个特征就是打开网站会被360安全提示网站存在挂马风险,这一类型的挂马代码,一般是框架代码或者是js代码或者是图片代码,还有个特征就是网站会突然打不开或者打开慢,检查流量会发现自己占用了许多流量,也就是说流量往外发包的特征,也叫UDP 流量发包攻击。以上就是dedecms被挂马的大体特征,下面就讲点实际的,网站被挂马的解决办法和预防措施。

 

首先把网站程序的代码下载到自己的本地,用sinesafe木马清除工具检测了一下,发现data/cache/目录下有许多脚本木马,打开木马脚本发现了一些不认识的PHP代码,把代码放到sinesafe木马工具里深度剖析了一下发现了木马特征,代码如下:

 

<?php

set_time_limit(984918);

$host = $_GET['host'];

$port = $_GET['port'];

$exec_time = $_GET['time'];

$Sendlen = 65535;

$packets = 0;

}

echo "================================================<br>";

echo "  <font color=blue>www.phpddos.com<br>";

echo "  SYN Flood 模块<br>";

echo "  作者:ybhacker<br>";

echo "  警告:本程序带有攻击性,仅供安全研究与教学之用,风险自负!</font><br>";

echo "================================================<br><br>";

echo "  攻击包总数:<font color=Red><span class=\"text\">".$packets." 个数据包</span><br><br></font>";

echo " 攻击总流量:<font color=Red><span class=\"text\">".round(($packets*65*8)/(1024*1024),2)." Mbps</span><br><br></font>";

echo "  攻击总字节:<font color=Red><span class=\"text\">".time('h:i:s')." 字节</span><br><br></font>";

echo "Packet complete at ".time('h:i:s')." with $packets (" .round(($packets*65*8)/(1024*1024),2). " Mbps) packets averaging ". round($packets/$exec_time, 2) . " packets/s \n";

?>

 

我在网上查到这是udp流量攻击的php脚本木马,这个木马就是可以以网站脚本的权限运行就可以达到ddos 流量攻击的效果。无需服务器的权限,这我才明白过来为什么机房说我网站一直都在往外发包,运行这个脚本的网站都会打开缓慢,我的网站也在其中。既然找到了问题所在,那我就要开刀了,点击清除木马代码,一下全都给清除了。Data/cache/目录下已经没有陌生的文件名了。最后总结了一下分五个解决和预防措施。

 

1 dedecms目录的安全设置:data/cache/  templets uploads 目录设置可读写 ,

( templets uploads 这两个目录也应该是不可写吧设成755吧;但是文件夹要可执行 ,程序才能够进到里面读取文件 )

不可执行权限。include、member、plus设置可读 可执行 不可写权限,由于dedecms并没有任何地方使用存储的过程,因此可以禁用 FILE、EXECUTE 等执行存储过程或文件操作的权限。

1)把data目录放到外面 (实在不行的话 就是data/cache/ 就是可读写 不可执行权限 data下面的common.inc.php是644权限)

1).htaccess是 644权限

1、虽然对 install 目录已经进行了严格处理, 但为了安全起见,我们依然建议把它删除;
2、不要对网站直接使用MySQL root用户的权限,给每个网站设置独立的MySQL用户帐号,许可权限为:
SELECT, INSERT , UPDATE , DELETE,CREATE , DROP , INDEX , ALTER , CREATE TEMPORARY TABLES
由于DEDE并没有任何地方使用存储过程,因此务必禁用 FILE、EXECUTE 等执行存储过程或文件操作的权限。
假设我们建立的数据库名为centosmysql,数据库用户为centosmysql,密码为123456,具体设置命令如下:

  1. mysql -uroot -p
  2. mysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES ON centossql.* TO centossql@localhost IDENTIFIED BY 123456;
  3. mysql>FLUSH PRIVILEGES;
  4. mysql>exit

 

2网站程序安全:这也是最根本的防范,如果是虚拟空间建议找专业做网站安全维护的来给做网站程序的安全,只有网站安全了才能带来安全稳定的客户源。

 

3程序的更新: 打开dedecms后台看看有没有更新的补丁,如果有请及时的更新和打补丁,如果自己的版本很老了,我建议重新安装新的版本,因为新的版本都是比较安全的,有很多地方和老版本的不一样。

 

4后台管理目录:dedecms后台管理目录一般默认是dedecms,很多站长从来不在乎这个后台地址,我很负责任的告诉大家,管理的目录地址如果是默认的那你被挂马的几率那就是%100.建议把目录的名字改成一些数字加字母符号组合的名字。

 

5 FTP 网站管理密码: FTP密码和网站管理密码建议经常修改,因为很多黑客都在用暴力破解密码,把密码改的复杂些尽量掺杂着特殊符合和字母。

 

6)php.ini中禁用函数

掀开php.ini寻到disable_functions=这项,然后把反面改成 gzinflate,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,
proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,
popepassthru,stream_socket_server,fsocket,fsockopen,eval     将allow_url_fopen = Off,再寻到extension=php_sockets.dll这项,把前面加上分号,原来屏蔽掉这项。 

其实这里eval是无法禁用的 因为eval只是一种语言结构,并不是函数

7)把会员功能关闭

 

8) 设htaccess的安全

AddDefaultCharset UTF-8


<IfModule mod_rewrite.c>

RewriteEngine On
RewriteCond %{HTTP_HOST} ^ukart086.com$ [NC]
RewriteRule ^(.*)$ http://www.ukart086.com/$1 [R=301,L]

RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|iphone|ipod|opera mobile|palmos|webos" [NC]

RewriteRule ^(.*)$ http://3g.ukart086.com/ [NC,R=301]

#给在线咨询做个伪静态
RewriteRule TEL:400-6363-098$ /php/zixunbaoming.php

RewriteCond % !^$  
RewriteRule uploads/(.*).(php)$ – [F]  
RewriteRule data/(.*).(php)$ – [F]  
RewriteRule templets/(.*).(php)$ – [F]
RewriteRule plus/(.*).(php)$ – [F]
RewriteRule member/(.*).(php)$ – [F]
RewriteRule special/(.*).(php)$ – [F]
RewriteRule include/(.*).(php)$ – [F]
RewriteRule data/(.*).(php)$ – [F]
RewriteRule a/(.*).(php)$ – [F]
RewriteRule images/(.*).(php)$ – [F]
</IfModule>

以上就是我的解决办法和预防措施,道高一尺魔高一丈,其实解决问题是很快乐的,当你解决掉问题的那一瞬间,其实都不算什么只是小事而已,态度决定了一切。

本文章内容来源 服务器安全www.sinesafe.cn A5首发欢迎转载,转载请注明作者和出处。谢谢!

 

普通分类: