原标题:Tplmap – 扫描服务器端模板注入漏洞的开源工具

全球最大 ERP 供应商 SAP
近日宣布开源软件组合分析(SCA)工具 vulnerability-assessment-tool。

对于一个复杂的多层结构的系统和网络安全规划来说,隐患扫描是一项重要的组成元素。隐患扫描能够模拟黑客的行为,对系统设置进行攻击测试,以帮助管理员在黑客攻击之前,找出网络中存在的漏洞。这样的工具可以远程评估你的网络的安全级别,并生成评估报告,提供相应的整改措施。目前,市场上有很多隐患扫描工具,按照不同的技术、不同的特征、不同的报告方法,以及不同的监听模式,可以分成好几类。不同的产品之间,漏洞检测的准确性差别较大,这就决定了生成的报告的有效性上也有很大区别。选择正确的隐患扫描工具,对于提高你的系统的安全性,非常重要。
1 漏洞扫描概述
在字典中,Vulnerability意思是漏洞或者缺乏足够的防护。在军事术语中,这个词的意思更为明确,也更为严重——有受攻击的嫌疑。每个系统都有漏洞,不论你在系统安全性上投入多少财力,攻击者仍然可以发现一些可利用的特征和配置缺陷。这对于安全管理员来说,实在是个不利的消息。但是,多数的攻击者,通常做的是简单的事情。发现一个已知的漏洞,远比发现一个未知漏洞要容易的多,这就意味着:多数攻击者所利用的都是常见的漏洞,这些漏洞,均有书面资料记载。这样的话,采用适当的工具,就能在黑客利用这些常见漏洞之前,查出网络的薄弱之处。如何快速简便地发现这些漏洞,这个非常重要。漏洞,大体上分为两大类:
① 软件编写错误造成的漏洞;② 软件配置不当造成的漏洞。
漏洞扫描工具均能检测以上两种类型的漏洞。漏洞扫描工具已经出现好多年了,安全管理员在使用这些工具的同时,黑客们也在利用这些工具来发现各种类型的系统和网络的漏洞。
2 隐患扫描工具的衡量因素
决定是否采用隐患扫描工具来防范系统入侵是重要的第一步。当您迈出了这一步后,接下来的是:如何选择满足您公司需要的合适的隐患扫描技术,这同样也很重要。以下列出了一系列衡量因素:
① 底层技术;② 特性;③ 漏洞库中的漏洞数量;④ 易用性;⑤
生成的报告的特性;⑥ 对于漏洞修复行为的分析和建议;⑦ 安全性;⑧ 性能;⑨
价格结构 2.1 底层技术
比较漏洞扫描工具,第一是比较其底层技术。你需要的是主动扫描,还是被动扫描;是基于主机的扫描,还是基于网络的扫描,等等。一些扫描工具是基于Internet的,用来管理和集合的服务器程序,是运行在软件供应商的服务器上,而不是在客户自己的机器上。这种方式的优点在于检测方式能够保证经常更新,缺点在于需要依赖软件供应商的服务器来完成扫描工作。扫描古城可以分为“被动”和“主动”两大类。被动扫描不会产生网络流量包,不会导致目标系统崩溃,被动扫描工具对正常的网络流量进行分析,可以设计成“永远在线”检测的方式。与主动扫描工具相比,被动扫描工具的工作方式,与网络监控器或IDS类似。主动扫描工具更多地带有“入侵”的意图,可能会影响网络和目标系统的正常操作。他们并不是持续不断运行的,通常是隔一段时间检测一次。基于主机的扫描工具需要在每台主机上安装代理软件;而基于网络的扫描工具则不需要。基于网络的扫描工具因为要占用较多资源,一般需要一台专门的计算机。如果网络环境中含有多种操作系统,您还需要看看扫描其是否兼容这些不同的操作系统。
2.2 管理员所关心的一些特性
通常,漏洞扫描工具完成一下以下?功能:扫描、生成报告、分析并提出建议,以及数据管理。在许多方面,扫描是最常见的功能,但是信息管理和扫描结果分析的准确性同样很重要。另外要考虑的一个方面是通知方式:当发现漏洞后,扫描工具是否会向管理员报警?采用什么方式报警?对于漏洞扫描软件来说,管理员通常关系以下几个方面:
① 报表性能好;② 易安装,易使用;③ 能够检测出缺少哪些补丁;④
扫描性能好,具备快速修复漏洞的能力;⑤ 对漏洞及漏洞等级检测的可靠性;⑥
可扩展性;⑦ 易升级性;⑧ 性价比好; 2.3 漏洞库
只有漏洞库中存在相关信息,扫描工具才能检测到漏洞,因此,漏洞库的数量决定了扫描工具能够检测的范围。然而,数量并不意味着一切,真正的检验标准在于扫描工具能否检测出最常见的漏洞?最根本的在于,扫描工具能否检测出影响您的系统的那些漏洞?扫描工具中有用的总量取决于你的网络设备和系统的类型。你使用扫描工具的目的是利用它来检测您的特定环境中的漏洞。如果你有很多Netware服务器,那么,不含Netware漏洞库的扫描工具就不是你的最佳选择。当然,漏洞库中的攻击特性必须经常升级,这样才能检测到最近发现的安全漏洞。
2.4 易使用性
一个难以理解和使用的界面,会阻碍管理员使用这些工具,因此,界面友好性尤为重要。不同的扫描工具软件,界面也各式各样,从简单的基于文本的,到复杂的图形界面,以及Web界面。
2.5 扫描报告
对管理员来说,扫描报告的功能越来越重要,在一个面向文档的商务环境中,你不但要能够完成你的工作,而且还需要提供书面资料说明你是怎样完成的。事实上,一个扫描可能会得到几百甚至几千个结果,但是这些数据是没用的,除非经过整理,转换成可以为人们理解的信息。这就意味着理想情况下,扫描工具应该能够对这些数据进行分类和交叉引用,可以导到其他程序中,或者转换成其他格式,采用不同方式来展现它,并且能够很容易的与以前的扫描结果做比较。
2.6 分析与建议
发现漏洞,才完成一半工作。一个完整的方案,同时将告诉你针对这些漏洞将采取哪些措施。一个好的漏洞扫描工具会对扫描结果进行分析,并提供修复建议。一些扫描工具将这些修复建议整合在报告中,另外一些则提供产品网站或其它在线资源的链接。漏洞修复工具,它可以和流行的扫描工具结合在一起使用,对扫描结果进行汇总,并自动完成修复过程。
2.7 分析的准确性
只有当报告的结果是精确的,提供的修复建议是有效的,一份包含了详细漏洞修复建议的报告,才算是一份优秀的报告。一个好的扫描工具必须具有很低的误报率和漏报率。
2.8 安全问题
因扫描工具而造成的网络瘫痪所引起的经济损失,和真实攻击造成的损失是一样的,都非常巨大。一些扫描工具在发现漏洞后,会尝试进一步利用这些漏洞,这样能够确保这些漏洞是真实存在的,进而消除误报的可能性。但是,这种方式容易出现难以预料的情况。在使用具备这种功能的扫描工具的时候,需要格外小心,最好不要将其设置成自动运行状态。扫描工具可能造成网络失效的另一种原因,是扫描过程中,超负荷的数据包流量造成拒绝服务。为了防止这一点,需要选择好适当的扫描设置。相关的设置项有:并发的线程数、数据包间隔时间、扫描对象总数等,这些项应该能够调整,以便使网络的影响降到最低。一些扫描工具还提供了“安全扫描”的模板,以防止造成对目标系统的损耗。
2.9 性能
扫描工具运行的时候,将占用大量的网络带宽,因此,扫描过程应尽快完成。当然,漏洞库中的漏洞数越多,选择的扫描模式越复杂,扫描所耗时间就越长,因此,这只是个相对的数值。提高性能的一种方式,是在企业网中部署多个扫描工具,将扫描结果反馈到一个系统中,对扫描结果进行汇总。
3 隐患扫描工具的价格策略
商业化的扫描工具通常按以下几种方式来发布器授权许可证:按IP地址授权,按服务器授权,按管理员授权。不同的授权许可证方式有所区别。
3.1 按IP段授权
许多扫描其产品,比如eEye的Retina和ISS要求企业用户按照IP段或IP范围来收费。换句话说,价格取决于所授权的可扫描的IP地址的数目。
3.2 按服务器授权
一些扫描工具供应商,按照每个服务器/每个工作站来计算器许可证的价格。服务器的授权价格会比工作站高很多,如果有多台服务器的话,扫描工具的价格会明显上升。
3.3 按管理员授权
对于大多数企业而言,这种授权方式,比较简单,性价比也较好。 4 总结
在现在的互联网环境中,威胁无处不在。2003年1-3季度,CERT协调中心就收到超过114,000个漏洞事件报告,这个数字超过2002年的总和,这表明,此类事件在不断增长中。为了防范攻击,第一件事就是在黑客发动攻击之前,发现网络和系统中的漏洞,并及时修复。但是,漏洞扫描工具在特性、精确性、价格以及可用性上差别较大,如何选择一个正确的隐患扫描工具,尤为重要。(end)

