如今,基于JSP开发的电子商务网站随处可见,但一个长期困扰开发者和系统管理员的问题依然存在:这些JSP站点的安全性究竟如何?面对日益频繁的黑客攻击与病毒威胁,JSP服务器相比其他平台是否更具防护能力?不久前,受朋友委托,我对托管的三台服务器进行了渗透测试,发现了一些典型的安全隐患,现分享给大家作为参考。
渗透测试第一步:全面扫描与信息收集
扫描作为入侵的起点,能够帮助攻击者全面了解目标网络的结构,甚至直接发现安全漏洞,为后续攻击指明方向。
朋友的两台服务器运行Linux系统,另一台为Windows,路由器后方部署了一台Cisco PIX 525防火墙,用于保护三台主机,仅允许外部访问部分端口,例如80、25、110。经检查,PIX的过滤规则设置相当严格,几乎没有开放多余端口。进一步分析发现,目标网络的主机通过地址转换(NAT)对外提供服务,内部使用192.168.*.*网段。
于是,首先使用扫描工具进行探测。利用X-Scan从外部对端口进行全面扫描,生成的报表显示其中一台为Tomcat服务器——显然是专门用于运行JSP应用的。
小知识:Tomcat Web服务器是一款开源、跨平台的免费服务器。eBay.com和Dell等知名网站都曾采用Tomcat容器来执行Servlet和JSP程序。
由于防火墙封锁严密,只能通过Web服务进行渗透。首先检查TCP 80端口,发现新闻搜索功能实际由8080端口提供。输入https://202.103.*.168:8080/,弹出系统管理登录页面。尝试使用用户名/密码组合"test/test",似乎通过了认证,但无法进入后续页面。
专家建议:扫描很容易暴露网站的薄弱环节。要反制,可以部署蜜罐系统——让系统伪装成充满漏洞,从而掩盖真实漏洞;或者伪装成毫无漏洞,使入侵者无从下手。
渗透测试第二步:漏洞利用尝试
扫描未能获取有效信息,因此只能逐一尝试JSP的各种已知漏洞。这种方法效果不一定理想,但有时能意外得手,推动入侵进程。
首先尝试大小写利用。JSP对大小写敏感,Tomcat仅识别小写的.jsp后缀,若将后缀写成大写(如index.JSP),Tomcat会将其视为可下载文件直接返回给客户端。尝试多次,未成功——推测管理员已安装最新补丁。
大多数JSP应用在根目录下包含WEB-INF文件夹,其中通常存放JavaBeans编译后的class文件。如果该目录权限设置不当,所有class文件将直接暴露。使用JAD反编译class文件,甚至能保留原始变量名。如果开发人员将数据库用户名和密码硬编码在Java代码中,反编译后即可直接获取。那么,如何获取这些文件呢?
Tomcat默认的'/admin'目录容易访问。输入https://202.103.*.168/admin/,管理员目录直接暴露。默认用户名admin,密码为空,尝试登录失败;又尝试了几个常见密码,仍无法进入。
默认情况下,Tomcat开启了目录浏览功能,而管理员常忽略此配置。当请求的资源映射到服务器上的某个目录,且该目录缺少默认的index.jsp文件时,Tomcat不会返回404错误,而是直接返回HTML格式的目录列表。
想到这里,打开X-Scan的报表,在'安全漏洞及解决方案'部分找到几个可能存在CGI漏洞的目录。随机输入一个,结果如图1所示。
500)this.width=500" title="点击这里用新窗口浏览图片" />
上一页12 下一页 查看全文
