图文讲解全程追踪入侵JSP网站服务器

js|服务器

  在用JSP制作的电子商务网站多如牛毛。但是对于JSP网站而言,安全性真的能够让人放心吗?面对层出不穷的黑客攻击和病毒袭击,JSP网站的服务器能够比其他网站的服务器器更加安全吗?前段时间,应朋友之邀,我对他们托管的三台服务器的主机进行了测试,发现了JSP网站存在的几个问题。

  入侵测试第一步:扫描

  扫描是入侵的第一步,它可以让你对即将入侵的目标有一个全面的了解。同时扫描还有可能发现扫描对象的漏洞,为入侵提供一个指导方向。

  朋友的两台服务器为Linux,一台为Windows系统,在路由器后面还有一台Cisco PIX 525对三台主机进行保护,只允许外部用户连接不同主机的部分端口,例如80,25,110。

  根据检测,Cisco PIX防火墙过滤规则设置比较严密,基本上没有多余端口允许外部用户访问。细致分析后,我发现,目标网络的主机通过地址转换来提供对外访问,内部使用192.168.*.*地址段。

  先不考虑那么多,找个扫描软件来看看主机的安全情况。我找来了X-Scan,在外部对这几台主机进行了端口扫描之后,生成了一份关于端口的报表,发现其中有一个Tomcat服务器,解释的自然就是JSP文件了。

  小知识:

  Tomcat Web服务器是一款开源的适合于各种平台的免费网络服务器。eBay.com与Dell 计算机等知名网站都采用或者曾经采用Tomcat的container容器执行Servlet 与JSP。

  看来,只能通过Web服务进行间接攻击。首先检查TCP 80端口的服务。我发现,新闻搜索的功能是由端口8080提供的,输入http:// 202.103.*.168:8080/之后,得到了一个系统管理登录页面,简单地测试了一下,输入“test/test”作为“用户名/口令”,似乎认证成功,但实际上并不能进入下一个页面。

  专家支招:对于扫描来说,它很容易暴露我们网站的弱势方面。应对扫描,我们可以架设一个蜜罐来误导扫描者,蜜罐可以让系统伪装成到处是漏洞,从而遮蔽真正存在的漏洞,也可以伪装成没有任何漏洞,让入侵者不知道从何入手(在去年第47期《电脑报》中,我们对制作蜜罐进行了介绍)。

  入侵测试第二步:漏洞尝试

  尝试JSP各种已知漏洞,这个是在扫描结果中无法获得任何有效信息指导入侵的情况下,被迫使用的方法。这种方法虽然效果不一定好,但是往往能够起到意想不到的效果,从而让入侵继续下去。

  我进行了JSP大小写的测试,因为JSP对大小写是敏感的,Tomcat只会将小写的jsp后缀的文件当作是正常的JSP文件来执行,如果大写了就会引起Tomcat将index.JSP当作是一个可以下载的文件让客户下载,若干测试后,我发现这个方法并不奏效,可能管理员已经在服务器软件的网站上下载了最新的补丁。

  我发现大部分的JSP应用程序在当前目录下都会有一个WEB-INF目录,这个目录通常存放的是JavaBeans编译后的class 文件,如果不给这个目录设置正常的权限,所有的class就会曝光。

  而采用JAD软件对下载的class文件反编译后,原始的Java文件甚至变量名都不会改变。如果网页制作者开始把数据库的用户名密码都写在了Java代码中,反编译后,说不定还能看到数据库的重要信息。那么,怎么得到这些文件呢?

  Tomcat版本的缺省“/admin”目录是很容易访问的。输入:http://202.103.*.168/admin/,管理员目录赫然在列。默认情况下,“User Name”应该是admin,“Password”应该是空,输入用户和密码后,并点击“Login”按钮,不能进入,陆续使用了几个比较常见的密码,也无济于事。

  默认情况下,Tomcat打开了目录浏览功能,而一般的管理员又很容易忽视这个问题。也就是说,当要求的资源直接映射到服务器上的一个目录时,由于在目录中缺少缺省的index.jsp等文件,Tomcat将不返回找不到资源的404错误,而是返回HTML格式的目录列表。

  想到了这点后,我打开刚才用X-Scan扫描后生成的报表文件,找到“安全漏洞及解决方案”栏目,看到了几个可能会有CGI漏洞的目录。在地址栏输入其中之一,返回结果如图1所示。

  一些很典型的JSP文件和JS文件都列出来了。大喜之下,随便选择一个文件,点击右键,然后,选择“用FlashGet下载全部链接”选项,于是,这个目录下的所有文件都被我下载到了本地。

  其中最有价值的是一个名字为dbconn.js的文件,看来程序设计者是为了方便省事,把一些数据库连接的密码和连接地址都写在里面了(这是很多开发者可能会忽略的问题)。不过,我现在最关心的还是Tomcat的管理员密码。

  简单破解后,发现Tomcat系统中的admin用户使用了非常简单的口令:web123456。利用这个漏洞,有了这个密码,下面的工作就相对简单了。

  专家支招:对于网站中的漏洞,我们要即时打上各种补丁,然后对几个已知的安全弱势方面进行加强,比如我们可以将“/admin”目录进行修改,让入侵者不容易找到管理路径。然后关闭Tomcat的目录浏览功能,让入侵者的漏洞尝试彻底失败。

  入侵测试第三步:注入攻击

  很多网站对于注入防范做得都很不到位,注入攻击可以让网站暴露出自己的数据库信息以至于暴露数据库表中的管理员账号和密码。

  重新登录Tomcat的管理界面,点击“Context (Admin)”这个链接,列出了WEB目录下的一些文件和目录的名称,现在就可以对Tomcat的Context进行管理,例如查看、增加、删除Context。

  回到Tomcat的管理界,我发现了一个上传文件的组件,并且网站还有一个论坛。于是,我编写了一个input.jsp文件,并将它当作一般的Web 应用程序,通过上传的组件上传到对方的WEB目录里。打开input.jsp这个页面(图2)。

  网页对查询窗体不会做任何输入验证,但是对用户名称的窗体则会。将数据填入窗体,来测试一下网页的漏洞,例子如下:

  (1)将<script language="javascript">alert(document.cookie)</script>填入搜索字段,以便用XSS 来显示进程的cookie。

  (2)将<iframe src=http://jakarta.apache.org></iframe>填入搜索字段来示范HTML 注入攻击。

  通过这些方法,我得到了一些论坛的用户信息,当然,这些都是针对JSP做的一些测试,以验证Web应用程序中的所有输入字段。有了用户信息,却没有密码,怎么办?在登录时,我发现了一个8888端口,这会是个什么服务呢?

  专家支招:在网页连接数据库的设计中,网页设计人员要加入对一些敏感符号的审核机制,屏蔽一些在数据库中有作用的符号,这可以在很大程度上成功防御注入攻击。

  入侵第四步:攻其“软肋”

  根据入侵的逐渐深入,系统存在的安全问题也渐渐清楚,下面就是针对网站的安全“软肋”进行攻击。一般针对安全“软肋”的攻击会使入侵成功。

  打开地址后,我发现这个端口运行的是Apache+PHP。也就是说,这台主机还可以编译PHP。从经验分析来看,管理员在JSP主机上同时安装PHP的主要目的可能是为了管理MySQL数据库。因此,这个端口很可能有phpMyadmin这款MySQL数据库管理软件。这个端口上会不会有数据库管理目录呢?

  果然不出我所料,在输入这个目录之后我发现,我进入了一个phpMyadmin的管理界面,可以对MySQL数据库进行任意操作。它支持从本地操作系统读入或者写入数据。更不可理解的是,管理员居然用root账户写在了数据库链接里面,想不控制这个数据库都不行了。

  打开其中的一个数据库,在“SQL”中输入“SELECT * FROM `administer`”,administer表中的数据全部显示出来了。和我前面用JSP探测的用户类型大致一致。至于他们的表和数据的删改权限,现在则完全在我的掌握之中了。

  专家支招:使用了一些软件的时候,我们尽量修改它的默认目录,将它改为一个不容易被猜解到的名字。同时在访问该目录的时候加入密码审核机制,就算入侵者找到了这个管理目录也无法获得进入目录的密码。

时间: 2024-08-29 05:52:13

图文讲解全程追踪入侵JSP网站服务器的相关文章

实例讲解:全程追踪入侵JSP网站服务器

js|服务器 在用JSP制作的电子商务网站多如牛毛.但是对于JSP网站而言,安全性真的能够让人放心吗?面对层出不穷的黑客攻击和病毒袭击,JSP网站的服务器能够比其他网站的服务器器更加安全吗?前段时间,应朋友之邀,我对他们托管的三台服务器的主机进行了测试,发现了JSP网站存在的几个问题. 入侵测试第一步:扫描 扫描是入侵的第一步,它可以让你对即将入侵的目标有一个全面的了解.同时扫描还有可能发现扫描对象的漏洞,为入侵提供一个指导方向. 朋友的两台服务器为Linux,一台为Windows系统,在路由器

服务器-怎么发布一个做好的JSP网站

问题描述 怎么发布一个做好的JSP网站 我现在是网站做好了,打包成war文件了,有腾讯云服务器,有域名,服务器安装了IIS8,TOMCAT8. 该怎么做才能发布我的JSP的网站呢? 现在最大的问题是IIS吧80端口占了,只能用IIS8.0访问我的网站(ccxustc.com.cn). 怎么把IIS8根tomcat8整合起来共享端口80?或者禁用IIS,只用tomcat发布我的网站? 解决方案 把iis卸载,iis用不到 解决方案二: JTBC 做的一个小网站用Eclipse开发一个Jsp的网站

奇怪了 我现在通过 http://122.227.164.81:8080/qwfymain/index.jsp 这个已经 可以访问 服务器发布的jsp网站了,可

问题描述 奇怪了我现在通过http://122.227.164.81:8080/qwfymain/index.jsp这个已经可以访问服务器发布的jsp网站了,可是连接到动态页面就报错:java.sql.SQLException:Accessdeniedforuser'root'@'localhost'(usingpassword:YES),网上说是什么权限问题,我试了都不行,我把本地的上项目,数据库连接改到服务器的数据库,测试发现没这个问题,谁知道这个问题怎么解决?我项目是struts2+spr

虚拟主机-自己做的jsp网站项目如何实现万维网访问啊,现在只能局域网访问,在线等

问题描述 自己做的jsp网站项目如何实现万维网访问啊,现在只能局域网访问,在线等 目前已经购买了域名和虚拟主机,想把自己做的已经在局域网内实现访问的项目,搞到像网站一样,在外网上也能让别人访问.还需要什么准备么,跪求大神解答 解决方案 将代码放在公网服务器上 解决方案二: 能不能解释得具体点啊....... 解决方案三: 域名备案 2. 把代码部署到服务器 3. 将域名解析到部署的服务器(保证服务器公网可以访问) .域名解析成功之后就可以了 解决方案四: 参考使用新花生壳内网版搭建网站服务因为你

黑客频频入侵高校网站留个脚印就闪

我是一个大侠,你要知道一个大侠,不会对你的数据感兴趣的.由于你的网站存在大量漏洞,特用此方式通知管理员."--HACK ★身份 川内某高校的在读研究生. ★目的 发现很多网站有漏洞,友情检测,善意提醒,不会修改网站数据,也不影响 网友对该网站的访问. ★招式 通常是找漏洞入侵,拿下服务器,全靠双手.可以把整个网站下载到本地或者将内容全部删除. ★战绩 西北师大.川师大以及广东等地的一些学校的网站,都在他的控制之下:川内高校只有入侵电子科大网站失败. ★后续 不敢再黑了,担心被入侵的网站追究,毕业

揭阳市召开了新闻发布会,宣布近年来公安机关侦破的最大规模入侵政府网站案件

揭阳市人社局网站被黑 去年12月8日,揭阳市人事社保局考试中心办公室主任许伟鹏照例进行每月一次的网站巡查,在<揭阳人事考试网>的公告栏中,他发现被人非法添加了一条"2008年关于专业资格证书查询的通知".许伟鹏点击进入后,发现网站弹出一个查询页面,上面可输入姓名.身份证. "被黑客入侵了!"许伟鹏立即报警.揭阳市公安局网警支队调查发现,该局的人事考试网站已被人运用木马软件暴力破解,植入了计算机病毒,增加非法链接. 线索追踪 南京某培训机构浮出水面 警方分

Windows网站服务器安全设置

有很多人都认为微软的东西漏洞太多,微软的系统安全性太差,网站服务器通常都不建议用微软的系统,不过,如果网站维护人员很少,通过在Windows Server里进行一些安全配置,也可以让系统的安全性有所提高,对于网站的备份.恢复等一系列复杂操作,也可以通过一些较为简单的方式来实现,下面是我总结的一些Windows Server安全配置和备份恢复的一些经验和技巧,供各位参考. Windows服务器安全配置技巧 - Windows服务器安装.网络安全配置.安全模板设置等. 防止服务器网卡被误停用 - 服

使用FreeBSD 6.2快速架设网站服务器

FreeBSD 6.2中如何快速的架设网站服务器呢?请看本文给你的讲解. 1.安装设置prozilla(port下载加速) 当然是首先安装下载加速啦,不然下面的安装会好慢 的 安装使用如下指令: #cd /usr/ports/ftp/prozilla #make install clean 中间会出现: 这是例子和HTML格式的手 册页,不会用以后想研究的可以加上,然后选OK 安装完毕后,编辑或建立/etc/make.conf: #ee /etc/make.conf 将原来的部分用#号注释掉,如

Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 详细图文讲解

android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把环境搭建起来了,把过程记录下来分享给大家. 内容目录: 1.默认基础环境 2.NDK下载与配置 3.安装Cygwin 4.用NDK编译 5.安装CDT插件 6.安装Sequoyah插件 7.JNI编译环境配置 画了一个思维导图让大家一目了然配置过程   -------------------------