首页 » Linux » 数据库 » 阅读文章

ecshop临时防止CC攻击(针对ecs_sessions表攻击)

2012-10-20 17:32 14544 1 发表评论
标签:

最近ECSHOP商城受到CC攻击 网站无法访问,还受到陌生QQ威胁,一看就是网络勒索。谷歌了一下各种解决办法无果,不过还是有一些有用的信息,这源于ECSHOP的session机制的漏洞。所有用户访问的session,不经过过滤都会被存入MYSQL.导致MYSQL表ecs_sessions撑满,从而使虚拟主机卡机和数据库爆错。

错误以下:MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error ) [1] => Array ( [sql] => INSERT INTO `ecshop`.`ecs_sessions` (sesskey, expiry, ip, data) VALUES (’13fc4bca679b1fd123f9e233ddfcb427′, ‘1350706456’, ‘218.15.164.131’, ‘a:0:{}’) ) [2] => Array ( [error] => The table ‘ecs_sessions’ is full ) [3] => Array ( [errno] => 1114 ) )

找到这原因就好办了,找到ecs_sessions表,发现就几个IP在每秒上百次的写入。  主机有硬防(服务器商的硬防也太垃圾了吧),用软防阻止了几个,还剩下一个IP( 111.13.8.146 )。ECSHOP的sessions里存入的IP是透过代理后的真实IP。看来真是小规模CC,ECSHOP也太脆弱了,被一台肉鸡就搞挂掉。

一两个IP就好办。打开/includes/cls_sessions.php 文件 找到133行   if ($ip == ”) 

把这里改成   if ($ip == ”||$ip == ‘111.13.8.146 ‘)  如果有多个IP 就多加几个 或符号 ||

或者修改成:

function insert_session()
{
if($this->db->getOne(“SELECT count(*) FROM “. $this->session_table.” WHERE ip='”.$this->_ip.”‘”)<5){//临时防止CC攻击
return $this->db->query(‘INSERT INTO ‘ . $this->session_table . ” (sesskey, expiry, ip, data) VALUES (‘” . $this->session_id . “‘, ‘”. $this->_time .”‘, ‘”. $this->_ip .”‘, ‘a:0:{}’)”);
}else{
return ”;
}
}

这样攻击者的IP就不会被写入数据库。大功告成。

现在的小黑鸟,就一台肉鸡也赶来威胁… 这也是黑客速成网站多起来的后果

本文地址:http://www.jwzzsw.com/archives/1218.html

文章作者:思悟
版权所有 © 转载时请以链接形式注明作者和原始出处!

评论 共1条 (RSS 2.0) 发表评论

  1. 手机流量网说道:

    真的很好,我被人搞了3天,两次爆表。用了这个方法,最起码能扛一段时间。

发表评论

联系我 Contact Me

回到页首