什么是跨站脚本 (XSS)? 类型、风险和预防

目录

跨站脚本如何工作?

3 跨站脚本攻击的常见类型

存储型 XSS

反射式 XSS

基于 DOM 的 XSS

与 XSS 攻击相关的 5 大风险

XSS 攻击难以检测

攻击者可以窃取您的凭据

攻击者可以劫持会话 Cookie

XSS 攻击既耗时又令人恼火

成功的攻击可能会损害您的业务

如何判断您是否容易受到 XSS 攻击

执行测试或雇用渗透测试人员

留意明显的攻击迹象

定期扫描漏洞

你能阻止跨站脚本吗?

常见问题解答 (FAQs)

什么是 XSS 的真实示例?

黑客可以利用 XSS 做什么?

XSS 攻击的根本原因是什么?

底线:跨站点脚本危及数据、应用程序和商业声誉


跨站脚本如何工作?

当威胁参与者将恶意代码或脚本注入 Web 应用程序的页面代码时,就会发生跨站点脚本攻击。 这通常发生在动态网页上,动态网页经常更改或可以由用户主动操作(例如,用户可以在其中键入查询的搜索栏)).

网页的原始代码是可信的。 通常,当用户导航到网页时,他们的浏览器会按照指示加载网页。 但是,如果威胁行为者向网页添加了新代码,它可能不会按照最初预期的方式加载,而用户和浏览器则一无所知。 新的恶意代码旨在从该 Web 应用程序窃取数据,例如 Cookie 或凭据.

跨站点脚本攻击很危险,因为它们很难检测。 该漏洞存在于代码中,安全团队将无法看到该漏洞,除非他们知道编写页面的编程语言。 通常,您需要使用应用程序扫描软件来查找 XSS 攻击的迹象。 手动查找需要太多的手动工作,员工可能会错过它,尤其是在他们不懂语言的情况下.

如果您的 Web 应用程序成为 XSS 攻击的受害者,它可能是基于存储、反射或文档对象模型 (DOM) 的攻击。 XSS 攻击具有多种安全和业务风险,包括凭证盗窃和公司声誉受损。 要了解您是否容易受到攻击,您应该对您的网络应用程序进行测试,对明显的攻击迹象保持警惕,并使用软件解决方案来查找代码和应用程​​序中的漏洞.

3 跨站脚本攻击的常见类型

存储型 XSS、反射型 XSS 和基于 DOM 的 XSS 是三种最常见的跨站脚本攻击类型。 它们的不同之处在于是否影响 Web 应用程序的服务器端或客户端.

存储型 XSS

在存储型 XSS 攻击中,恶意脚本被写入 Web 应用程序的实际代码中,从而影响客户端和服务器端。 它永久驻留在该服务器或应用程序的代码中,直到被管理员或自动化安全解决方案根除。 存储型 XSS 是一种持续严重的 XSS 攻击,因为恶意代码始终存在于应用程序中.

例如,如果威胁行为者在金融服务公司的 Web 服务器上用户输入财务数据的页面上编写恶意脚本,则威胁行为者可以在每次有人使用该页面时窃取该数据。 由于恶意代码编写在Web服务器中,因此它会影响Web应用程序的每个实例的使用。 用户不知道金融服务网页上的代码是恶意的,因为它看起来合法,并且他们会继续使用它,直到它被暴露.

反射式 XSS

反射型 XSS 之所以命名,是因为攻击者将恶意代码注入 URL 或请求参数,并且 Web 服务器的响应反映了该注入的代码。 反射型 XSS 不会长期存储在应用程序或服务器代码的后端。 攻击是在用户输入的范围内执行的,例如 URL 或请求参数。 如果攻击者使用反射型 XSS 窃取会话 cookie 或用户凭据,那么反射型 XSS 可能会很严重.

反射型 XSS 的一个示例是威胁参与者拦截软件工程师的请求参数以访问流行的工程应用程序。 威胁行为者巧妙地更改了 URL,这意味着用户会访问易受攻击的网页,而不是他们期望的合法网页。 从那里,威胁参与者可以采取多种操作来危害工程师的工作,例如窃取他们在页面上输入的信息.

