WEB应用评估白皮书 在WEB应用评估过程中,评估人员会使用专门的工具对所有Web页面和数据库相关内容进行检查,确认是否存在挂马内容。
2.3.7 WebShell检测
WebShell是最初是一种方便站长管理服务器的脚本应用程序,通常可以进行在线编辑文件、上传下载文件、查看数据库、执行任意程序命令等操作,后被攻击者所利用。攻击者可以通过Web应用程序上的漏洞上传Webshell脚本,进而控制WEB服务器。
在Web评估过程中,评估人员会对所有Web页面进行扫描,确认是否存在Webshell。
2.4 评估流程
图 2.1 WEB应用评估流程图
? 2019 绿盟科技 - 7 - 密级:完全公开
WEB应用评估白皮书 三. 相关技术
3.1 信息采集技术
在评估过程中,为了帮助分析工作,评估人员需要根据各评估项的要求来采集必要的信息,用于辅助分析和为安全性测试提供依据。
无论是WEB应用评估还是传统的风险评估,这都是一项必不可少的工作。
3.1.1 系统和应用信息收集
通过对远程服务器所启动的服务进行扫描和手工提交等工作,根据其返回信息可以获取远程系统及应用的版本号等信息,对于存在弱点的应用还可以进一步挖掘更多的系统信息,例如:SMB、SNMP等。
3.1.2 应用信息收集
应用信息主要包括三个部分:WEB服务信息,数据库信息和WEB应用结构。 通过上面所介绍的手段可获取WEB和数据库信息。而若想进一步获取WEB应用结构,需要使用爬虫程序。目前,一般WEB扫描器都具备比较强大的爬虫功能,通过爬虫程序可以快速的遍历出站点结构,这对于后期的漏洞挖掘是必不可少的基础信息。
3.2 溢出攻击
溢出是比较传统却又很常见的一种漏洞。
溢出攻击的测试过程中,测试人员将根据收集的信息以确认应用或系统的版本,从而判断在当前应用或系统上是否存在已知溢出漏洞和可利用的攻击程序,同时,测试人员会在攻击程序对系统的稳定运行不产生影响的前提下使用攻击程序发起溢出攻击。
3.3 口令猜解
大部分常见的操作系统及应用均使用帐号/口令的认证方式,因此,在配置检查和安全测试过程中,对用户口令的猜解测试也是一个重要的工作环节,绿盟科技在评估过程中,根据系统的不同,至少可以进行以下服务或应用的口令猜解测试:
? 2019 绿盟科技
- 8 -
密级:完全公开
WEB应用评估白皮书 ? SMB/CIFS ? TELNET ? SSH ? FTP
? POP/SMTP/IMAP ? Terminal Service ? MySQL ? MSSQL ? Oracle ? HTTP ? HTTP Form
3.4 WEB漏洞挖掘技术
WEB应用与操作系统不同,WEB应用可很容易的根据用户需求而进行编写,因此,大部分WEB应用并不具备“通用的漏洞”。因此,这就决定了安全测试人员需具备一定的WEB漏洞挖掘能力,这样才能保证在面对陌生系统时进行有针对性的测试工作。
3.4.1 跨站脚本
跨站脚本(XSS,Cross Site Script),指服务端程序在接收用户提交信息时没有对信息进行必要的检查或编码而导致页面包含了可能对客户端造成伤害的脚本。跨站脚本直接对客户端浏览器产生影响,如:窃取敏感信息、下载恶意程序、钓鱼等,而由于跨站而形成的XSS Worm可能造成更大的威胁。
测试人员根据经验,在可能出现程序交互的位置插入自己构造的测试脚本进行提交,观察返回结果并判断插入的测试脚本是否生效,如不生效则结合返回结果对测试脚本进行进一步的修正,如此反复最终形成可利用的攻击脚本。
3.4.2 注入漏洞
注入漏洞中常见的为SQL注入(SQL Injection),SQL注入是指当服务端接受客户端信息时,未对客户端信息进行任何校验就将其送入数据库中进行查询操作,而恶意用户只需对客户端提交信息进行一定的构造,就可以导致数据执行一些危险操作。
类似的,注入漏洞还存在其他方式,如:LDAP注入、XPath注入、系统命令注入等。
? 2019 绿盟科技
- 9 -
密级:完全公开
WEB应用评估白皮书 测试人员在测试注入漏洞前,会先根据收集到的一些信息判断远程目标系统类型、编写程序脚本所使用的语言以及后台数据库类型等信息,然后结合交互查询过程中产生的信息提交测试脚本,以确认系统是否存在注入漏洞。
3.4.3 参数错误
参数错误与注入漏洞相似,但一般参数错误漏洞是直接作用在WEB程序本身,而不像注入漏洞那样作用于后台支撑的应用。
参数错误主要是指在程序接收客户端参数时(一般为GET和POST两种参数),对客户端提交参数未做过滤,而同时WEB脚本之间又不具备严格的访问控制,进而导致通过错误的参数直接浏览、修改甚至获得WEB Shell。
对于错误参数的测试,测试人员需对网站的整体结构有一定的了解,通过测试人员对站点结构的精确掌握,构造错误的参数便可能造成恶意修改站点数据。
3.4.4 信息泄露
信息泄露往往来自多个层面,而其中由于服务配置错误引起的信息泄露最为常见。 测试人员在测试信息泄露时,需收集应用服务器的信息,结合该信息测试人员可确认该应用上可能出现的错误配置,并通过各种手段针对每种可能的错误配置进行逐一排查。
除此之外,测试人员还会结合个人经验对站点的一些目录或文件进行猜解,例如:针对后台管理地址的猜解。
3.4.5 其他
除以上四种常见WEB漏洞外,还有很多可能造成WEB应用被入侵的问题。
例如,最为常见的是口令易被猜解和用户之间存在越权访问,这些问题在漏洞挖掘过程中,测试人员都会根据现场情况并结合个人经验进行必要的测试工作。
四. 风险规避
WEB应用评估的大部分工作对于客户的应用系统来说都是绝对安全的,不会造成任何破坏性的影响,唯一可能对系统产生影响的只有WEB安全测试中的应用测试这部分内容,为保
? 2019 绿盟科技
- 10 -
密级:完全公开
WEB应用评估白皮书 障客户的系统在应用测试过程中稳定、安全的运转,我们将提供以下多种方式来进行风险规避。
4.1 时间
从时间安排上,评估人员将尽量避免在数据高峰时段进行应用测试,以此来减小测试工作对被测试系统带来的压力。
另外,评估人员在每次测试前也将通过电话、邮件等方式告知相关人员,以防止测试过程中出现意外情况。
4.2 工具使用
在使用工具测试的过程中,评估人员会通过设置线程、插件数量等参数来减少其对系统的压力,同时还会去除任何可能对目标系统带来危害的插件,如:远程溢出攻击类插件、拒绝服务攻击类插件等等。
4.3 技术手段
绿盟科技的评估人员都具有丰富的经验和技能,在每一步测试前都会预估可能带来的后果,对于可能产生影响的测试(如:溢出攻击)将被记录并跳过,并在随后与客户协商决定是否进行测试及测试方法。
4.4 监控
在对WEB应用进行测试前,评估人员会告知相关管理人员,并且在测试过程中会随时关注目标系统的负荷等信息,一旦出现任何异常,将会停止测试。
4.5 目标的选择
为更大程度的避免风险的产生,应用测试可以选择对应用的备份系统进行测试。因为备份系统与在线系统所安装的应用和承载的数据差异较小,而其稳定性要求又比在线系统低,因此,选择对备份系统进行测试也是规避风险的一种常见方式。
? 2019 绿盟科技 - 11 - 密级:完全公开