• IDC需注意,用户一个小工具就可以轻松控制服务器

    发布时间:2015-10-29 18:28 Thursday 作者:苏苏 阅读(1820)

      这个可能是很多 IDC 所不知道的,尤其是小型的 IDC ,或者一些免空提供者。用户只需要用ftp上传一个文件,就可以轻松控制整个服务器。苏苏测试了几家 IDC (银子啊,如流水般一去不复返了),除去景安外,其他小 IDC 无一例外地,直接拿到权限。西部跟阿里云没测,买不起。这证明了,小 IDC 还是尽量别碰的好。

      缘起一个朋友,他提供了一些免费空间,有个用户的网站有漏洞,被上传了个文件,然后对方就控制了整个服务器,当然了,这个所谓的控制是指可以上传下载删除文件跟文件夹。整个服务器,随便一个目录都可以干上传下载删除这事。

      先来说说怎么做到的,这需要一个叫【中国菜刀】的工具(吐槽一下这个坑爹名字),下载地址就不提供了,以php为例,讲讲怎么干坏事。

      首先,你要跟 IDC 买个空间,大 IDC 一般已经做好安全措施了,但是很多小 IDC 还是可以的,尤其是一些免空。然后该绑域名绑域名,比如 a.cn,然后把中国菜刀里面的那个 a.php 文件用 ftp 传上去,假设传完后的路径为【a.cn/a.php】。

      打开中国菜刀,右键,选择添加,如果你没改那个文件的东西,右边就填【as】,如果你改了,就这里也改过来。

      中国菜刀.jpg

      当然,你还可以在配置文件这里多填些东西,主要是数据库的用户名密码一类的,大概如下:

      <T>MYSQL</T>

      <H>IP地址</H>

      <u>用户名</u>

      <p>密码</p>

      <l>编码</l>


      不填也无所谓。然后点击【添加】。

      可看到已经多了一条网址,

      中国菜刀2.jpg


      双击便可进去了。

      中国菜刀3.jpg


      可以看到,我们已经可以随意进去任何一个目录,干我们想干的事了。


      当然,可干的事情,远远不止这么一点,苏苏就不多说了。现在来谈谈如何解决这个问题。

      苏苏只会php,所有只谈php如何解决,aspx不在考虑之列。

      解决办法也很简单,这个工具无非是利用了 php 的 eval 这个函数,我们禁止这个函数就可以了。当然了,我不会告诉你用 php.ini 来禁止,这太没技术含量了,而且 php.ini 也根本禁止不了。所以我们用一个高大上的解决方案,安装一个名为【Suhosin】的第三方扩展。

      苏苏很无耻地全抄了某人的博客:

      这是在linux下的apache安装:

      Suhosin是朝鲜语“守护神”的音译,是一个专门的安全小组开发的专门针对php进行安全加固的补丁程 序,已经进入freebsd gentoo的ports系统。效果很好的。

      Suhosin是php增强型安全补丁,可以编译到静态内核中,也可以编译成php动态扩展。我个人强烈你建议静态联编。下面的以下先说静态安装步骤。当然你也可以在安装php后将它编译成php的动态扩展。

      # cd /usr/local/src

      # wget http://cn.php.net/get/php-5.2.5.tar.gz/from/this/mirror

      wget http://www.hardened-php.net/suhosin/_media/suhosin-patch-5.2.5-0.9.6.2.patch.gz //从官方下载补丁

      # tar zxvf php-5.2.5.tar.gz

      # gunzip suhosin-patch-5.2.5-0.9.6.2.patch.gz // 解压补丁

      # cd php-5.2.5

      # patch -p 1 -i ../suhosin-patch-5.2.5-0.9.6.2.patch // 给php打上补丁

      # ./buildconf --force //一定要执行这一步。


      # CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-zlib-dir --with-bz2 --with-tiff-dir --with-libxml-dir=/usr/local/libxml2 --with-gd=/usr/local/gd2 --with-freetype-dir --with-jpeg-dir --with-png-dir --with-ttf --enable-mbstring --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/etc --with-iconv --disable-ipv6 --enable-static --enable-maintainer-zts --enable-memory-limit --enable-zend-multibyte --enable-sockets --enable-soap --enable-suhosin // 配置选项

      # make

      # make install

      重启apachectl,查看phpinfo信息,会出现

      This server is protected with the Suhosin Patch 0.9.6.2

      Copyright (c) 2006 Hardened-PHP Project

      等许多Suhosin信息那么你就成功了。呵呵。


      在这里也顺便说一下将suhosin安装成为php的动态扩展的方法。

      wget http://download.suhosin.org/suhosin-0.9.23.tgz

      tar zxvfsuhosin-0.9.23.tgz

      cd suhosin-0.9.23

      /usr/local/php/bin/phpize //这一步不能省

      ./configure --with-php-config=/usr/local/php/bin/php-config //必须在这儿注明php-config所在的绝对路径。

      make

      make install

      会提示编译的模块存在的目录,记住它。

      Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

      然后在php.ini中增加一行下列语句。

      extension=suhosin.so

      suhosin.executor.disable_eval = on



      ====================================================


      总结:linux和windows的安全机制不同,部分服务器离开了 web 目录后可能就无法上传跟删除了,尤其是删除。但是下载还是可以的。

      比较麻烦的是,一个用户上传后,还可以给同一台服务器下的其他网站都传这个文件,然后伪装。所以,就算你删除了这个恶意用户,你的其他用户可能也不安全了。最好的解决办法还是给所有的服务器都禁止掉 eval 函数。

    特别申明:若无说明,文章均为原创,转载时请注明本文地址,谢谢合作!
    本文链接: