4.7 输入验证测试
文章平均质量分 87
4.7 输入验证测试
开启学习模式
书山有路勤为径,学海无涯苦作舟。学无止境
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
4.7 输入验证测试
4.7.1 测试反射式跨站点脚本4.7.2 测试存储的跨站点脚本4.7.3 测试 HTTP 动词篡改4.7.4 HTTP 参数污染测试4.7.5 SQL 注入测试4.7.5.1 Oracle测试4.7.5.2 测试 MySQL4.7.5.3 测试 SQL Server4.7.5.4 测试 PostgreSQL4.7.5.5 MS访问测试4.7.5.6 测试NoSQL注入4.7.5.7 ORM注入测试4.7.5.8 客户端测试4.7.6 LDAP 注入测试4.7.7 XML 注入测试4.7.8 SSI注射测试原创 2023-09-13 21:37:07 · 154 阅读 · 0 评论 -
4.7.1-测试反射式跨站脚本
当攻击者在单个 HTTP 响应中注入浏览器可执行代码时,就会发生反射式跨站点脚本 (XSS)。注入的攻击不存储在应用程序本身中;它是非持久性的,仅影响打开恶意制作的链接或第三方网页的用户。攻击字符串作为构建的 URI 或 HTTP 参数的一部分包含在内,应用程序处理不当,并返回给受害者。反射型 XSS 是最常见的 XSS 攻击类型。反射型 XSS 攻击也称为非持久性 XSS 攻击,由于攻击负载是通过单个请求和响应传递和执行的,因此它们也称为一级或 1 类 XSS。原创 2023-10-19 09:44:01 · 143 阅读 · 0 评论 -
4.7.2-测试存储的跨站点脚本
存储跨站脚本 (XSS)是最危险的跨站脚本类型。允许用户存储数据的 Web 应用程序可能会受到此类攻击。本章说明了存储的跨站点脚本注入示例和相关利用场景。当 Web 应用程序从用户那里收集可能是恶意的输入,然后将该输入存储在数据存储中以备后用时,就会发生存储型 XSS。存储的 input 未正确过滤。因此,恶意数据似乎是网站的一部分,并在 Web 应用程序的权限下在用户的浏览器中运行。由于此漏洞通常涉及对应用程序的至少两个请求,因此这也可以称为二阶 XSS。劫持其他用户的浏览器。原创 2023-10-19 09:44:32 · 146 阅读 · 0 评论 -
4.7.3-测试 HTTP 动词篡改
此内容已合并到:原创 2023-10-19 09:45:18 · 144 阅读 · 0 评论 -
4.7.4-测试 HTTP 参数污染
HTTP Parameter Pollution 测试应用程序对接收多个同名 HTTP 参数的响应;例如,如果username参数包含在 GET 或 POST 参数中两次。username提供多个同名的 HTTP 参数可能会导致应用程序以意想不到的方式解释值。通过利用这些效果,攻击者可能能够绕过输入验证、触发应用程序错误或修改内部变量值。由于 HTTP 参数污染(简称HPP)影响所有 Web 技术的构建块,因此存在服务器端和客户端攻击。原创 2023-10-19 09:45:56 · 267 阅读 · 0 评论 -
4.7.5.0-测试 SQL 注入
#总结SQL 注入测试检查是否可以将数据注入应用程序,以便它在数据库中执行用户控制的 SQL 查询。如果应用程序使用用户输入创建 SQL 查询而没有进行适当的输入验证,测试人员会发现 SQL 注入漏洞。成功利用此类漏洞将允许未经授权的用户访问或操纵数据库中的数据。攻击包括通过数据输入插入或“注入”部分或完整的 SQL 查询,或从客户端(浏览器)传输到 Web 应用程序。原创 2023-10-19 09:46:33 · 336 阅读 · 0 评论 -
4.7.5.1-针对 Oracle 进行测试
在黑盒安全评估期间,自定义 PL/SQL 应用程序的代码不可用,但仍需要对其进行安全漏洞评估。原创 2023-10-19 09:47:03 · 258 阅读 · 0 评论 -
4.7.5.2-MySQL 测试
漏洞发生在使用输入构造 SQL查询时,没有对其进行足够的限制或净化使用动态 SOL(通过字符串的连接构造 SOL查询)打开了这些漏洞的大门。SOL注入允许攻击者访问 SOL服务器。它允许在连接到数据库的用户权限下执行 SOL代码。MySQL 服务器有一些特殊性,因此需要专门针对此应用程序定制一些漏洞。这就是本节的主题。原创 2023-10-19 09:47:35 · 90 阅读 · 0 评论 -
4.7.5.3-测试 SQL Server
所有描述 SOLServer 安全最佳实践的书和论文都建议在SQLServer2000中禁用(在SOLServer2005中,它默认为禁用)。但是,如果我们有系统管理员权限(原生或通过暴力破解系统管理员密码,见下文),我们通常可以绕过此限制。如果已被禁用,我们只需注入以下代码:如果前面的代码不起作用,这意味着已被移动或删除。在这种情况下,我们需要注入以下代码:这段代码由 Antonin Foller编写(参见页面底部的链接),它使用和(当然,只要它们没有被禁用)创建了一个新的。原创 2023-10-19 09:49:42 · 232 阅读 · 0 评论 -
4.7.5.4-测试 PostgreSQL
在本节中,将讨论一些 PostgreSQL 的 SQL 注入技术。;--SELECTLIMITOFFSETquery从现在起,假定易受SQL注入攻击。原创 2023-10-19 09:50:12 · 138 阅读 · 0 评论 -
4.7.5.5-MS Access 测试
如通用s部分所述,只要在构建 SQL 查询期间使用用户提供的输入而没有得到充分的约束或清理,就会出现 SQL 注入漏洞。此类漏洞允许攻击者以用于连接到数据库的用户的权限执行 SQL 代码。在本节中,将讨论利用 Microsoft Access 特定功能的相关 SQL 注入技术。原创 2023-10-19 09:50:43 · 105 阅读 · 0 评论 -
4.7.5.6-测试 NoSQL 注入
与传统 SQL 数据库相比,NoSQL 数据库提供更宽松的一致性限制。通过减少关系约束和一致性检查,NoSQL 数据库通常具有性能和扩展优势。然而,这些数据库仍然可能容易受到注入攻击,即使它们没有使用传统的 SQL 语法。由于这些 NoSQL 注入攻击可能在中执行,而不是在中执行,因此潜在影响比传统的 SQL 注入更大。NoSQL数据库调用是用应用程序设计语言编写的,一个定制的API调用,或者根据一个通用的约定(如XMLJSONLINQ, 等)进行格式化。原创 2023-10-19 09:51:16 · 118 阅读 · 0 评论 -
4.7.5.7-ORM 注射测试
是使用 SQL 注入对 ORM 生成的数据访问对象模型的攻击。从测试人员的角度来看,这种攻击实际上与 SQL 注入攻击相同。但是,ORM 层生成的代码中存在注入漏洞。使用 ORM 工具的好处包括快速生成对象层以与关系数据库通信,标准化这些对象的代码模板,并且它们通常提供一组安全功能来防止 SQL 注入攻击。ORM 生成的对象可以使用 SQL 或在某些情况下使用 SQL 的变体,对数据库执行 CRUD(创建、读取、更新、删除)操作。原创 2023-10-19 09:51:47 · 676 阅读 · 0 评论 -
4.7.5.8-客户端测试
当应用程序实现技术并且没有正确验证输入或为其查询变量进行参数化时,会发生客户端SOL注入。此数据库是通过使用JavaScript(JS)API调用(例如openDatabase())来操作的,它可以创建或打开现有数据库。原创 2023-10-19 09:52:18 · 78 阅读 · 0 评论 -
4.7.6-测试 LDAP 注入
轻量级目录访问协议 (LDAP) 用于存储有关用户、主机和许多其他对象的信息。LDAP 注入是一种服务器端攻击,它可能允许泄露、修改或插入有关 LDAP 结构中表示的用户和主机的敏感信息。这是通过操作随后传递给内部 search、add 和 modify 函数的 input 参数来完成的。Web 应用程序可以使用 LDAP 来允许用户在公司结构中验证或搜索其他用户的信息。LDAP 注入攻击的目标是在查询中注入 LDAP 搜索过滤器元字符,该查询将由应用程序执行。Rfc2254。原创 2023-10-19 09:53:05 · 274 阅读 · 0 评论 -
4.7.7-测试 XML 注入
XML 注入测试是指测试人员尝试将 XML 文档注入到应用程序。如果 XML 解析器无法根据上下文验证数据,则测试将产生积极结果。本节介绍 XML 注入的实际示例。首先,将定义 XML 样式的通信并解释其工作原理。然后,我们尝试在其中插入 XML 元字符的发现方法。一旦第一步完成,测试人员将获得一些关于 XML 结构的信息,因此可以尝试注入 XML 数据和标签(Tag Injection)。原创 2023-10-19 09:53:40 · 353 阅读 · 0 评论 -
4.7.8-SSI 注入测试
Web 服务器通常使开发人员能够在静态 HTML 页面中添加小段动态代码,而不必处理成熟的服务器端或客户端语言。此功能由(SSI) 提供。Server-Side Includes 是 Web 服务器在向用户提供页面之前解析的指令。当只需要执行非常简单的任务时,它们代表了使用服务器端脚本语言编写 CGI 程序或嵌入代码的替代方案。常见的 SSI 实现提供指令(命令)来包含外部文件、设置和打印 Web 服务器 CGI 环境变量或执行外部 CGI 脚本或系统命令。原创 2023-10-19 09:54:17 · 152 阅读 · 0 评论 -
4.7.9-测试 XPath 注入
XPath 是一种主要为处理 XML 文档的各个部分而设计和开发的语言。在 XPath 注入测试中,我们测试是否可以将 XPath 语法注入到应用程序解释的请求中,从而允许攻击者执行用户控制的 XPath 查询。成功利用此漏洞后,攻击者可能允许攻击者绕过身份验证机制或在未经适当授权的情况下访问信息。Web 应用程序大量使用数据库来存储和访问其操作所需的数据。从历史上看,关系数据库一直是迄今为止最常见的数据存储技术,但在过去几年中,我们看到使用 XML 语言组织数据的数据库越来越受欢迎。原创 2023-10-19 09:56:45 · 127 阅读 · 0 评论 -
4.7.10-IMAP SMTP 注入测试
此威胁会影响与邮件服务器 (IMAP/SMTP) 通信的所有应用程序,通常是 Web 邮件应用程序。此测试的目的是验证由于输入数据未正确清理而将任意 IMAP/SMTP 命令注入邮件服务器的能力。如果邮件服务器无法直接从 Internet 访问,则 IMAP/SMTP 注入技术会更有效。在可以与后端邮件服务器进行完全通信的情况下,建议进行直接测试。IMAP/SMTP 注入使访问邮件服务器成为可能,否则无法从 Internet 直接访问该服务器。原创 2023-10-19 09:55:23 · 522 阅读 · 0 评论 -
4.7.11.0-代码注入测试
本节描述了测试人员如何检查是否可以在 Web 页面上输入代码并让 Web 服务器执行它。在代码注入测试中,测试人员提交由 Web 服务器作为动态代码或包含文件处理的输入。这些测试可以针对各种服务器端脚本引擎,例如 ASP 或 PHP。需要采用适当的输入验证和安全编码实践来防范这些攻击。原创 2023-10-19 09:56:05 · 128 阅读 · 0 评论 -
4.7.11.1-测试文件包含
文件包含漏洞允许攻击者包含文件,通常利用目标应用程序中实现的“动态文件包含”机制。此漏洞是由于在未进行适当验证的情况下使用用户提供的输入而发生的。本地文件包含 (LFI) 是通过利用应用程序中实现的易受攻击的包含过程来包含服务器上已存在的文件的过程。例如,当页面接收到作为本地文件路径的输入时,就会发生此漏洞。此输入未正确清理,允许注入目录遍历字符(例如../– 请参阅 4.5.1远程文件包含 (RFI) 是通过利用应用程序中实施的易受攻击的包含过程来包含来自远程源的文件的过程。原创 2023-10-19 09:57:17 · 142 阅读 · 0 评论 -
4.7.12-测试命令注入
本文介绍如何测试应用程序的 OS 命令注入。测试人员将尝试通过向应用程序发送 HTTP 请求来注入操作系统命令。操作系统命令注入是一种通过 Web 界面使用的技术,用于在 Web 服务器上执行操作系统命令。用户通过 Web 界面提供操作系统命令,以执行操作系统命令。任何未正确清理的 Web 界面都会受到此漏洞的影响。凭借执行操作系统命令的能力,用户可以上传恶意程序,甚至获取密码。如果在应用程序的设计和开发过程中强调安全性,则可以防止 OS 命令注入。原创 2023-10-19 09:58:01 · 124 阅读 · 0 评论 -
4.7.13-测试格式字符串注入
格式字符串是一个以 null 结尾的字符序列,其中还包含在运行时解释或转换的转换说明符。如果服务器端代码将用户的输入与格式字符串连接起来,则攻击者可以附加其他转换说明符,从而导致运行时错误、信息泄露或缓冲区溢出。格式字符串漏洞的最坏情况发生在不检查参数且包含写入内存的%n指定符的语言中。如果攻击者利用这些函数修改格式字符串,则可能导致信息泄露和代码执行C 和 C++printf和类似方法 fprintf、sprintf、snprintfPerlprintf和 sprintf。原创 2023-10-19 10:00:31 · 163 阅读 · 0 评论 -
4.7.14-测试 Incubated Vulnerability
孵化测试通常也称为持续攻击,是一种复杂的测试方法,需要多个数据验证漏洞才能发挥作用。孵化漏洞通常用于对合法 Web 应用程序的用户进行“水坑”攻击。攻击媒介首先需要持久化,它需要存储在持久层中,这只会在存在弱数据验证或数据通过其他渠道(如 Admin Console)或直接通过后端批处理到达系统时发生。其次,一旦攻击向量被“召回”,该向量就需要成功执行。例如,孵化的 XSS 攻击需要弱输出验证,以便脚本以其可执行形式交付给客户端。原创 2023-10-19 10:01:06 · 124 阅读 · 0 评论 -
4.7.15-测试 HTTP 拆分走私
本节说明了利用 HTTP 协议的特定功能的攻击示例,这些攻击通过利用 Web 应用程序的弱点或不同代理解释 HTTP 消息的方式的特殊性。HTTP 拆分HTTP 走私第一种攻击利用了缺乏输入清理的漏洞,允许入侵者将 CR 和 LF 字符插入应用程序响应的标头中,并将该答案“拆分”为两条不同的 HTTP 消息。攻击的目标可能从缓存中毒到跨站点脚本不等。在第二次攻击中,攻击者利用了这样一个事实,即某些特制的 HTTP 消息可以以不同的方式解析和解释,具体取决于接收它们的代理。原创 2023-10-19 10:01:36 · 143 阅读 · 0 评论 -
4.7.16-测试 HTTP 传入请求
本节介绍如何监控客户端或服务器端的所有传入/传出 HTTP 请求。此测试的目的是验证后台是否发送了不必要或可疑的 HTTP 请求。大多数 Web 安全测试工具(即 AppScan、BurpSuite、ZAP)都充当 HTTP 代理。这将需要更改客户端应用程序或浏览器上的代理。下面列出的测试技术主要集中在我们如何在不更改客户端的情况下监控 HTTP 请求,这将更接近生产使用场景。原创 2023-10-19 10:02:11 · 136 阅读 · 0 评论 -
4.7.17-测试 Host 标头注入
Web 服务器通常在同一 IP 地址上托管多个 Web 应用程序,通过虚拟主机引用每个应用程序。在传入的 HTTP 请求中,Web 服务器通常根据 Host 标头中提供的值将请求分派到目标虚拟主机。将请求分派到列表中的第一个虚拟主机。执行重定向到攻击者控制的域。执行 Web 缓存中毒。操作密码重置功能。允许访问不打算从外部访问的虚拟主机。原创 2023-10-19 10:02:47 · 399 阅读 · 0 评论 -
4.7.18-服务器端模板注入测试
Web 应用程序通常使用服务器端模板技术(Jinja2、Twig、FreeMaker 等)来生成动态 HTML 响应。服务器端模板注入漏洞 (SSTI) 是指用户输入以不安全的方式嵌入到模板中,并导致在服务器上远程执行代码。任何支持高级用户提供的标记的功能都可能容易受到 SSTI 的攻击,包括 wiki 页面、评论、营销应用程序、CMS 系统等。一些模板引擎采用各种机制(例如沙盒、允许列表等)来防止 SSTI。原创 2023-10-19 10:03:30 · 243 阅读 · 0 评论 -
4.7.19-服务器端请求伪造测试
Web 应用程序通常与内部或外部资源交互。虽然您可能希望只有预期的资源会处理您发送的数据,但处理不当的数据可能会导致注入攻击的情况。一种类型的注入攻击称为服务器端请求伪造 (SSRF)。成功的 SSRF 攻击可以授予攻击者访问应用程序或组织内的受限操作、内部服务或内部文件的权限。在某些情况下,它甚至可能导致远程代码执行 (RCE)。原创 2023-10-19 10:04:13 · 171 阅读 · 0 评论 -
4.7.20-测试 Mass Assignment
【代码】4.7.20-Testing_for_Mass_Assignment。原创 2023-10-19 10:04:53 · 333 阅读 · 1 评论
分享