基于 DOM 的 XSS

在基于 DOM 的 XSS 攻击中,攻击者操纵用户浏览器的文档对象模型 (DOM)。 Web应用程序本身的实际代码在服务器端不会改变,但它会在用户端恶意执行。 基于 DOM 的 XSS 特别难以检测,因为更改发生在文档对象模型内的客户端,并且可能永远不会触及 Web 服务器.

例如,如果攻击者窃取 URL 片段并将其用于允许动态代码执行的 JavaScript 函数,则该攻击者可以操纵该 URL Web 应用程序的客户端代码. 如果攻击者选择操纵客户关系管理 (CRM) 产品的主页,则该页面的实际 HTTP 响应不会有所不同,但面向客户端的代码将会有所不同。 威胁参与者可以使用 URL 片段发起攻击.

与 XSS 攻击相关的 5 大风险

众所周知,跨站点脚本攻击很难发现,因为它们伪装成合法的网页行为。 它们还使威胁行为者能够窃取您的 Web 应用程序凭据和会话 cookie,并且可能会导致标准业务流程出现普遍问题并损害您的企业声誉.

XSS 攻击难以检测

由于 XSS 攻击操纵完全合法的 Web 应用程序进程,因此很难检测到。 此外,XSS 攻击通常涉及特定类型的代码,通常是 JavaScript。 即使安全或开发管理员如果不知道编写攻击所用的编程语言,也可能不知道如何减轻攻击,并且假设他们首先意识到发生了 XSS 攻击.

攻击者可以窃取您的凭据

在最坏的 XSS 场景之一中,一旦用户将凭据输入到他们没有意识到已被黑客攻击的网页中,威胁参与者就可以窃取凭据。 首先,威胁行为者必须破坏用户登录服务或应用程序的网页。 然后,他们必须成功登录并窃取用户输入的代码,以便他们可以重复使用该代码来自己登录应用程序,最好是在不被注意到的情况下.

如果该账户是高权限账户,这就更加危险了。 攻击者有可能 提升他们的特权 窃取一组凭据然后访问更敏感的数据后.

攻击者可以劫持会话 Cookie

攻击者可以将脚本注入易受 XSS 攻击的网站,并使用文件窃取会话 cookie 信息。 如果他们将脚本设置为窃取会话数据而用户没有注意到任何警报,他们甚至不会提醒用户发生了攻击.

当有人窃取会话 cookie 时,他们可以重复网页会话,这意味着他们可能会访问该应用程序的敏感数据并对 Web 应用程序进行修改。 此攻击类似于凭证盗窃攻击,如果 cookie 存储了登录信息,则可能会导致类似的情况.

XSS 攻击既耗时又令人恼火

如果 XSS 攻击导致页面关闭或导致其重定向到错误的窗口,这不仅会给您企业的 IT 部门带来麻烦,还会给需要使用该页面的其他每个用户带来麻烦。 对于业务运营至关重要且员工经常访问的 Web 应用程序尤其如此。 如果页面长时间无法工作,这不仅会令人烦恼和中断,还会对关键组织流程构成威胁.

成功的攻击可能会损害您的业务

如果网页出现故障,或者即使威胁行为者伪造了页面内容,您的业务可能会受到严重损害。 行为异常的 Web 应用程序会影响该应用程序的声誉以及运行该应用程序的组织的声誉。 如果攻击者获得了特权帐户的访问权限,他们甚至可能会泄露敏感的客户数据。 伪造内容是一种更为罕见的攻击类型,但对于技术精湛的威胁行为者来说并非不可能.

如果您担心 Web 应用程序攻击对更广泛的业务网络的影响,请阅读有关 网络安全.

如何判断您是否容易受到 XSS 攻击

虽然立即知道您已受到攻击是一项挑战,但您的安全和 IT 团队仍然可以采取一些步骤来进行跨站点脚本的自我教育。 要确定您企业的 Web 服务器和应用程序是否容易受到 XSS 攻击,请对其进行测试,观察更明显的迹象,并持续评估安全漏洞.

执行测试或雇用渗透测试人员

如果您有经验丰富的安全或IT人员,您当然可以对自己的Web服务器和Web应用程序代码进行测试。 遵循专家安全机构的指导方针,例如 OWASP 是保护您的系统免受 XSS 侵害的良好起点.

聘请渗透测试人员也很有价值。 渗透测试人员专门负责破坏您的系统并揭示漏洞。 如果您签订一份专注于 Web 应用程序和代码漏洞的合同,您将更有可能了解您的网页是否容易受到 XSS 攻击.

阅读更多关于 动态应用安全测试, 发现 Web 应用程序中漏洞的有用工具.

留意明显的攻击迹象

许多 XSS 攻击并不明显,但请留意正在发生的更明显的迹象。 如果您的网页重定向不正确,或者看似经过身份验证的用户突然开始在特权网络应用程序中进行奇怪的更改,那么这就是您更仔细地查看网页代码的提示。 虽然很少有攻击是显而易见的,但请仔细留意那些明显的攻击.

定期扫描漏洞

经常执行漏洞扫描 扫描您的所有基础设施,但要查找 XSS 漏洞,请特别扫描您的 Web 应用程序。 漏洞扫描工具会考虑模式,查明安全团队没有时间手动定位的问题。 一些漏洞扫描工具还从包含常见威胁签名或指标的数据库或库中提取信息,帮助您在自己的系统和应用程序中找到它们.

了解我们的选择 最好的网络和应用程序漏洞扫描器, 以及您应该考虑的扫描仪标准.

你能阻止跨站脚本吗?

企业可以阻止跨站点脚本编写,但这需要您的安全和 Web 应用程序开发团队致力于良好的安全实践。 他们需要:

  • 定期检查应用程序代码是否存在问题: 在整个开发生命周期中分析代码以确定您的代码是否存在漏洞.
  • 编码输出并验证输入: 在将数据写入 Web 应用程序时对其进行编码,并进行验证和验证 清理用户代码输入 在发送到浏览器之前.
  • 使用高级安全工具: Web 应用程序安全软件旨在保护 Web 应用程序,对于防止 XSS 特别有用.
  • 教授良好的 DevOps 实践: 所有 Web 开发人员都应该了解 XSS 攻击以及如何通过创建强大、安全的代码来减少这些攻击.

阅读更多关于 防止XSS攻击, 包括可以帮助您的业务的攻击和工具的真实示例.

常见问题解答 (FAQs)

什么是 XSS 的真实示例?

在 2018, 英国航空公司遭遇袭击 一群黑客利用 JavaScript 库中的 XSS 漏洞。 黑客将客户数据发送到试图冒充英国航空公司域名的服务器。 在人们得知这次攻击之前,黑客就从超过 350,000 笔交易中窃取了信用卡数据。 这是检测 XSS 攻击需要多长时间的一个很好的示例.

黑客可以利用 XSS 做什么?

虽然攻击者可以使用 XSS 窃取数据和 cookie,但他们的破坏性目的也可能较小。 攻击者可以使用跨站点脚本来阻止竞争网站的性能或向合法页面添加不适当的内容。 然而,声誉受损仍然是有害的.

XSS 攻击的根本原因是什么?

跨站点脚本攻击的发生是因为 Web 应用程序请求的内容尚未经过正确验证。 虽然很难判断您的 Web 代码是否容易受到 XSS 攻击,但开发人员和安全团队可以通过多种方式缩小这些安全漏洞,例如在向 Web 浏览器发送用户请求之前验证所有输入. 

底线:跨站点脚本危及数据、应用程序和商业声誉

跨站点脚本攻击使 Web 应用程序和服务器面临风险,并给安全和 Web 开发团队带来挑战,他们甚至可能不知道自己很容易受到攻击。 但是,尽管人类发现代码中的漏洞和发现违规行为的能力有限,但使用自动化安全解决方案(例如漏洞扫描器和应用程序安全测试工具)会有所帮助.

您应该测试 Web 应用程序代码并创建安全的开发管道,以便在开发过程中不太可能出现漏洞。 尽管防止 XSS 漏洞和攻击似乎势不可挡,但从长远来看,妥善保管您的代码并投资自动化安全解决方案将有助于保护您的 Web 应用程序.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值