描述
这种类型的攻击是一种跨站点脚本(XSS),恶意脚本插入HTML被浏览器解析客户端。内容由一个脆弱的web应用程序包含脚本代码用来操纵文档对象模型(DOM)。这个脚本代码不正确验证输入,或不执行适当的输出编码,从而创建一个敌人的机会将恶意脚本启动XSS攻击。一个关键区别其他XSS攻击和其他基于dom的攻击是在XSS攻击,恶意脚本运行时,脆弱的web页面加载,而基于dom的攻击执行页面加载后的某个时候。基于dom的攻击的另一个区别是,在某些情况下,恶意脚本不会发送给脆弱的web服务器。这样的攻击是保证绕过任何服务器端过滤试图保护用户。
攻击的可能性
典型的严重性
的关系
此表显示了其他的攻击模式和高水平类别相关的这种攻击模式。这些关系被定义为ChildOf ParentOf,给类似的项目可能存在的洞察力在较高和较低的抽象级别。此外,关系如光束,PeerOf, CanAlsoBe定义显示类似的攻击模式,用户可能想要探索。
自然 |
类型 |
ID |
的名字 |
ChildOf |
标准的攻击模式-一个标准的级别CAPEC中攻击模式是集中在一个特定的方法或技术用于攻击。它通常被视为一个单一的完全执行攻击。标准的攻击模式是为了提供足够的细节来理解特定的技术,以及它如何试图完成预期的目标。标准水平的攻击模式是一种特定类型的一个更抽象的元级别的攻击模式。 |
63年 |
跨站点脚本(XSS) |
ParentOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
18 |
XSS攻击Non-Script元素 |
ParentOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
32 |
XSS通过HTTP查询字符串 |
ParentOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
86年 |
XSS通过HTTP标头 |
ParentOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
198年 |
XSS攻击的错误页面 |
ParentOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
199年 |
XSS使用替代语法 |
ParentOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
243年 |
XSS攻击的HTML属性 |
ParentOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
244年 |
XSS目标URI占位符 |
ParentOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
245年 |
XSS使用字符翻了一番 |
ParentOf |
详细的攻击模式-一个详细级别攻击模式CAPEC提供了一个低水平的细节,通常利用一个特定的技术和针对特定的技术,并表达一个完整的执行流程。详细的攻击模式比元更具体的攻击模式和标准的攻击模式,通常需要一个特定的保护机制来减轻实际攻击。详细的级别攻击模式通常会利用许多不同的标准水平攻击模式链接在一起来完成一个目标。 |
247年 |
XSS使用无效字符 |
此表显示了这种攻击模式的观点属于和顶级类别内的这一观点。
执行流程
探索
调查申请用户可控的输入:使用浏览器或一个自动化工具,敌人之前所有公共和行动在一个网站的链接。他们记录所有的链接、表单、资源访问web应用程序和所有其他可能的切入点之一。
技术 |
使用搜索工具跟踪和记录所有的链接和分析网页找到入口点。特别注意任何链接,包括参数的URL。 |
使用一个代理工具来记录所有的链接访问web应用程序的手册中遍历。 |
网站使用浏览器手动探索和分析它是如何构建的。许多浏览器的插件可以促进分析或自动发现。 |
实验
基于dom的XSS漏洞探测识别潜在入口点:对手使用入口点聚集在“探索”阶段作为目标列表和注入各种常见脚本有效载荷和特殊字符来确定一个入口点实际上代表一个脆弱和描述在多大程度上可以利用的漏洞。针对基于DOM的XSS,敌人正在寻找地方输入被用来直接修改DOM。
技术 |
使用XSS探针字符串列表注入脚本参数已知的url。如果可能的话,探测器字符串包含一个惟一的标识符。 |
使用一个代理工具记录结果XSS探针的手工输入url。 |
使用特殊字符的列表的HTML注入参数已知的url并检查如果他们正确编码,取代或过滤掉。 |
工艺恶意XSS URL:一旦对手确定哪些参数是容易受到XSS,他们将工艺包含XSS攻击的恶意URL。敌人可以有许多目标,从窃取会话id,饼干,凭据和页面内容的受害者。在基于DOM的XSS,恶意脚本甚至可能不会被发送到服务器,因为受害者的浏览器将操纵DOM本身。这可以帮助避免服务器端检测机制。
技术 |
改变一个URL参数包含恶意脚本标签。 |
添加一个URL片段改变预期的文档对象URL的值。 |
从恶意脚本收集的信息发送到远程端点。 |
利用
让受害者点击网址:为了成功的攻击,受害者需要访问恶意URL。
技术 |
网络钓鱼电子邮件发送到包含恶意URL的受害者。这可以隐藏在一个超链接不显示完整的URL,这可能会引起怀疑。 |
把恶意URL放在一个公共论坛,很多受害者可能会意外地点击链接。 |
先决条件
一个应用程序,该应用程序使用一个客户端web浏览器启用了脚本。 |
一个应用程序,该应用程序通过客户端脚本操纵DOM。 |
一个应用程序,该应用程序未能充分清洁或编码不可信的输入。 |
技能要求
(级别:中等) 需要编写脚本的能力的一些复杂性和注入系统中通过用户控制字段。 |
所需资源
后果
这个表指定不同的个体与攻击模式相关的后果。范围确定违反了安全属性,而影响了负面的技术影响,如果敌人成功的攻击。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能有高可能性模式将被用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密 |
读取数据 |
|
保密
授权
访问控制 |
获得特权 |
|
保密
完整性
可用性 |
执行未经授权的命令 |
|
完整性 |
修改数据 |
|
缓解措施
使用浏览器技术,不允许客户端脚本。 |
利用适当的字符编码为所有输出在客户站点脚本操纵DOM。 |
在使用前确保所有用户提供的输入验证。 |
例子,实例
考虑这样一个web应用程序,启用或禁用某些字段的表单页面上通过使用模式在查询字符串参数提供。
http://my.site.com/aform.html?mode=full 应用程序的客户端代码可能需要打印到屏幕上给用户这种模式价值理解的模式。在这个例子中,使用JavaScript将价值从URL和更新通过动态操纵DOM通过HTML document . write()调用。
< >脚本文件。写(“< p >模式是:”+ document.location.href.substring (document.location.href.indexOf(”模式= ')+ 5)+ " < / p > "); > < /脚本 注意在URL上提供的价值是直接使用没有输入验证执行,没有输出编码。一个恶意的URL可以形成这样的,如果一个受害者点击URL,恶意脚本就会被执行在受害者的浏览器:
http://my.site.com/aform.html?mode= <脚本> alert('嗨');> < /脚本 |
在一些基于dom的攻击,恶意脚本不会被发送到web服务器,因此绕过任何服务器端保护到位。考虑到之前使用的web应用程序显示模式的值。因为通过DOM操作,动态生成的HTML是一个URL片段(即。,一个URL的一部分后,可以使用“#”字符)。
脚本http://my.site.com/aform.html模式= < > alert('嗨')> < /脚本 在这个变化基于dom的XSS攻击,恶意脚本将不会被发送到web服务器,而是将由受害者的浏览器和客户端脚本代码仍然可用。 |
分类法映射
引用
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2017-04-15
(版本2.9) |
CAPEC内容团队 |
manbetx客户端首页 |
|
修改 |
修改日期 |
修饰符 |
组织 |
2017-08-04
(版本2.11) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Resources_Required |
2019-04-04
(版本3.1) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Related_Weaknesses |
2020-12-17
(版本3.4) |
CAPEC内容团队 |
manbetx客户端首页 |
更新引用,Taxonomy_Mappings |
2022-02-22
(版本3.7) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Execution_Flow |
2022-09-29
(版本3.8) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances |
|