HTTP.sys 远程代码执行
测试类型:
基础结构测试
威胁分类:
操做系统命令
缘由:
未安装第三方产品的最新补丁或最新修订程序
安全性风险:
可能会在 Web 服务器上运行远程命令。这一般意味着彻底破坏服务器及其内容
技术描述:
经过 IIS 6 引入的 HTTP 协议堆栈 (HTTP.sys) 错误地解析了特制的 HTTP 请求。所以,远程攻击者可能执行拒绝服务供给,并可在系统账户的环境中执行任意代码。该漏洞会影响 Windows 七、Windows Server 2008R二、Windows 八、Windows Server 20十二、Windows 8.1 和 Windows Server 2012 R2 上安装的 IIS。Microsoft 发布了经过修改 Windows HTTP 堆栈处理请求的方式来解决漏洞的更新。
利用的样本:
GET / HTTP/1.1
Host: [SERVER]
Range: bytes=0-18446744073709551615
SQL 盲注
测试类型:
应用程序级别测试
威胁分类:
SQL 注入
缘由:
未对用户输入正确执行危险字符清理
安全性风险:
可能会查看、修改或删除数据库条目和表
技术描述:
该软件使用受外部影响的输入来构造 SQL 命令的所有或一部分,可是它未能对可能在 SQL 命令发送到数据库时修改该命令的元素进行无害化处理。若是在用户可控制的输入中没有对 SQL 语法充分地除去或引用,那么生成的 SQL 查询可能会致使将这些输入解释为 SQL 而不是普通用户数据。这可用于修改查询逻辑以绕过安全性检查,或者插入其余用于修改后端数据库的语句,可能包括执行系统命令。
例如,假设有一个带有登陆表单的 HTML 页面,该页面最终使用用户输入对数据库运行如下 SQL 查询:
SELECT * FROM accounts WHERE username='$user' AND password='$pass'
两个变量($user 和 $pass)包含了用户在登陆表单中输入的用户凭证。若是用户输入“jsmith”做为用户名,并输入“Demo1234”做为密码,那么 SQL 查询将以下所示:
SELECT * FROM accounts WHERE username='jsmith' AND password='Demo1234'
但若是用户输入“'”(单撇号)做为用户名,输入“'”(单撇号)做为密码,那么 SQL 查询将以下所示:
SELECT * FROM accounts WHERE username=''' AND password='''
固然,这是格式错误的 SQL 查询,并将调用错误消息,而该错误消息可能会在 HTTP 响应中返回。经过此类错误,攻击者会知道 SQL 注入已成功,这样攻击者就会尝试进一步的攻击媒介。SQL 盲注相似于 SQL 注入。不一样之处在于,要利用该攻击,攻击者无需寻找响应中的 SQL 错误。所以,AppScan 用于识别该攻击的方法也不一样。AppScan 会查找易受 SQL 注入(经过多个请求来操纵应用程序的逻辑,而不是尝试调用 SQL 错误)影响的脚本。
该技巧须要发送特定请求,其中易受攻击的参数(嵌入在 SQL 查询中的参数)进行了相应修改,以便响应中会指示是否在 SQL 查询上下文中使用数据。该修改涉及将 AND 布尔表达式与原始字符串一块儿使用,使其一时求值为 True,一时求值为 False。在一种状况下,净结果应该与原始结果相同(登陆成功),而在另外一种状况下,结果应该彻底不一样(登陆失败)。在某些少见的状况下,求值为 True 的 OR 表达式也可能颇有用。若是原始数据是数字,可使用更简单的花招。假设原始数据为 123。此数据能够在一个请求中替换为 0+123,而在另外一个请求中替换为 456+123。第一个请求的结果应该与原始结果相同,第二个请求的结果应该不一样(由于得出的数字是 579)。在某些状况中,咱们仍须要上面所说明的攻击版本(使用 AND 和 OR),但并不转义字符串上下文。
SQL 盲注背后的概念是,即便不直接从数据库接收数据(以错误消息或泄漏的信息的形式),也可能从数据库中抽取数据(每次一个比特),或以恶意方式修改查询。其原理在于,应用程序的行为(返回与原始响应相同或不一样的响应)能够提供有关所求值的(已修改)查询的单比特信息,也就是说,攻击者有可能设计出一个 SQL 布尔表达式,其求值(单比特)经过应用程序行为(与原始行为相同/不一样)来形成破坏。
查询中的密码参数
测试类型:
应用程序级别测试
威胁分类:
信息泄露
缘由:
查询字符串中传递了敏感输入字段(例如用户名、密码和信用卡号)
安全性风险:
可能会窃取查询字符串中发送的敏感数据,例如用户名和密码
技术描述:
在应用程序测试过程当中,检测到查询字符串中接收到密码参数。因为登陆过程所用的部分输入字段(例如:用户名、密码、电子邮件地址、社会保险号码,等等)是我的敏感信息,建议将其放在请求的主体部分或加密链接(如 SSL)中来发送到服务器。任何经过查询字符串传给服务器的信息均可能被窃,稍后可用来电子欺骗身份或假装用户。此外,若干隐私权法规指出,用户凭证之类的敏感信息一概以加密方式传给网站。
跨站点脚本编制
测试类型:
应用程序级别测试
威胁分类:
跨站点脚本编制
缘由:
未对用户输入正确执行危险字符清理
安全性风险:
可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客可以以该用户身份查看或变动用户记录以及执行事务
技术描述:
AppScan 检测到应用程序未对用户可控制的输入正确进行无害化处理,就将其放置到充当 Web 页面的输出中。这可被跨站点脚本编制攻击利用。
在如下状况下会发生跨站点脚本编制 (XSS) 脆弱性:
[1] 不可信数据进入 Web 应用程序,一般来自 Web 请求。
[2] Web 应用程序动态生成了包含此不可信数据的 Web 页面。
[3] 页面生成期间,应用程序不会禁止数据包含可由 Web 浏览器执行的内容,例如 JavaScript、HTML 标记、HTML 属性、鼠标事件、Flash 和 ActiveX。
[4] 受害者经过 浏览器访问生成的 Web 页面,该页面包含已使用不可信数据注入的恶意脚本。
[5] 因为脚原本自 Web 服务器发送的 Web 页面,所以受害者的 Web 浏览器在 Web 服务器的域的上下文中执行恶意脚本。
[6] 这实际违反了 Web 浏览器的同源策略的意图,该策略声明一个域中的脚本不该该可以访问其余域中的资源或运行其余域中的代码。
一旦注入恶意脚本后,攻击者就可以执行各类恶意活动。攻击者可能将私有信息(例如可能包含会话信息的 cookie)从受害者的机器传输给攻击者。攻击者可能以受害者的身份将恶意请求发送到 Web 站点,若是受害者具备管理该站点的管理员特权,这可能对站点尤为危险。
网络钓鱼攻击可用于模仿可信站点,并诱导受害者输入密码,从而使攻击者可以危及受害者在该 Web 站点上的账户。最后,脚本可利用 Web 浏览器自己中的脆弱性,多是接管受害者的机器(有时称为“路过式入侵”)。
主要有三种类型的 XSS:
类型 1:反射的 XSS(也称为“非持久性”)
服务器直接从 HTTP 请求中读取数据,并将其反射回 HTTP 响应。在发生反射的 XSS 利用状况时,攻击者会致使受害者向易受攻击的 Web 应用程序提供危险内容,而后该内容会反射回受害者并由 Web 浏览器执行。传递恶意内容的最经常使用机制是将其做为参数包含在公共发布或经过电子邮件直接发送给受害者的 URL 中。以此方式构造的 URL 构成了许多网络钓鱼方案的核心,攻击者借此骗取受害者的信任,使其访问指向易受攻击的站点的 URL。在站点将攻击者的内容反射回受害者以后,受害者的浏览器将执行该内容。
类型 2:存储的 XSS(也称为“持久性”)
应用程序在数据库、消息论坛、访问者日志或其余可信数据存储器中存储危险数据。在之后某个时间,危险数据会读回到应用程序并包含在动态内容中。从攻击者的角度来看,注入恶意内容的最佳位置是向许多用户或特别感兴趣的用户显示的区域。感兴趣的用户一般在应用程序中具备较高的特权,或者他们会与对攻击者有价值的敏感数据进行交互。若是其中某个用户执行恶意内容,那么攻击者就有可能可以以该用户的身份执行特权操做,或者获取对属于该用户的敏感数
据的访问权。例如,攻击者可能在日志消息中注入 XSS,而管理员查看日志时可能不会正确处理该消息。
类型 0:基于 DOM 的 XSS
在基于 DOM 的 XSS 中,客户机执行将 XSS 注入页面的操做;在其余类型中,注入操做由服务器执行。基于 DOM 的XSS 中一般涉及发送到客户机的由服务器控制的可信脚本,例如,在用户提交表单以前对表单执行健全性检查的Javascript。若是服务器提供的脚本处理用户提供的数据,而后将数据注入回 Web 页面(例如经过动态 HTML),那么基于 DOM 的 XSS 就有可能发生。如下示例显示了在响应中返回参数值的脚本。
参数值经过使用 GET 请求发送到脚本,而后在 HTML 中嵌入的响应中返回。
[REQUEST]
GET /index.aspx?name=JSmith HTTP/1.1
[RESPONSE]
HTTP/1.1 200 OK
Server: SomeServer
Date: Sun, 01 Jan 2002 00:31:19 GMT
Content-Type: text/html
Accept-Ranges: bytes
Content-Length: 27
<HTML>
Hello JSmith
</HTML>
攻击者可能会利用相似如下状况的攻击:
[ATTACK REQUEST]
GET /index.aspx?name=>"'><script>alert('PWND')</script> HTTP/1.1
2017/5/27 390
TOC
[ATTACK RESPONSE]
HTTP/1.1 200 OK
Server: SomeServer
Date: Sun, 01 Jan 2002 00:31:19 GMT
Content-Type: text/html
Accept-Ranges: bytes
Content-Length: 83
<HTML>
Hello >"'><script>alert('PWND')</script>
</HTML>
在这种状况下,JavaScript 代码将由浏览器执行(>"'> 部分在此处并不相关)。
Unix 文件参数变动
测试类型:
应用程序级别测试
威胁分类:
路径遍历
缘由:
未对用户输入正确执行危险字符清理
未检查用户输入中是否包含“..”(两个点)字符串
安全性风险:
可能会查看 Web 服务器(在 Web 服务器用户的许可权限制下)上的任何文件(例如,数据库、用户信息或配置文件)的内容
技术描述:
软件使用外部输入来构造旨在识别位于受限制父目录中的文件或目录的路径名,可是该软件没有对路径名中可致使路径解析到受限制目录以外的位置的元素进行无害化处理。许多文件操做须要在受限制目录中执行。经过使用特殊元素(例如“..”和“/”分隔符),攻击者就可能逃脱到受限制位置以外,从而访问系统上其余位置的文件或目录。其中一个最经常使用的特殊元素是“../”序列,在最现代的操做系统中,该序列解释为当前位置的父目录。这称为相对路径遍历。路径遍历包括使用绝对路径名,例如“/usr/local/bin”,这有可能用于访问意外文件。这称为绝对路径遍历。在许多编程语言中,经过注入空字节(0 或 NUL),攻击者就可以截断生成的文件名以扩大攻击的范围。例如,软件可向任何路径名添加“.txt”,从而将攻击者限制到文本文件,但空注入可有效除去此限制。
连接注入(便于跨站请求伪造)
测试类型:
应用程序级别测试
威胁分类:
内容电子欺骗
缘由:
未对用户输入正确执行危险字符清理
安全性风险:
可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息
可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客可以以该用户身份查看或变动用户记录以及执行事务
可能会在 Web 服务器上上载、修改或删除 Web 页面、脚本和文件
技术描述:
该软件使用受外部影响的输入来构造命令、数据结构或记录的所有或一部分,但未能对可能修改其解析或解释方式的元素进行无害化处理。
“连接注入”是经过在某个站点中嵌入外部站点的 URL,或者在易受攻击的站点中嵌入脚本的 URL,从而修改该站点的内容。在易受攻击的站点中嵌入 URL 后,攻击者可以将其做为发起针对其余站点(以及针对这个易受攻击的站点自己)的攻击的平台。
其中一些可能的攻击须要用户在攻击期间登陆站点。经过从易受攻击的站点自己发起这些攻击,攻击者成功的可能性更高,由于用户更倾向于登陆。
“连接注入”脆弱性是未对用户输入进行充分清理所致使的结果,该输入之后会在站点响应中返回给用户。这样一来,攻击者可以将危险字符注入响应中,从而有可能嵌入 URL,以及作出其余可能的内容修改。
如下是“连接注入”的示例(咱们假设站点“www.vulnerable.com”有一个名为“name”的参数,用于问候用户)。
下列请求:HTTP://www.vulnerable.com/greet.asp?name=John Smith
会生成下列响应:
<HTML>
<BODY>
Hello, John Smith.
</BODY>
</HTML>
然而,恶意的用户能够发送下列请求:
HTTP://www.vulnerable.com/greet.asp?name=<IMG SRC="http://www.ANY-SITE.com/ANY-SCRIPT.asp">
这会返回下列响应:
<HTML>
<BODY>
Hello, <IMG SRC="http://www.ANY-SITE.com/ANY-SCRIPT.asp">.
</BODY>
</HTML>
如以上示例所示,攻击者有可能致使用户浏览器向攻击者企图攻击的几乎任何站点发出自动请求。所以,“连接注入”脆弱性可用于发起几种类型的攻击:
[-] 跨站点请求伪造
[-] 跨站点脚本编制
[-] 网络钓鱼
经过框架钓鱼
测试类型:
应用程序级别测试
威胁分类:
内容电子欺骗
缘由:
未对用户输入正确执行危险字符清理
安全性风险:
可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息
技术描述:
网络钓鱼是一种社会工程技巧,其中攻击者假装成受害者可能会与其进行业务往来的合法实体,以便提示用户透露某些机密信息(每每是认证凭证),而攻击者之后能够利用这些信息。网络钓鱼在本质上是一种信息收集形式,或者说是对信息的“渔猎”。
攻击者有可能注入含有恶意内容的 frame 或 iframe 标记。若是用户不够谨慎,就有可能浏览该标记,却意识不到本身会离开原始站点而进入恶意的站点。以后,攻击者即可以诱导用户再次登陆,而后获取其登陆凭证。因为伪造的站点嵌入在原始站点中,这样攻击者的网络钓鱼企图就披上了更容易让人轻信的外衣。
Missing "Content-Security-Policy" header
测试类型:
应用程序级别测试
威胁分类:
信息泄露
缘由:
Web 应用程序编程或配置不安全
安全性风险:
可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置
可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息
Missing "X-Content-Type-Options" header
测试类型:
应用程序级别测试
威胁分类:
信息泄露
缘由:
Web 应用程序编程或配置不安全
安全性风险:
可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置
可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息
Missing "X-XSS-Protection" header
测试类型:
应用程序级别测试
威胁分类:
信息泄露
缘由:
Web 应用程序编程或配置不安全
安全性风险:
可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置
可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息
受影响产品:
SSL 请求中的查询参数
测试类型:
应用程序级别测试
威胁分类:
信息泄露
缘由:
查询参数经过 SSL 进行了传递,而且可能包含敏感信息
技术描述:
在应用程序测试期间,检测到经过 SSL 发送的请求包含在 HTTP 请求的 Query 部分中传输的参数。发送请求时,可使用浏览器的历史记录来显现 URL,其中包含查询参数名称和值。
因为加密请求的敏感性,建议您尽量使用 HTTP POST(不带 URL 字符串中的参数),以便避免向其余人泄露 URL和参数值。
查询中接受的主体参数
测试类型:
应用程序级别测试
威胁分类:
信息泄露
缘由:
Web 应用程序编程或配置不安全
安全性风险:
可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置
可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息
技术描述:
GET 请求设计的目的在于查询服务器,而 POST 请求用于提交数据。可是,除了技术目的以外,攻击查询参数比攻击主体参数更容易,由于向原始站点发送连接或在博客或注释中发布连接更容易,并且获得的结果比另外一种方法更好,为了攻击带有主体参数的请求,攻击者须要建立其中包含表单的页面,当受害者访问表单时就会提交表单。说服受害者访问他不了解的页面比让受害者访问原始站点要难不少。所以,不建议支持可到达查询字符串的主体参数。
发现可高速缓存的 SSL 页面
测试类型:
应用程序级别测试
威胁分类:
信息泄露
缘由:
浏览器可能已将敏感信息高速缓存
安全性风险:
可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置
技术描述:
缺省状况下,大部分 Web 浏览器都配置成会在使用期间高速缓存用户的页面。 这表示也会高速缓存 SSL 页面。
不建议让 Web 浏览器保存任何 SSL 信息,由于当有漏洞存在时,可能会危及这个信息。
发现可高速缓存的登陆页面
测试类型:
应用程序级别测试
威胁分类:
信息泄露
缘由:
浏览器可能已将敏感信息高速缓存
安全性风险:
可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客可以以该用户身份查看或变动用户记录以及执行事务
技术描述:
缺省状况下,大部分 Web 浏览器都配置成会在使用期间高速缓存用户的页面。 这表示也会高速缓存登陆页面。
不建议让 Web 浏览器保存任何登陆信息,由于当有漏洞存在时,可能会危及这个信息。
发现压缩目录
测试类型:
基础结构测试
威胁分类:
信息泄露
缘由:
Web 应用程序编程或配置不安全
安全性风险:
可能会检索服务器端脚本的源代码,这可能会泄露应用程序逻辑及其余诸如用户名和密码之类的敏感信息
技术描述:
AppScan 找到了可能含有整个目录内容的压缩文件。这是经过安装压缩文件扩展名来请求目录名称而进行的,例如:GET /DIR1.zip HTTP/1.0 或 GET /DIR2.gz HTTP/1.0
这个文件可能含有目录的最新或过时内容。不论任何状况,恶意的用户都有可能经过猜想文件名,而得以访问源代码和不具特权的文件。
利用的样本:
http://[SERVER]/[DIR].zip
临时文件下载
测试类型:
基础结构测试
威胁分类:
可预测资源位置
缘由:
在生产环境中留下临时文件
安全性风险:
可能会下载临时脚本文件,这会泄露应用程序逻辑及其余诸如用户名和密码之类的敏感信息
技术描述:
Web 服务器一般会使“公共网关接口(CGI)”文件扩展名(如 .pl)与 Perl 之类的某个处理程序相关联。 当 URL 路径结尾是 .pl 时,路径所指定的文件名会发送给 Perl 执行;文件内容不会返回给浏览器。 然而,当在适当的位置编辑脚本文件时,编辑器能够用新的文件扩展名来保存所编辑的脚本的备份副本,例如:.bak、.sav、.old、~ 等等。Web 服务器一般没有这些文件扩展名的特定处理程序。 若是攻击者请求这类文件,文件内容会直接发送到浏览器。
从虚拟目录下除去这些临时文件很重要,由于它们可能含有调试目的所用的敏感信息,也可能显露有并不是当前逻辑,但仍可能受到利用的应用程序逻辑攻击。
缺乏 HTTP Strict-Transport-Security 头
测试类型:
应用程序级别测试
威胁分类:
信息泄露
缘由:
Web 应用程序编程或配置不安全
安全性风险:
可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置
可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息
技术描述:
HTTP 严格传输安全 (HSTS) 是保护安全 (HTTPS) Web 站点不被降级到不安全 HTTP 的机制。该机制使 Web 服务器能指示器客户端(Web 浏览器或其余用户代理程序)在与服务器交互时始终使用安全 HTTPS 链接,而毫不使用不安全的 HTTP 协议。HTTP 严格传输安全策略由服务器用于经过名为“Strict-Transport-Security”的响应头与其客户机通讯。该头的值为客户机应仅使用 HTTPS 访问服务器的时间段。其余头属性包括“includeSubDomains”和“preload”。
直接访问管理页面
测试类型:
应用程序级别测试
威胁分类:
可预测资源位置
缘由:
Web 服务器或应用程序服务器是以不安全的方式配置的
安全性风险:
可能会升级用户特权并经过 Web 应用程序获取管理许可权
技术描述:
公共用户能够经过简单的连接来访问站点上的特定页面。不过,也有页面和脚本可能没法经过简
单的连接来访问(即未连接的页面和脚本)。攻击者也许可以经过猜想名称(例如 admin.php、admin.asp、admin.cgi、admin.html 等)来访问这些页面。
请求名称为“admin.php”的脚本的示例: http://[SERVER]/admin.php
不具有适当的受权,便不该容许访问管理脚本,由于攻击者可能会于是获取特许权利。
利用的样本:
http://[SERVER]/admin.php
http://[SERVER]/admin.asp
http://[SERVER]/admin.aspx
http://[SERVER]/admin.html
http://[SERVER]/admin.cfm
http://[SERVER]/admin.cgi
SSL 证书域名不匹配
测试类型:
基础结构测试
威胁分类:
传输层保护不足
缘由:
Web 服务器或应用程序服务器是以不安全的方式配置的
安全性风险:
可能会阻止 Web 应用程序服务其余用户(拒绝服务)
可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息
技术描述:
SSL 证书包含的域名不符合所访问的站点。
配置错误的 SSL 证书有若干安全隐患:
- 拒绝服务:符合严格安全策略的用户没法浏览站点
- 网络钓鱼:恶意站点很容易假装成合法站点,获取用户的证书信息
发现电子邮件地址模式
测试类型:
应用程序级别测试
威胁分类:
信息泄露
缘由:
Web 应用程序编程或配置不安全
安全性风险:
可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置
技术描述:
Spambot 搜寻因特网站点,开始查找电子邮件地址来构建发送自发电子邮件(垃圾邮件)的邮件列表。AppScan 检测到含有一或多个电子邮件地址的响应,可供利用以发送垃圾邮件。
并且,找到的电子邮件地址也多是专用电子邮件地址,对于通常大众应是不可访问的。
发现可能的服务器路径泄露模式
测试类型:
应用程序级别测试
威胁分类:
信息泄露
缘由:
未安装第三方产品的最新补丁或最新修订程序
安全性风险:
可能会检索 Web 服务器安装的绝对路径,这可能会帮助攻击者开展进一步攻击和获取有关 Web 应用程序文件系统结构的信息
技术描述:
AppScan 检测到含有文件绝对路径(例如:Windows 的 c:\dir\file,Unix 的 /dir/file)的响应。攻击者也许可以利用这项信息,从而访问到关于服务器机器目录结构的敏感信息,于是可以进一步攻击站点。
发现内部 IP 泄露模式
测试类型:
应用程序级别测试
威胁分类:
信息泄露
缘由:
Web 应用程序编程或配置不安全
安全性风险:
可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置
技术描述:
AppScan 检测到包含内部 IP 地址的响应。
内部 IP 定义为下列 IP 范围内的 IP:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
对攻击者而言,泄露内部 IP 很是有价值,由于它显示了内部网络的 IP 地址方案。知道内部网络的 IP 地址方案,能够辅助攻击者策划出对内部网络进一步的攻击。
应用程序错误
测试类型:
应用程序级别测试
威胁分类:
信息泄露
缘由:
未对入局参数值执行适当的边界检查
未执行验证以确保用户输入与预期的数据类型匹配
安全性风险:
可能会收集敏感的调试信息
技术描述:
若是攻击者经过伪造包含非应用程序预期的参数或参数值的请求,来探测应用程序(如如下示例所示),那么应用程序可能会进入易受攻击的未定义状态。 攻击者能够从应用程序对该请求的响应中获取有用的信息,且可利用该信息,以找出应用程序的弱点。
例如,若是参数字段是单引号括起来的字符串(如在 ASP 脚本或 SQL 查询中),那么注入的单引号将会提早终止字符串流,从而更改脚本的正常流程/语法。
错误消息中泄露重要信息的另外一个缘由,是脚本编制引擎、Web 服务器或数据库配置错误。
如下是一些不一样的变体:
[1] 除去参数
[2] 除去参数值
[3] 将参数值设置为空值
[4] 将参数值设置为数字溢出(+/- 99999999)
[5] 将参数值设置为危险字符,如 ' " \' \" ) ;
[6] 将某字符串附加到数字参数值
[7] 在参数名称后追加“.”(点)或“[]”(尖括号)
整数溢出
测试类型:
应用程序级别测试
威胁分类:
整数溢出
缘由:
未对入局参数值执行适当的边界检查
未执行验证以确保用户输入与预期的数据类型匹配
安全性风险:
可能会收集敏感的调试信息
技术描述:
若是攻击者经过伪造包含非应用程序预期的参数或参数值的请求,来探测应用程序(如如下示例所示),那么应用程序可能会进入易受攻击的未定义状态。 攻击者能够从应用程序对该请求的响应中获取有用的信息,且可利用该信息,以找出应用程序的弱点。
例如,若是参数字段是单引号括起来的字符串(如在 ASP 脚本或 SQL 查询中),那么注入的单引号将会提早终止字符串流,从而更改脚本的正常流程/语法。
错误消息中泄露重要信息的另外一个缘由,是脚本编制引擎、Web 服务器或数据库配置错误。
如下是一些不一样的变体:
[1] 除去参数
[2] 除去参数值
[3] 将参数值设置为空值
[4] 将参数值设置为数字溢出(+/- 99999999)
[5] 将参数值设置为危险字符,如 ' " \' \" ) ;
[6] 将某字符串附加到数字参数值
[7] 在参数名称后追加“.”(点)或“[]”(尖括号)