描述
敌人使用替代形式的关键字或命令,导致相同的动作为主要形式,但可能不会被过滤。例如,许多关键字以区分大小写的方式处理。如果网站的网络滤波算法不将所有标签转换成与之前一致的情况下禁止关键字可以绕过过滤器(例如,不完整的黑名单)通过使用另一种结构。例如,“脚本”标签使用替代形式的“脚本”或“脚本”可能绕过过滤器“脚本”是唯一的形式进行测试。其他变体使用不同的语法表示也可能污染以及使用元字符或实体最终被渲染引擎。否则禁止的攻击会导致执行功能。
攻击的可能性
典型的严重性
的关系
此表显示了其他的攻击模式和高水平类别相关的这种攻击模式。这些关系被定义为ChildOf ParentOf,给类似的项目可能存在的洞察力在较高和较低的抽象级别。此外,关系如光束,PeerOf, CanAlsoBe定义显示类似的攻击模式,用户可能想要探索。
自然 |
类型 |
ID |
的名字 |
ChildOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
588年 |
基于dom的XSS |
ChildOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
591年 |
反映XSS |
ChildOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
592年 |
存储XSS |
此表显示了这种攻击模式的观点属于和顶级类别内的这一观点。
执行流程
探索
调查申请用户可控的输入:使用浏览器或一个自动化工具,敌人之前所有公共和行动在一个网站的链接。他们记录所有的链接、表单、资源访问web应用程序和所有其他可能的切入点之一。
技术 |
使用搜索工具和记录所有的链接。特别注意任何链接,包括参数的URL。 |
使用一个代理工具来记录所有的链接访问web应用程序的手册中遍历。特别注意任何链接,包括参数的URL。这种类型的手工遍历经常需要识别形式GET方法而不是POST形式形式。 |
网站使用浏览器手动探索和分析它是如何构建的。许多浏览器的插件可以促进分析或自动发现的URL。 |
实验
XSS漏洞探测识别潜在入口点:可能使用一个自动化工具,敌人变化输入的请求他们调查了使用替代之前的语法。这些输入是为了绕过不完全过滤(例如,不完整的HTML编码等等),尝试了很多不同的人物注入将使XSS负载。他们记录所有来自服务器的响应,包括修改的版本的脚本。
技术 |
使用XSS探针的列表字符串注入参数已知的url。如果可能的话,探测器字符串包含一个惟一的标识符。尝试许多不同形式的基础上,格式,语法和编码。 |
使用一个代理工具记录结果XSS探针的手工输入url。 |
工艺恶意XSS URL:一旦对手确定哪些参数是容易受到XSS,他们将工艺包含XSS攻击的恶意URL。敌人可以有许多目标,从窃取会话id,饼干,凭据和页面内容的受害者。
技术 |
改变一个URL参数包含恶意脚本标签使用替代语法创建绕过过滤器。 |
从恶意脚本收集的信息发送到远程端点。 |
利用
让受害者点击网址:为了成功的攻击,受害者需要访问恶意URL。
技术 |
网络钓鱼电子邮件发送到包含恶意URL的受害者。这可以隐藏在一个超链接不显示完整的URL,这可能会引起怀疑。 |
把恶意URL放在一个公共论坛,很多受害者可能会意外地点击链接。 |
先决条件
目标客户端软件必须允许诸如JavaScript脚本。 |
技能要求
(等级:低) 注入恶意代码的网页 |
(级别:高) 在应用程序中绕过非琐碎的过滤器 |
所需资源
后果
这个表指定不同的个体与攻击模式相关的后果。范围确定违反了安全属性,而影响了负面的技术影响,如果敌人成功的攻击。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能有高可能性模式将被用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
完整性 |
修改数据 |
|
保密 |
读取数据 |
|
授权 |
执行未经授权的命令 |
|
问责制
身份验证
授权
不可抵赖性 |
获得特权 |
|
访问控制
授权 |
旁路保护机制 |
|
缓解措施
设计:使用浏览器技术,不允许客户端脚本。 |
设计:利用严格的类型、字符和编码执行 |
实现:确保所有内容交付给客户是消毒与一个可接受的内容规范。 |
实现:确保所有内容来自客户端使用相同的编码;如果不是,服务器端应用程序必须规范化数据在应用任何过滤。 |
实现:对所有远程执行输入验证内容,包括远程和用户生成内容 |
实现:对所有远程执行输出验证的内容。 |
实现:在浏览器中禁用脚本语言JavaScript等 |
实现:修补软件。有很多对XSS攻击向量在客户端和服务器端。许多浏览器漏洞被固定在服务包,web服务器、和插入技术,保持当前处理XSS对策,缓解了这一补丁发布。 |
例子,实例
在这个例子中,对手试图获得<脚本>警报(1)> < /脚本执行的受害者的浏览器。目标应用程序使用正则表达式来确保没有脚本是通过应用程序的web页面;这样的正则表达式可以((?我)脚本),和应用程序将取代所有匹配的正则表达式的空字符串。敌人将创建一个特殊载荷绕过这个过滤器:
< scriscriptpt >警报(1)< / scscriptript > 当应用程序被这个输入字符串,它将取代所有“脚本”空字符串(不分大小写),由此产生的输入将所需的向量的对手:
<脚本>警报(1)> < /脚本 在这个例子中,我们假设应用程序需要编写客户端JavaScript上下文中的一个特定字符串(例如,<脚本> < /脚本>)。的对手来执行相同的负载在前面的例子中,他们将需要发送警报(1)如果没有过滤。下面的正则表达式的应用程序使用过滤器
((\ w +) \ \ s *(. * \) | |警告eval函数| |文档) 空字符串和替换所有匹配。例如每次出现警报(),eval ()、foo()甚至字符串“警报”将被剥夺。敌人将创建一个特殊载荷绕过这个过滤器:
这(“al”+“接受方”)(1) 当应用程序被这个输入字符串,它不会取代任何和这段JavaScript运行时是一样的意思同警报(1)。敌人也可以使用非字母数字的XSS向量绕过过滤器;例如,
(美元=[$ =[]][(__ = ! $ + $)[_ = - ~ - ~ ~ $)+({}+ $)(_ / _)+($ $ =($ _ = ! " + $)(_ / _)+ $ _(+ $))))()[__(_ / _)+ __]美元[_ + ~ + $ _ [_]+ $ $)(_ / _) 将执行的JavaScript引擎像警报(1)。 |
引用
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2014-06-23
(版本2.6) |
CAPEC内容团队 |
manbetx客户端首页 |
|
修改 |
修改日期 |
修饰符 |
组织 |
2017-05-01
(版本2.10) |
CAPEC内容团队 |
manbetx客户端首页 |
更新描述总结,Related_Attack_Patterns Related_Weaknesses |
2019-04-04
(版本3.1) |
CAPEC内容团队 |
manbetx客户端首页 |
更新后的后果 |
2020-07-30
(版本3.3) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances Execution_Flow |
2022-02-22
(版本3.7) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances Execution_Flow |
2022-09-29
(版本3.8) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances |
以前的条目名称 |
改变日期 |
以前的条目名称 |
2017-05-01
(版本2.10) |
跨站点脚本使用替代语法 |
|
|