Tplmap是一个python工具,可以通过使用沙箱转义技术找到代码注入和服务器端模板注入(SSTI)漏洞。该工具能够在许多模板引擎中利用SSTI来访问目标文件或操作系统。一些受支持的模板引擎包括PHP(代码评估),Ruby(代码评估),Jave(代码评估),Python(代码评估),ERB,Jinja2和Tornado。该工具可以执行对这些模板引擎的盲注入,并具有执行远程命令的能力。

vulnerability-assessment-tool 侧重于检测如 OWASP-Top 10 2017
A9 所述的脆弱的组件,通过扫描 Java 和 Python
应用软件包中的直接依赖项和间接依赖项,对比漏洞库,判断检测包是否包含已知漏洞。

安装Tplmap

据介绍,vulnerability-assessment-tool 已在内部测试了两年,对 600
多个项目进行了 20000
次扫描。

图片 1

特性如下:

可以通过使用以下github链接从github存储库克隆该工具来安装Tplmap。

  • 通过查找 Java
    文件中的方法签名并将其源码与字节码对比漏洞版本和修复版本,实现对漏洞代码的检测。
  • 通过关于漏洞代码的潜在和实际执行信息,应用开发人员和安全专家对存在漏洞的依赖进行评估。
  • 向已知漏洞库添加新漏洞不需要重新扫描应用程序。
  • 给出缓解漏洞建议,通过计算多个指标,开发人员可以选择漏洞依赖的最佳非漏洞替代品。
  • 如果开发人员得出的结论是在给定的应用程序上下文中无法利用漏洞,那么可以不必进行单独的分析。
  • 组织内部 CERT 可以查询受相关漏洞影响的所有应用。

git clone

(文/开源中国)    

成功安装后,将目录路径更改为tplmap安装文件以启动tplmap.py。

测试Web应用程序中的漏洞

Tplmap不仅利用了文件系统的漏洞,而且还具有使用不同参数访问底层操作系统的能力。以下屏幕截图显示了可用于访问操作系统的不同参数选项

图片 2

以下命令可用于测试目标URL中的易受攻击的参数。

./tplmap.py -u <‘目标网址’>

执行该命令后,该工具会针对多个插件测试目标URL以查找代码注入机会。

图片 3

如果发现漏洞,该工具将输出有关目标中可能注入点的详细信息。这些包括GET参数值(无论是id还是名称),模板引擎(例如Tornado),OS(例如Linux)和注入技术(例如渲染,盲)。

图片 4

对于易受攻击的目标操作系统,可以使用前面提到的其中一个参数重新运行tplmap命令。例如,我们可以通过以下方式将-os
-shell选项与tplmap命令一起使用。

./tplmap.py –os-shell -u <‘目标网址’>

-os -shell选项在目标操作系统上启动伪终端以执行所需的代码。

文章出处:latesthackingnews返回搜狐,查看更多

责任编辑: