capec - 461: Web服务API签名伪造利用哈希函数扩展的弱点 |
描述
敌人利用哈希函数扩展/填充的弱点,修改参数传递到web服务请求身份验证通过生成自己的电话为了生成一个合法签名散列(如在笔记中所述),没有知识的秘密令牌有时提供的web服务。
扩展描述
web服务需要被验证时,有时问题令牌/秘密给调用者调用者是使用签署他们的web服务调用。调用者在这样的一个方案,构建请求时,会将所有的参数传递到web服务提供的身份验证令牌,然后生成的散列连接字符串(如MD5、SHA1,等等)。那散列形式的签名传递到web服务用于在服务器端验证消息的来源的真实性和完整性。由于哈希函数的迭代设计,这是有可能的,从只有消息的哈希和它的长度,对敌人进行签名伪造通过计算散列长消息从最初的消息,包括所需的填充初始消息达到512比特的倍数。重要的是要注意,攻击不限于MD5和将工作在其他诸如SHA1哈希函数。
典型的严重性
执行流程
探索
找到一个脆弱的web服务:敌人发现一个web服务,它使用一个脆弱的身份验证方案中,身份验证令牌在哪里连接请求的参数,然后散列
技术 |
阅读应用程序文档了解所使用的身份验证方案 |
观察web服务流量寻找脆弱的身份验证方案 |
实验
尝试添加填充参数:敌人测试如果他们可以直接添加填充的参数请求,请求技术改变,剩下的散列相同的
技术 |
利用哈希函数扩展/填充弱点只有填充测试的弱点 |
利用
添加恶意参数要求:添加恶意参数捕获请求除了已经存在。为此,利用哈希函数的填充弱点和web服务发送请求,认为这是身份验证和作用于额外的参数。
技术 |
利用哈希函数扩展/填充的弱点将恶意参数添加到web服务请求,这样它仍认为是真实的 |
先决条件
Web服务API调用的签名检查 |
身份验证令牌/服务器之间共享的秘密和合法的客户端 |
生成的API调用签名连接参数列表共享密钥和散列结果。 |
迭代使用像MD5、SHA1哈希函数。 |
攻击者可以拦截或以其他方式获得合法的客户端和服务器之间的信息传递,以检索原始消息的散列值和长度。 |
客户机和服务器之间的通信通道并不是获得通过通道安全如TLS |
技能要求
(级别:中等) 中等水平的密码学知识,特别是迭代的哈希函数是如何工作的。这是需要选择适当的填充。 |
所需资源
进入生产一个哈希函数(如MD5、SHA1) 工具允许攻击者截获客户机和服务器之间的消息,特别是哈希签名和秘密的原始消息连接的长度字节 |
缓解措施
设计:使用一个安全的消息验证码(MAC)如HMAC-SHA1函数 |
例子,实例
利用攻击功能扩展/填充的缺点,考虑到消息传递到web服务是M(此消息包括参数传递到web服务连接与秘密令牌/关键字节)。消息米哈希散列是传递到web服务和用于身份验证。攻击者不知道,但可以看到哈希(M)和长度(米)。攻击者可以计算散列(M | |填充(M) | | M)的M。攻击者不知道整个消息,专门攻击者不知道秘密字节,但这并不重要。攻击者仍然可以签署自己的信息M”和被调用的web服务验证信息的完整性,没有一个错误。 |
分类法映射
CAPEC映射ATT&CK技术利用一个继承模型简化和减少直接CAPEC / ATT&CK映射。继承的映射表示文本说明父CAPEC有相关ATT&CK映射。注意,ATT&CK企业框架不使用一个继承模型的一部分映射到CAPEC。
引用
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2014-06-23
(版本2.6) |
CAPEC内容团队 |
manbetx客户端首页 |
|
修改 |
修改日期 |
修饰符 |
组织 |
2018-07-31
(版本2.12) |
CAPEC内容团队 |
manbetx客户端首页 |
Attack_Prerequisites更新,总结描述 |
2020-12-17
(版本3.4) |
CAPEC内容团队 |
manbetx客户端首页 |
更新描述,Example_Instances |
2021-10-21
(版本3.6) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Execution_Flow |
2022-09-29
(版本3.8) |
CAPEC内容团队 |
manbetx客户端首页 |
更新描述,Extended_Description |
|