winston 发表于 2011-12-31 17:38:30

一个网站的用户数据库被入侵的方式有哪些?

一个网站的用户数据库被入侵的方式有哪些?运维和管理人员如何防范?转自:知乎

前面的匿名用户已经回答了主要的方法。不过很低调,我这菜鸟就展开说说吧。 说得不全,期待替他匿名用户补充。

其实要渗透一个站的方法有很多。一个网站从开发到上线运营,需要经过很多环节很多人员。任何一个环节或者人员出了弱点都有可能被利用,从而造成巨大的损失。      

常见的入侵手段有以下几种:      
1.利用网站自身漏洞。      
比如sql注入。这里举个最简单的例子说说一个sql注入如何导致库被脱。      
比如我们的站上有个表单有sql注入,那么就可以执行sql语句,于是最简单的就是,通过这个表单将数据库dump到硬盘上的web目录中,然后就可以下载了。当然这还牵涉到如何通过触发web异常来获取web根目录等等(facebook就这样被白帽黑客们调戏过)。或者,我先通过正常渠道将一个web页面提交到库中,然后通过这个表单提交一个mysql的dump命令,好了,我们服务器硬盘上多了一个页面,可以访问了,如果这个页面有上传下载等功能呢,我就获得了一部分我们服务器的控制权了(术语叫webshell)。      

2.利用部署、运维过程中的疏忽,比如一些服务器软件,自带了一些管理后台和接口,如tomcat的manager页面,jboss的jmx console,wampp的webdav等。这些后台的通常是为开发者设计,很脆弱,而且一般都有默认的用户名和密码,是不应该在线上出现的,如果运维人员在部署系统是安全意识不够,暴露这些东西都会带来潜在的风险。我曾经所呆过的公司就被这个问题搞过多次。自己的管理后台也有同样的问题。      
再比如运维过程中的备份、上传等也容易爆弱点,最简单的方法,我们再用搜索引擎搜索“index of /upload”或者“index of /backup”翻了看看,能搜到多少好玩的东西(我就曾不小心搜到过一个招聘站的包含“用户姓名、手机号、邮箱”的库)。      

3.从办公网络入手,再进入服务器系统。由于办公网络使用的人员复杂,比如有人喜欢休息时逛逛这个论坛,有人习惯上上那个网站。如果有人上了网站被挂了木马。或者收到含有木马的邮件并打开了。都有可能导致办公机器首先沦陷,而办公机器连服务器往往都很容易。后面大家可想而知。      

4.直接入侵服务器。这在windows系统下比较明显,一个溢出就有可能导致获得管理员权限。linux则相对比较安全。      

5.社会工程,上面的传统方法对技术要求比较高。社会工程攻击就是重复利用人的弱点,骗取系统权限等有价值的信息。比如一个电话打过去,装作是同事,然后说:我是xxx部门的xxx,现在要做什么,但是没有权限,我们的密码是什么的?如果你但是已经忙得焦头烂额,很可能就直接把密码说了。或者事情很简单,坏人们手中有很强大的库,包括很多常用的默认密码(甚至公司内部通用的默认密码),用这些库来爆破你的服务器。直接就获得权限了。      

要防止此类灾难性的后果也很简单:堵住坏人的路。      
1.增强自己系统的安全性。从开发人员的安全开发技术培训,防止诸如sql注入、xss等严重漏洞的出现。工作人员的安全意识的培养等。设计系统的时候,要考虑到安全,如何加密,如何存储,如何传输,如果一个子系统沦陷了会不会导致其他子系统沦陷等等。




2.审计要做好。事前及时发现异常。事后发现漏洞。   

3.对外合作、三方软件等使用须谨慎。不要让自己不可控的东西成为自己的安全短板。      

另外,提醒一下,其实坏人们手中的库是很多的,对于有价值的网站,会有人用各种库来刷。社工的库比我们想像的要大得多。我们大家自己要注意安全,千万不能一个密码走遍全网,在一些不靠谱的站上注册,就用被盗了也没事的密码,而邮箱密码和银行密码最好单独设置,单独用。不要以为自己的账号没被盗过,而是人家登过你的账号,然后发现没搞头又走了,你不知道而已,等哪天有搞头了,你就发现你的账号被盗了。
页: [1]
查看完整版本: 一个网站的用户数据库被入侵的方式有哪些?