缓冲区错误
漏洞说明:软件在内存缓冲区上执行操作,但是它可以读取或写入缓冲区的预定边界以外的内存位置。<br> 某些语言允许直接访问内存地址,但是不能自动确认这些内存地址是有效的内存缓冲区。这可能导致在与其他变量、数据结构或内部程序数据相关联的内存位置上执行读/写操作。作为结果,攻击者可能执行任意代码、修改预定的控制流、读取敏感信息或导致系统崩溃。
注入
格式化字符串
漏洞说明: 软件使用的函数接收来自外部源代码提供的格式化字符串作为函数的参数。<br> 当攻击者能修改外部控制的格式化字符串时,这可能导致缓冲区溢出、拒绝服务攻击或者数据表示问题。
命令注入
操作系统命令注入
漏洞说明:软件使用来自上游组件的受外部影响的输入构造全部或部分操作系统命令,但是没有过滤或没有正确过滤掉其中的特殊元素,这些元素可以修改发送给下游组件的预期操作系统命令。<br>此类漏洞允许攻击者在操作系统上直接执行意外的危险命令。
漏洞说明:软件使用来自上游组件的受外部影响的输入构造全部或部分命令,但是没有过滤或没有正确过滤掉其中的特殊元素,这些元素可以修改发送给下游组件的预期命令。<br> 命令注入漏洞通常发生在(1)输入数据来自非可信源;(2)应用程序使用输入数据构造命令;(3)通过执行命令,应用程序向攻击者提供了其不该拥有的权限或能力。
跨站脚本
漏洞说明:在用户控制的输入放置到输出位置之前软件没有对其中止或没有正确中止,这些输出用作向其他用户提供服务的网页。<br> 跨站脚本漏洞通常发生在(1)不可信数据进入网络应用程序,通常通过网页请求;(2)网络应用程序动态地生成一个带有不可信数据的网页;(3)在网页生成期间,应用程序不能阻止Web浏览器可执行的内容数据,例如JavaScript,HTML标签,HTML属性、鼠标事件、Flash、ActiveX等;(4)受害者通过浏览器访问的网页包含带有不可信数据的恶意脚本;(5)由于脚本来自于通过web服务器发送的网页,因此受害者的web浏览器会在web服务器域的上下文中执行恶意脚本;(6)违反web浏览器的同源策略,同源策略是一个域中的脚本不能访问或运行其他域中的资源或代码。
代码注入
漏洞说明:软件使用来自上游组件的受外部影响的输入构造全部或部分代码段,但是没有过滤或没有正确过滤掉其中的特殊元素,这些元素可以修改发送给下游组件的预期代码段。<br> 当软件允许用户的输入包含代码语法时,攻击者可能会通过伪造代码修改软件的内部控制流。此类修改可能导致任意代码执行。
SQL注入
漏洞说明: 软件使用来自上游组件的受外部影响的输入构造全部或部分SQL命令,但是没有过滤或没有正确过滤掉其中的特殊元素,这些元素可以修改发送给下游组件的预期SQL命令。<br> 如果在用户可控输入中没有充分删除或引用SQL语法,生成的SQL查询可能会导致这些输入被解释为SQL命令而不是普通用户数据。利用SQL注入可以修改查询逻辑以绕过安全检查,或者插入修改后端数据库的其他语句,如执行系统命令。
漏洞说明: 软件使用来自上游组件的受外部影响的输入,构造全部或部分命令、数据结构或记录,但是没有过滤或没有正确过滤掉其中的特殊元素,当发送给下游组件时,这些元素可以修改其解析或解释方式。<br> 软件对于构成其数据和控制的内容有其特定的假设,然而,由于缺乏对用户输入的验证而导致注入问题。
路径遍历
漏洞说明: 为了识别位于受限的父目录下的文件或目录,软件使用外部输入来构建路径。由于软件不能正确地过滤路径中的特殊元素,能够导致访问受限目录之外的位置。<br> 许多文件操作都发生在受限目录下。攻击者通过使用特殊元素(例如,“..”、“/”)可到达受限目录之外的位置,从而获取系统中其他位置的文件或目录。相对路径遍历是指使用最常用的特殊元素“../”来代表当前目录的父目录。绝对路径遍历(例如"/usr/local/bin")可用于访问非预期的文件。
后置链接
漏洞说明:软件尝试使用文件名访问文件,但该软件没有正确阻止表示非预期资源的链接或者快捷方式的文件名。
漏洞说明: 产品没有验证或者错误地验证可以影响程序的控制流或数据流的输入。如果有足够的信息,此类漏洞可进一步分为更低级别的类型。<br> 当软件不能正确地验证输入时,攻击者能够伪造非应用程序所期望的输入。这将导致系统接收部分非正常输入,攻击者可能利用该漏洞修改控制流、控制任意资源和执行任意代码。