免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2208 | 回复: 8
打印 上一主题 下一主题

求助:网站被人非法进入。求帮助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-13 07:57 |只看该作者 |倒序浏览
有一个网站,会员制的。主页就是一个登陆框。不登陆什么也看不见。环境是 ubuntu+mysql+php+apache
PHP代码全部是我自己写的。用的是qeephp框架

在7号,被人进入过一次。当晚我系统所有的东西全部检查过。
服务器只提供网页服务。另外就是数据库的复制功能。把mysql从机房复制到办公室

更改服务器登陆密码,设置iptables只开放22,80与3306端口,同时设置为公钥登陆。
更改了mysql数据库的登陆密码。
更改了网站管理员的账号与密码。

上述密码全部为大写+小写+数字。

今天早上又发现人家进来了。通过apache及网站本身的会员登陆记录相印证发现就是直接用管理员账号一次性地登陆进来。

追求帮助。现在真的慌神了。不知道怎么办。
漏洞在哪里?我需要提供什么东西?
请愿帮我的朋友回贴或者加我QQ382646887,

重谢!!!

论坛徽章:
0
2 [报告]
发表于 2010-03-13 08:33 |只看该作者
在服务器上执行 last -a 查看登陆历史没有异常。

只有一个账号登陆过。并且登陆的IP都是我们办公室的。

查看/var/log/auth.log也是如此。没有什么非法登陆的

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
3 [报告]
发表于 2010-03-13 09:08 |只看该作者
检查下apache的log,看看是否有注入,另外,看看他是否有上传什么后门网页

论坛徽章:
0
4 [报告]
发表于 2010-03-13 09:16 |只看该作者
楼上,您好。文件我检查过。没有上传的文件。

apache的log我也看过,没有什么特别的地方。

可否加我QQ,我将日志传给您?

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
5 [报告]
发表于 2010-03-13 09:28 |只看该作者
关注

论坛徽章:
0
6 [报告]
发表于 2010-03-13 09:30 |只看该作者
帮帮我咯

论坛徽章:
0
7 [报告]
发表于 2010-03-13 10:17 |只看该作者
可否提供源码,帮你看下。

论坛徽章:
0
8 [报告]
发表于 2010-03-13 10:24 |只看该作者
需要什么源码?
是PHP登陆的代码吗?

我贴在这里如果你需要其它什么日志或者什么的。请加我QQ好吗?谢谢了

  1.         /*
  2.          * //登陆检测
  3.          */
  4.         function actionCheckLogin()
  5.         {
  6.         if(@$_SESSION['errorCount']){
  7.                 $_SESSION['errorCount']        += 1;
  8.         }else {
  9.                 $_SESSION['errorCount']        = 1;
  10.         }
  11.                 $json_data['status'] = 'no';
  12.         
  13.                 //检测是否为禁止IP  
  14.                 $ipp = $_SERVER['REMOTE_ADDR'];
  15.                 $eret = "^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$";
  16.         if(!eregi($eret, $ipp))
  17.         {
  18.                 return $this->_redirectmessage(
  19.                         "登陆错误",
  20.                         "系统无法获取你的IP,警告!登陆失败五次将锁IP,当前您已出错  ".$_SESSION['errorCount'].' 次',
  21.                 url("users/login")
  22.                 );
  23.         }
  24.                 $ip = Ip::find('ip=?', $ipp)->getOne();
  25.         if($ip->ip)
  26.         {
  27.             $json_data['status'] = 'yes';
  28.             $json_data['username'] = "'禁止访问'";
  29.             return json_encode($json_data);
  30.         }
  31.         
  32.         if( $this->_context->isPOST() )
  33.                 {
  34.             try{                 
  35.                 //使用 acluser 插件的 validateLogin() 方法验证登录并取得有效的 user 对象
  36.                 $user = User::meta()->validateLogin($this->_context->username, $this->_context->password);
  37.                 //将登录用户的信息存入 SESSION,以便应用程序记住用户的登录状态
  38.                 if($user->ispass)
  39.                 {
  40.                     //2009-4-24更改,将原来的SESSION方式更改为数据库
  41.                     $key = Q::Ini('appini/key');
  42.                     $sessionid = md5(session_id().$key);
  43.                     //存入cookie
  44.                     setcookie('sessionId', $sessionid);
  45.                     $session = Session::find('sessionid=?', $sessionid)->getOne();
  46.                     if($session->sessionid)
  47.                     {   //如果session数据表有这个记录,则执行update
  48.                         $session->save();
  49.                     }else{
  50.                         //没有这个记录的话将新的登陆信息存放进去以供查询
  51.                         $roles = NULL;
  52.                         foreach($user->roles as $list)
  53.                         {
  54.                             $roles .= $list->name.",";
  55.                         }
  56.                         $date = array(
  57.                             'sessionid' => $sessionid,
  58.                             'username'  => $user->username,
  59.                             'id'        => $user->user_id,
  60.                             'roles'     => substr($roles, 0, -1),
  61.                         );
  62.                         $session = new Session($date);
  63.                         $session->save();
  64.                     }
  65.                     $_SESSION['errorCount'] = 0;
  66.                     $usernew = User::find('user_id=?', $user->user_id)->getOne();
  67.                     $logData = array(
  68.                             'title'        => '用户 '.$usernew->username.' 登陆成功,IP:'.$usernew->login_ip,
  69.                     );
  70.                     $log = new Jfblog($logData);
  71.                     $log->save();
  72.                     // 登录成功后,重定向浏览器
  73.                     return $this->_redirect(url("news/admin"));
  74.                 }else{
  75.                     return $this->_redirectmessage("登陆错误", "用户 {$this->_context->username} 还没有得到管理员的批准", url("users/login"));
  76.                 }
  77.             }
  78.             catch (AclUser_UsernameNotFoundException $ex){
  79.                 if($_SESSION['errorCount'] > 5)
  80.                 {
  81.                     $data = array('ip' => $_SERVER['REMOTE_ADDR']);
  82.                     $ip = new Ip($data);
  83.                     $ip->save();
  84.                 }
  85.                 return $this->_redirectmessage("登陆错误", "您输入的用户名 {$this->_context->username} 不存在.警告!登陆失败五次将锁IP,当前您已出错 ".$_SESSION['errorCount'].' 次', url("users/login"));
  86.             }
  87.             catch (AclUser_WrongPasswordException $ex) {
  88.                 if($_SESSION['errorCount'] > 5)
  89.                 {
  90.                     $data = array('ip' => $_SERVER['REMOTE_ADDR'] );
  91.                     $ip = new Ip($data);
  92.                     $ip->save();
  93.                 }
  94.                 $json_data['username'] = "您输入的密码不正确<br />警告,登陆失败五次将锁IP,当前您已出错  ".$_SESSION['errorCount'].' 次';
  95.                 return $this->_redirectmessage(
  96.                         "登陆错误",
  97.                         "您输入的密码不正确,警告!登陆失败五次将锁IP,当前您已出错  ".$_SESSION['errorCount'].' 次',
  98.                         url("users/login")
  99.                 );
  100.             }
  101.             }
  102.         }
复制代码

论坛徽章:
0
9 [报告]
发表于 2010-03-13 10:26 |只看该作者
http://www.phpchina.com/bbs/thread-176525-1-1.html
也可以打开上面这个网址,代码看得更清楚一些。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP