Windows 10中的DHCP安全性:分析关键漏洞CVE-2019-0726( 二 )


文章插图
设置一个服务器来响应内容请求 , 并让未更新的客户端出现访问冲突 。在每一个步骤中 , 函数完成一部分域名解析时 , 就会将这部分数据复制到目标缓冲区:
1).eng.
2).eng.apple.
3).eng.apple.com.
接下来 , 当数据中出现大小为0的域名时 , 函数就会将目标缓冲区中的句号改为逗号:
4).eng.apple.com,
然后继续解析:
5).eng.apple.com,marketing.
6).eng.apple.com,marketing.apple.
7).eng.apple.com,marketing.apple.com.
8).eng.apple.com,marketing.apple.com,
输入数据解析完成后 , 剩下的就是用空字符替换最后的逗号:
9).eng.apple.com,marketing.apple.com
当攻击者发送如上所述的缓冲区数据时会发生什么呢?我们可以看到 , 它包含的列表是有一个空字符串组成的 。那么在函数第一次计算输出数据大小后 , 由于数据并没有包含非零域名 , 所以大小为零 。在第二次传递时 , 它会给数据分配堆内存块 , 并复制数据 。但解析函数会立即遇到指示域名结尾的空字符 , 并将句号改为逗号 。

Windows 10中的DHCP安全性:分析关键漏洞CVE-2019-0726

文章插图
因此 , 如果想要利用这个漏洞CVE-2019-0726 , 攻击者必须要在DHCP客户端上执行远程堆喷射 , 并对堆内存分布要有完整控制权 。否则 , 将数据写入未选中的地址会导致svchost.exe进程崩溃 。
* 参考来源:ptsecurity , FB小编Alpha_h4ck编译 , 转载请注明来自FreeBuf.COM

【Windows 10中的DHCP安全性:分析关键漏洞CVE-2019-0726】


推荐阅读