WebServer远程部署—Web安全深度剖析(8)

发表于:2015-5-18 10:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:张炳帅    来源:51Testing软件测试网原创

  10.5  WebServer远程部署
  支持远程部署的Web服务器有很多,例如,FTP,可以直接将源码上传至服务器,然后安装。但如果远程部署配置不当,攻击者就可以通过远程部署功能入侵服务器。
  通过远程部署获取WebShell并不属于代码层次的漏洞,而是属于配置性错误漏洞。就像FTP入侵那样,FTP本身没有任何问题,只是由于管理员配置不当,导致攻击者可以通过FTP渗透。
  10.5.1  Tomcat
  Tomcat是Apache 软件基金会(Apache Software Foundation)Jakarta 项目中的一个核心项目,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱,并得到了部分软件开发商的认可,成为目前比较流行的Java Web应用服务器。几乎所有的Java Web开发人员都使用过Tomcat,Tomcat目前最新的版本是8.0。
  安装Tomcat后,默认端口即为8080,访问"http://host:8080/",即可看到Tomcat默认的部署界面,如图10-30所示。
  
图10-30  Tomcat默认部署主界面
  Tomcat安装后,一些默认配置并不安全,如果配置不当,攻击者可轻易获取到Web应用程序的WebShell。
  在图10-30左侧可以看到有一个"Tomcat Manager"链接,在登录后可对Web应用程序动态部署,而且非常方便,管理员仅需要上传一个WAR格式的文件就可以发布到网站。
  换个角度想:既然开发人员可以上传WAR文件部署网站,那么攻击者也可以上传WAR文件部署一个JSP的木马。
  制作WAR格式的Shell程序时,可以使用JDK自带的JAR命令制作,JAR.exe存放在JDK安装目录下的bin目录中。比如,将C盘下的shell.jsp制作成WAR包,shell.jsp代码如下:
  <%
  out.println("Jsp Shell ... ");      //假设这是一段脚本木马程序
  %>
  命令格式如下:
  jar -cvf WAR文件名称 目标文件
  可以使用如下命令:
  jar -cvf shell.war shell.jsp  //打包指定文件
  jar -cvf shell.war *  //打包当前目录下的所有文件
  使用JAR命令打包,如图10-31所示。
  
图10-31  使用JAR命令制作WAR格式包
  登录管理界面后,显示如图10-32所示。
  
图10-32  Tomcat管理界面
  在Tomcat管理界面中可以看到"WAR file to deploy",也就是WAR文件部署,上传WAR文件后,Tomcat会自动部署,如图10-33所示,应用程序已经部署成功。
  
图10-33  WAR文件部署成功
  好在使用这一功能需要密码验证,且用户必须要有manager权限,在Tomcat安装目录下的"/conf/tomcat-users.xml"文件中可以配置,内容如下:
  <?xml version='1.0' encoding='utf-8'?>
  <tomcat-users>
  <role rolename="manager"/>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat,manager"/>
  <user username="role1" password="tomcat" roles="role1"/>
  </tomcat-users>
  如下用户配置就是两个存在安全隐患的配置。
  ① <user username="root" password="root" roles="manager"/>
  使用弱口令,并且赋予manager权限。
  ② <user username="tomcat" password="tomcat" roles="tomcat,manager"/>
  使用默认用户,并且赋予manager权限。
  有一些攻击者极为狡猾,在入侵Tomcat服务器后,会偷偷地加一个管理用户,即使代码层次的漏洞不见了,攻击者依然可以通过Tomcat来部署WebShell。
  经过上述剖析可知,如果你的Web Application还存在远程部署功能,就必须设定高强度密码。如果不使用远程部署功能,就应尽量删除它或者关闭它,以防被攻击者恶意利用。
本文选自《Web安全深度剖析》第十章,本站经电子工业出版社和作者的授权。
版权声明:51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号