本文针对WASC给出的分类,根据测试经验,进行进一步分析,从检测角度进一步完善攻击类型。
WASC的漏洞分类相比OWASP来说,更加的具体,比如OWASP就是失效的认证会话管理,WASC分开说:Insufficient Authentication(身份认证不足)、Credential/SessionPrediction(会话凭证可预测) 、Session Fixation(会话固定),从挖漏洞角度来看,确实更准确的说明了漏洞存在的原理,比如会话凭证可预测是指会话凭证,如token值不够随机,存在某种规律,可被攻击者破解,这样攻击者就可以伪造成合法用户进入系统了,会话固定是指登陆前后,会话的session值未更新,如果说攻击者拿到了之前的会话session信息,同样可以伪造成合法用户访问系统。
WASC还有一些更贴近业务的漏洞种类,比如:Insufficient Anti-Automation(防止自动化缺失),比如爬虫就是一种自动化技术,对我们的业务系统也有潜在的安全风险,而防止这种自动化的机器行为目前使用的最多的就是验证码,但如果验证码没有合理设置,比如验证码不过期这个漏洞,或者验证码可绕过,都是一种防止自动化缺失的漏洞。还有:Abuse of Functionality(功能滥用),这也是一种业务漏洞,比如常见的接口未设置合理的访问控制,如短信平台,攻击者可随意使用,导致短信炸弹,给用户和企业造成损失。
说明:其实日志或者流量上是不能监测到一些攻击的,比如:
1、访问控制缺陷,这个漏洞是因为未对用户进行有效的访问控制,导致非法用户可以访问合法用户才能访问的系统,包括越权和未授权访问,但从日志或者流量上看,并没有明显的攻击特征。(需要通过黑名单白名单进行检测)
2、传输层保护缺失,比如http明文传输用户的敏感信息,如密码,是漏洞,但不是攻击行为。
3、跨站请求伪造,攻击者让受害者访问的请求可以说是“合法的”,受害者确实访问了这个链接,但是在不知情或者说受到欺骗的情况下,所以该攻击并不能监测到。
4、Insufficient Process Validation(过程验证缺失)
如下是WASC
WASC-01 Insufficient Authentication(身份认证不足)
WASC-02 Insufficient Authorization(访问控制缺陷 )
WASC-03 Integer Overflows(整数溢出)
WASC-04 Insufficient Transport Layer Protection(传输层保护缺失 )
WASC-05 Remote File Inclusion(远程文件包含)
WASC-06 Format String(格式化字符)
WASC-07 Buffer Overflow(缓冲区溢出)
WASC-08 Cross-site Scripting(跨站脚本攻击)
WASC-09 Cross-site Request Forgery(跨站请求伪造 )
WASC-10 Denial of Service(拒绝服务)
WASC-11 Brute Force(暴力破解)
WASC-12 Content Spoofing(内容欺骗)
WASC-13 Information Leakage(信息泄露)
WASC-14 Server Misconfiguration(服务错误配置)
WASC-15 Application Misconfiguration(错误配置)
WASC-16 Directory Indexing(目录索引)
WASC-17 Improper Filesystem Permissions(不正确的文件系统权限)
WASC-18 Credential/Session Prediction(会话凭证可预测)
WASC-19 SQL Injection(sql注入)
WASC-20 Improper Input Handling
WASC-21 Insufficient Anti-Automation(防止自动化缺失)
WASC-22 Improper Output Handling
WASC-23 XML Injection
WASC-24 HTTP Request Splitting
WASC-25 HTTP ResponseSplitting
WASC-26 HTTP RequestSmuggling
WASC-27 HTTP Response Smuggling
WASC-28 Null Byte Injection
WASC-29 LDAP Injection
· LDAP注入攻击和SQL注入攻击相似,是利用用户引入的参数生成LDAP查询。在有漏洞的环境中,这些参数没有得到合适的过滤,因而攻击者可以注入任意恶意代码。使用得最广泛的LDAP:ADAM和OpenLDAP。
WASC-30 Mail Command Injection
WASC-31 OS Commanding(操作系统命令注入)
WASC-32 Routing Detour
WASC-33 Path Traversal
WASC-34 Predictable Resource Location(可预测的资源位置)
WASC-35 SOAP Array Abuse
· SOAP是基于XML实现的协议,存在SOAP Array Abuse和Href expansion攻击,这两种攻击本质是一样的,消耗服务器的内存资源,造成DOS拒绝服务攻击。原理很简单,定义一个很大的数组,或者通过href数组嵌套,构造很大的数组,服务器的soap解析器处理到这样的SOAP消息时,如果没有特别防御,就会在服务器上分配很大的内存,造成服务器资源耗尽。
WASC-36 SSI Injection(服务器端包含注入)
· (Server-sideIncludes) 服务器端包含提供了一种对现有HTML文档增加动态内容的方法。apache和iis都可以通过配置支持SSI,在网页内容被返回给用户之前,服务器会执行网页内容中的SSI标签。在很多场景中,用户输入的内容可以显示在页面中,比如一个存在反射XSS漏洞的页面,如果输入的payload不是xss代码而是ssi的标签,服务器又开启了ssi支持的话就会存在SSI漏洞。默认apache不开启ssi,ssi这种技术已经比较少用了。如果应用没有使用到ssi,关闭服务器对ssi的支持即可。
WASC-37 Session Fixation(会话固定)
WASC-38 URl Redirector Abuse(url重定向滥用)
WASC-39 XPath Injection
WASC-40 Insufficient Process Validation(过程验证缺失)
WASC-41 XML Attribute Blowup
WASC-42 Abuse of Functionality(功能滥用)
WASC-43 XML External Entities(xml外部实体)
WASC-44 XML Entity Expansion(XML实体扩展攻击)
· XMlEntity Expansion(攻击)某种程度上类似于 XML Entity Expansion,但是它主要试图通过消耗目标程序的服务器环境来进行DOS攻击的。这种攻击基于XML Entity Expansion实现,通过在XML的DOCTYPE中创建自定义实体的定义实现,比如,这种定义可以在内存中生成一个比XML的原始允许大小大出很多的XML结构,来使这种攻击得以耗尽网络服务器正常有效运行的必需内存资源。
WASC-45 Fingerprinting(指纹识别)
WASC-46 XQuery Injection
WASC-47 Insufficient Session Expiration
WASC-48 InsecureIndexing
WASC-49 Insufficient Password Recovery