很多开发人员觉得天经地义的做法,都有可能成为被利用的漏洞。有兴趣可以研究一下入侵的手段,你会发现很多利用都是非常巧妙的。
web应用,最常见的两类漏洞就是SQL注入和XSS(跨站脚本),前者对威胁服务器,后者威胁终端用户。
要杜绝这两类问题,技术、原理都是非常简单的,就是很多开发人员根本没有那个意识。另外对xss来说,每个字段都要escape一下,是个体力活。
举个例子来说,针对注入的:
假设你是个论坛吧,他可以发个帖子(或者是其他的文本),把木马(他用来执行操作系统命令的jsp文件)放到帖子的正文里面,传到你的数据库的某个字段里面。
然后利用注入,执行数据库的命令,将字段里面的内容备份到文件系统的一个文件中,这样木马就传上去了。
问题1:他怎么知道哪个表哪个字段?
如果存在SQL注入,他是能分析你的数据库结构的。当然这需要比较高级的手段。不过针对很多通用的论坛系统或者是建站系统,数据库就是已知的了。
问题2:他怎么知道webapps的路径在哪里?
a、通过app server的漏洞可能会暴露脚本的路径;
b、有的服务器的错误页面会显示脚本的路径;
c、通过注入漏洞或其他漏洞获得管理员的帐号以后,进入管理界面,能够得到很多信息;
d、其他手段;
我这里只是个大概的说法,没有太多细节,因为我也没有专门研究过怎么黑别人的网站。不过针对注入、XSS的文章,网上一大把一大把的。
-----------------------------------------
预防措施:
一定要杜绝SQL注入问题,这个问题非常严肃,SQL注入可以利用的手段非常多,后果也非常严重。
除了操作系统的补丁,第三方软件的漏洞也会降低安全性。你这里至少包括数据库、tomcat、fck、甚至jdk、第三方jar等等都可以升级到大版本下的最新的补丁版本(即你用jdk1.5不一定要升到1.6,但要升级到1.5系列的最新版本)。
少留管理后门。管理员的密码要设置好。管理员越少越好,很多入侵都是从这里进入的,一点技术含量都没有,你还觉得黑客好高深。
最小权限原则,这个原则永远有用
针对数据库帐号,只授予最小的权限。
使用一个普通的操作系统用户运行tomcat,因为你是windows,NTFS默热是所有用户都可以读写的,所以你修改一下文件系统的权限,只让tomcat的用户能写log、tmp、fck的上传目录。fck的上传目录设置在web-inf下。这样即使黑客通过其他用户,比如数据库用户上传了jsp木马到你的war下,他也不能随意执行copy命令。
fck只允许上传特定的文件,比如pdf、doc、jsp。(总不能上传jsp吧)
关闭不需要的服务。
web应用,最常见的两类漏洞就是SQL注入和XSS(跨站脚本),前者对威胁服务器,后者威胁终端用户。
要杜绝这两类问题,技术、原理都是非常简单的,就是很多开发人员根本没有那个意识。另外对xss来说,每个字段都要escape一下,是个体力活。
举个例子来说,针对注入的:
假设你是个论坛吧,他可以发个帖子(或者是其他的文本),把木马(他用来执行操作系统命令的jsp文件)放到帖子的正文里面,传到你的数据库的某个字段里面。
然后利用注入,执行数据库的命令,将字段里面的内容备份到文件系统的一个文件中,这样木马就传上去了。
问题1:他怎么知道哪个表哪个字段?
如果存在SQL注入,他是能分析你的数据库结构的。当然这需要比较高级的手段。不过针对很多通用的论坛系统或者是建站系统,数据库就是已知的了。
问题2:他怎么知道webapps的路径在哪里?
a、通过app server的漏洞可能会暴露脚本的路径;
b、有的服务器的错误页面会显示脚本的路径;
c、通过注入漏洞或其他漏洞获得管理员的帐号以后,进入管理界面,能够得到很多信息;
d、其他手段;
我这里只是个大概的说法,没有太多细节,因为我也没有专门研究过怎么黑别人的网站。不过针对注入、XSS的文章,网上一大把一大把的。
-----------------------------------------
预防措施:
一定要杜绝SQL注入问题,这个问题非常严肃,SQL注入可以利用的手段非常多,后果也非常严重。
除了操作系统的补丁,第三方软件的漏洞也会降低安全性。你这里至少包括数据库、tomcat、fck、甚至jdk、第三方jar等等都可以升级到大版本下的最新的补丁版本(即你用jdk1.5不一定要升到1.6,但要升级到1.5系列的最新版本)。
少留管理后门。管理员的密码要设置好。管理员越少越好,很多入侵都是从这里进入的,一点技术含量都没有,你还觉得黑客好高深。
最小权限原则,这个原则永远有用
针对数据库帐号,只授予最小的权限。
使用一个普通的操作系统用户运行tomcat,因为你是windows,NTFS默热是所有用户都可以读写的,所以你修改一下文件系统的权限,只让tomcat的用户能写log、tmp、fck的上传目录。fck的上传目录设置在web-inf下。这样即使黑客通过其他用户,比如数据库用户上传了jsp木马到你的war下,他也不能随意执行copy命令。
fck只允许上传特定的文件,比如pdf、doc、jsp。(总不能上传jsp吧)
关闭不需要的服务。