研究人员在BlackHatAsia2021会议上分享了MicrosoftIIS和SQLServer的新攻击面。Unit42在BlackHatAsia2021上分享了攻击MicrosoftIIS和SQLServer的新攻击面。在演示中,研究人员介绍了一种新技术,可以通过SQL注入等场景对IIS和SQL服务器上的远程数据库执行SQL查询。攻击者可以利用该技术和MicrosoftJet数据库引擎中的漏洞,远程攻击IIS和SQL服务器,获取系统权限。攻击面研究人员发现的新攻击面是由微软的Jet数据库引擎支持的远程数据库访问引起的,包括JetRed数据库引擎和AccessConnectionEngineACE。攻击者误用或滥用此功能可以在远程攻击者控制的服务器上对完全控制的数据库文件执行SQL查询。一旦远程合法数据库文件被伪造的数据库文件替换,SQL查询的执行将打破MicrosoftJet/ACE代码的预制条件和假设,导致Jet组件存在安全漏洞。典型的攻击场景是SQL注入和临时攻击。在这两种攻击场景中,攻击者都可以在IIS和SQL服务器上的假数据库上执行任意SQL查询。由此产生的Jet漏洞会影响IIS和SQL服务器。具体来说,当用户对一个表执行SQL查询时,可以在Jet表前添加一个数据库路径来分配一个远程数据库,如图1所示:图1.Access和SQLServer中的远程数据库访问MicrosoftJet和ACE中的SQL,调用CreateFile会在IIS和SQLserver中打开远程数据库文件。远程数据库的输入路径是UNC路径,所以会使用SMB和WebDAV打开远程数据库,如图2所示:图2IIS和SQLserver中的隐藏特性SQL注入和adhoc是两种潜在的攻击方式场景。同样,IIS和SQLServer只是两个潜在的受害者。Windows中所有支持Jet和ACE的组件都可能受此漏洞影响,因为这些组件允许用户对他们控制的数据库执行任意查询。IIS和SQLServer漏洞远程数据库访问允许攻击者用伪造的数据库文件替换合法的数据库文件。研究人员分析发现,更换数据库是发现MicrosoftJet和ACE漏洞的关键。研究人员通过模糊策略在MicrosoftJet和ACE中发现了大约100个安全漏洞,如图3所示。大多数漏洞可用于攻击IIS和SQL服务器。图3.大约100个Jet漏洞研究人员已经证明,数据库文件的一个字节修改会导致Jet安全漏洞,如图4所示:图4.数据库的一个字节修改会导致安全漏洞。微软补丁微软分配了该漏洞CVE编号为CVE-2021-28455。2021年5月,微软针对该漏洞发布了安全补丁。该补丁为用户提供了禁用Jet组件和ACE组件的远程数据库访问的选项。该补丁不仅修复了单个JET漏洞,还减轻了使用Jet组件的整个应用程序的攻击面。详细修复步骤见:https://unit42.paloaltonetworks.com/iis-and-sql-server/结语IIS和SQLserver是微软生态系统中的基础组件,广泛应用于各种生产系统和服务中。MicrosoftJet数据库引擎已有20多年的历史,大部分组件被发现存在安全漏洞,很容易被利用。远程数据库访问功能将Jet漏洞与IIS和SQL服务器组件联系起来。攻击者可以利用该特性攻击IIS和SQL服务器,通过SQL注入远程获取系统权限。本文翻译自:https://unit42.paloaltonetworks.com/iis-and-sql-server/