代码改变世界

如何通过tomcat入侵远程计算机系统

2006-10-11 15:35  java ee spring  阅读(392)  评论(0编辑  收藏  举报

   今天真倒霉,学员通过Tomcat黑了我的计算机!
   下面先说说怎么被黑的过程吧!我昨天讲解在Servlet程序中如何读写资源时,讲到了如果一个Servlet或JSP程序能够读写当前计算机上的任意目录的话,那么采用Tomcat对外出租虚拟主机时,就会出现安全问题,因为别人上传的Servlet/JSP程序可以浏览服务器上的所有目录和修改服务器上的文件。我安排学员们自己做做这个实验看看,没想到,第二天上课后不久,我的计算上就弹出了“计算机即将被关闭”的通知消息窗口,一些同学随之开始哈哈大笑,我知道被他们黑了,便问了整个被黑的过程。


  原来,一些同学昨晚被冯伟立(大二辍学)给黑了,今天反过来拿我的计算机开练!
  原理如下:使用tomcat自带的管理程序(Manager)可以远程管理Tomcat服务器上的所有WEB应用程序,包括创建和发布新的WEB应用程序。我在讲解Tomcat的Manager程序时,讲解了如何配置tomcat的安全帐户,冯伟立记住了我课堂演示时的tomcat管理帐号(我当时也真没想到这个管理帐号成了安全后门),他通过这个管理帐号就可将他的WEB应用程序部署到我的Tomcat服务器中。我以前也给学员们交过一些安全方面的知识,并提醒学员们时刻保持注意,当我昨天提醒大家Servlet程序可以读写当前计算机上的任意目录是个安全问题时,冯伟立便想到了通过Servlet来启动Windows的一个进程试试,当他利用晚上自习的时间尝试成功后,就拿几个同学的计算机试了试身手,因为大家都使用tomcat默认的管理帐号,所以,很容易进入。当同学们搞清楚怎么回事后,等我今天上课时,就给我开了开玩笑,他们让一个Servlet执行“shutdown -t 60”命令进行延时关机,接着又让另一个Servlet执行“shutdown -a”命令取消关机,把我作弄了一把。
  虽然计算机被黑了,但是我没有生气,反而有点高兴!为啥?我为有这么优秀的学员高兴啊,他们聪明、爱思考、能吃苦,以后一定会有出息的。呵呵,每次一想起我这批学员,我内心总是忍不住泛起一阵喜悦之情。得天下之英才而育之,是人生一大幸事,我虽没有育天下英才的才华,天下英才也不会为我而来,但就目前培训班的学员,我教他们的感觉真的很爽、很舒服,我们教授的东西,他们基本上都能很快能学会,不仅如此,他们还能在我们讲解内容的基础上做出一些让我很受启发的研究。这么多优秀的学员聚在一起,他们相互之间就能学到不少知识,置身于这样的环境,受到这些优秀学员的影响,基础稍差的学员受益更是非浅。