软件安全知识之漏洞类别-结构化输出生成漏洞

漏洞类别

结构化输出生成漏洞

程序通常必须动态构造结构化输出,然后由另一个程序使用。示例包括:构造数据库使用的SQL查询,或构造Web浏览器使用的HTML页面。可以将生成结构化输出的代码视为子组件。输出的预期结构,以及如何在输出中使用子组件的输入,可以被视为该子组件应遵守的协定。例如,当提供名称和密码作为输入时,预期的输出是一个SQL查询,该查询从用户中选择具有给定名称和密码的用户数据库表。

一种常见的不安全编程实践是通过字符串操作来构造这种结构化输出。输出构造为字符串的串联,其中其中一些字符串是从程序的输入派生的(直接或间接)。这种做法很危险,因为它使输出字符串的预期结构成为隐式的,并且恶意选择输入字符串的值可能会导致程序生成意外的输出。例如,程序员可以将SQL查询构造为:

query=”select * from users where name=’” + name + ”’” and pw = ’” + password + ”’”

目的是构造一个SQL查询,用于检查where子句中的名称和密码。但是,如果名称字符串由攻击者提供,则攻击者可以将名称设置为“John’–”,这将从查询中删除密码检查(注意-在SQL中开始注释)。

结构化输出生成漏洞是程序构造此类意外输出的错误。在结构化输出表示旨在将提供的输入作为数据包含的代码的情况下,这尤其危险。然后,恶意选择的输入数据可能会以意外的方式影响生成的输出代码。这些漏洞也称为注入漏洞(例如,SQL注入或脚本注入)。名称“注入”是指利用这些漏洞通常会提供数据输入,导致结构化输出包含额外的代码语句,即利用在输出中注入意外的新语句。结构化输出生成漏洞与许多不同类型的结构化输出相关:

• SQL注入漏洞是一种结构化输出生成漏洞,其中结构化输出由SQL代码组成。这些漏洞与服务器端Web应用程序软件特别相关,在服务器端Web应用程序软件中,应用程序通常通过部分基于Web表单提供的输入构造查询来与后端数据库进行交互。

• 命令注入漏洞是一个结构化输出生成漏洞,其中结构化输出是应用程序发送到操作系统shell的shell命令。

• 脚本注入漏洞(有时也称为跨站点脚本(XSS)漏洞)是一种结构化输出生成漏洞,其中结构化输出是发送到Web浏览器进行客户端执行的JavaScript代码。

此列表绝不是详尽无遗的。其他例子包括:XPath注入,HTML注入,CSS注入,PostScript注入等等。

有几个因素可能导致难以避免结构化输出生成漏洞:

• 结构化输出可以是支持句法结构明显不同的子语言的语言。这种问题案例的一个重要例子是HTML,它支持JavaScript,CSS和SVG等子语言。

• 结构化输出的计算可以在不同的阶段进行,一个阶段的输出被存储,然后作为后续阶段的输入进行检索。经历多个阶段的结构化输出生成漏洞有时称为存储注入漏洞,或者更一般地称为高阶注入漏洞。示例包括存储的XSS和高阶SQL注入。

利用结构化输出生成漏洞的攻击技术通常取决于结构化输出语言的性质,但已知并记录了用于利用SQL注入或脚本注入的各种攻击技术。

Web和移动安全CyBOK知识区[2]提供了对此类攻击技术的更详细讨论。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/133142.html<

(0)
管理的头像管理
上一篇2025-02-27 08:32
下一篇 2025-02-27 08:33

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注