◆陈志伟
(福建林业职业技术学院 福建 353000)
渗透技术是以模仿攻击者入侵的手段及方法来检测网络是否健壮可靠的测试技术,该技术一方面从白盒测试的路径全覆盖考虑,另一方面以黑盒测试的功能性目的考虑,分析测试网站的缺陷及可能存在的弱点,并尝试利用这些弱点实施入侵的行为过程,以此评估可能存在的风险及等级[1]。由于渗透技术具有精度高、效率快等优点,已经被广泛应用到系统、程序、应用等安全检测中,并取得了一定的应用成就。以此对Web 渗透实例分析与实践进行了深入研究,为渗透技术在Web 中的应用提供理论依据。
Web 中存在多种安全隐患,经常受到网络攻击,其中包括注入漏洞、失效身份认证、跨网站脚本(XSS)、信息外泄漏洞、伪造跨网站请求(CSRF)等,具体说明如表1 所示。
表1 Web 安全隐患及漏洞列表
危险对象直接引用 Web 开发人员暴露对内实现对象引用,比如xml、database 等 Web 在没有访问控制检测或其他保护时,黑客会操控暴露的引用去访问Web未授权数据 配置类漏洞 安全配置错误 属于网页漏洞 由于Web 网站默认值不安全而导致 信息外泄漏洞 信息包括用户名、口令等敏感性数据 黑客运用不正当手段进入Web 中对敏感数据进行窃取形成攻击行为 功能级访问控制失效 应用程序功能级访问控制无效 服务器端执行相同的访问控制检查测量,为Web 攻击者提供便利条件 伪造跨网站 请 求(CSRF) 攻击者将伪造的跨网站请求发送到Web 上 Web 自身存在某些漏洞,伪造的请求会被认为是合法请求造成Web 攻击 使用含已知漏洞的组件 Web 上某些程序使用带有已知漏洞的组件 攻击者利用已知漏洞,对Web 进行一系列攻击 未验证定向和转发 Web 将用户定向和转发到位置网页中进行验证 攻击者利用特定用户到恶意网站或使用转发去访问未授权的页面
依据表1 Web 安全隐患及漏洞列表中的问题,对Web 进行渗透测试实例分析,在整个Web 渗透测试过程中采用扫描、抓包及代码审查等方法,使用Fluxy、X-Scan、Wireshark、Burpsuite、Sniffer 及Python IDLE 等工具,测试分析某医疗Web 是否存在上文提出的安全隐患及漏洞。为便于归纳总结,将发现的安全隐患和漏洞分类加以分析,侧重于从注入类漏洞、脚本类漏洞和配置类漏洞三个角度对渗透实例分析。
在进行注入漏洞渗透测试时,首先要测试分析Web 是否存在注入点以及注入的类型,运用NMAP 或者Burpsuite 等工具对Web 进行扫描,扫描结果可以查看到Web 数据库是否存在未过滤非法字符[2]。如果有表明存在输入漏洞,此时Web 显示的数据都为错误数据。经扫描发现,该医疗Web 的某HTTP 的ID 参数存在注入点,运用sqlmap 工具对注入点进行攻击验证,验证结果如表2 所示。
表2 注入验证数据
从表2 中可以看出,验证表单存在字符型的SQL 注入漏洞,并且该漏洞已经获取到医疗Web 一部分数据。
尝试对该医疗Web 进行脚本类漏洞进行分析,通过Appscan、Wireshark 等工具对Web 找回密码过程发送的HTTP 请求进行抓包,发现Web 找回密码功能中,一些Web 功能未进行加密保护,同时通过Fluxy 工具扫描Web,发现可以通过admin 身份直接登录到该医疗Web 后台,并且发现该医疗Web 存在脚本类漏洞[3]。针对这一类漏洞,通过获取短信验证的方式进行加密处理,以确保用户身份的真实有效,同时通过设置Web 后台权限,规避非预期的越权操作,对脚本类漏洞进行了修复。
对该医疗Web 进行配置类漏洞进行渗透分析,通过X-Scan扫描器扫描,发现Web 服务器中web.coinsdf 明文存储了数据库的账户连接信息[4]。可以查看到一部分医疗信息,其中包括患者检查报告、注册患者基本信息等。证明该Web 存在配置类漏洞,后经过验证,证实了渗透推测结果。
通过对该医疗Web 注入类漏洞、脚本类漏洞、配置类漏洞的渗透测试,发现了大量的Web 安全隐患,具体测试结果如表3所示。
表3 Web 渗透测试结果
通过表3 和渗透过程分析可以发现,该医疗Web 存在大量的安全漏洞,其中以注入漏洞、失效身份认证、跨网站脚本(XSS)三种漏洞数量较多,对Web 的安全运行影响较大。注入类漏洞导致医疗信息泄露[5];脚本类漏洞导致Web 部分功能失效;配置类漏洞导致攻击者收集信息、攻击系统更加便捷,甚至直接通过泄露的敏感信息侵入系统,Web 的鲁棒性处于低值,影响正常使用。为修复以上漏洞,对该医疗Web 需要立即采取相应措施,解决Web 安全隐患问题,以此实现了Web 渗透实例分析。
一次完整的Web 渗透实践,要经过目标搜索、信息收集、漏洞探索、漏洞利用、内网转发、内网渗透、痕迹清除、撰写测试等过程,下图为Web 渗透流程图。
在Web 渗透实践过程中,首先要尽快确定目标,广泛搜索各种与目标相关的有效信息,比如Web 域名、IP 地址等,以此来获取目标的跟踪,同时利用扫描软件对Web 进行全面扫描,决定潜在目标[6];当搜索到目标后,运用挖掘工具对目标信息进行深度挖掘并加以整理,常用的挖掘工具有社交工程、物理闯入等,从外网收集被测目标的基本信息,然后利用各种扫描工具(如TK2012 扫描器、X-Scan 扫描器、Fluxy 扫描器、NMAP 扫描器),对目标进行端口扫描,以此来获取端口开放信息,同时对Web的操作系统进行目标识别,以及对Web 服务软件的基本信息进行识别,获取到Web 的防火墙规则等[7]。除此以外,测试人员还需要获取到Web 的网络拓扑结构信息以及路由信息等,尽可能多的挖掘到有效信息;采集到有效信息后,以其作为依据将被测目标与安全漏洞进行关联[8]。漏洞关联在整个Web 渗透实践中具有重要的作用,选取被测目标的一些特殊信息,将其与已开放的安全漏洞的相关信息进行对比,以此判断出目标是否存在漏洞;关联完漏洞后进入到入侵攻击测试阶段,在该阶段要根据漏洞关联发现的Web 漏洞进行有针对性的应对,利用合理的漏洞工具进行维持权限,采取相应的应对措施解决Web 漏洞问题,在攻击结束之后要对Web 上的攻击痕迹进行清除,以此完成Web 渗透实践。
图1 Web 渗透实践流程
通过上述步骤的Web 渗透实践,全面的扫描了Web 的漏洞,并对这些漏洞进行了修复,经再次使用不同工具软件扫描,Web的漏洞已经修复,提高了该医疗Web 的鲁棒性,使用体验得以大幅提升。
通过此次研究表明了渗透技术对Web 安全具有重要的作用,可以有效保护Web 安全运行,快速扫描、分析出Web 上存在的安全隐患和漏洞,为Web 的稳定运行提供了良好的保障。计算机技术是在飞速发展,不断进步的,不排除后续发现新的安全隐患和漏洞的可能,同时由于个人能力以及研究时间有限,此次虽然在Web 渗透方面取得了一定的研究成果,但是还存在一些不足之处,今后还需要在该方面进行深入的探索和研究,为Web渗透技术的发展与应用提供依据。