微软日前针对最近热议的IE 7 0day高危漏洞进行了调查,并发布了一份安全通报,介绍该漏洞影响的操作系统及相关软件,并提出了临时解决办法,指导用户暂时屏蔽该漏洞。
据微软官方通报表示,运行在Windows XP SP2及其以后版本微软操作系统上的IE 7均存在该漏洞,其中包括Windows XP Service Pack 2、Windows XP Service Pack 3、Windows Server 2003 Service Pack 1、Windows Server 2003 Service Pack 2、 Windows Vista、Windows Vista Service Pack 1和Windows Server 2008。而所有Windows系统上的IE 5.01 SP4、IE6 SP1、IE6和IE 8 Beta2也存在受该漏洞影响的可能。
微软表示,引起该漏洞的原因是IE浏览器数据绑定功能中的一个非法指针指向,微软指出,可以通过屏蔽OLEDB32.dll这个文件来暂时屏蔽该漏洞,可以通过以下四个方法来实现:
方法一:使用系统访问控制列表(SACL)禁用IE使用OLEDB32.dll
通过使用SACL条目来禁用IE浏览器访问OLEDB32.dll,保护IE浏览器免受攻击,同时保证其它依赖OLEDB32.dll的应用能正常运行。值得注意的是该系统仅支持Windows Vista以后版本,而且使用此方法时,IE浏览器需运行在保护模式启用情况下。
1、将以下内容保存到一个临时文件夹中:
·对于32-bit系统
保存以下文本内容到BlockAccess_x86.inf文件中:
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[File Security]
"%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll",2,"S:(ML;;NWNRNX;;;ME)"
·对于64-bit系统
保存以下文本内容到BlockAccess_x86.inf文件中:
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[File Security]
"%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll",2,"S:(ML;;NWNRNX;;;ME)"
保存以下文本内容到BlockAccess_x64.inf文件中:
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[File Security]
"%ProgramFiles%\Common Files\System\Ole DB\oledb32.dll",2,"S:(ML;;NWNRNX;;;ME)"
2、在该临时文件夹中以Administrator权限打开命令行窗口。
3、在命令提示符中输入以下命令,然后按回车:
SecEdit/configure/db BlockAccess.sdb/cfg <inf file>
其中<inf file>为inf 文件路径。
4、如果上述命令成功执行,你将会看到“任务成功结束”的提示。
方法二:禁用OLEDB32.dll的“Row Position”功能
值得注意的是,这个方法需要修改注册表,因此在修改之前务必做好注册表的备份,并严格按照指令修改。
打开注册表,删除以下注册表子键:
HKEY_CLASSES_ROOT\CLSID\{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}
删除该子键后,所有使用RowPosition属性的ADO应用会受影响,所有使用OLE DB Row Position库的OLE DB应用也会受影响。MSHTML或不能正常使用。
方法三:取消OLEDB32.dll注册
对于Windows 2000、Windows XP、Windows Server 2003、Windows Vista和Windows Server 2008等32-bit系统来说,运行如下命令:
Regsvr32.exe/u "Program Files\Common Files\System\Ole DB\oledb32.dll"
对于Windows XP Professional x64 Edition、Windows Server 2003 x64 Edition、Windows Vista x64 Edition、Windows Server 2008 for x64-based Systems和Windows Server 2008 for Itanium-based Systems来说,运行如下命令:
Regsvr32.exe/u "Program Files\Common Files\System\Ole DB\oledb32.dll"
Regsvr32.exe/u "Program Files (x86)\Common Files\System\Ole DB\oledb32.dll"
该方法会导致所有依赖于OLE DB数据访问的应用不能正常运行。
方法四:使用SACL完全禁用OLEDB32.dll
·对于Windows 2000、Windows XP和Windows Server 2003,运行如下命令:
cacls "Program Files\Common Files\System\Ole DB\oledb32.dll"/E/P everyone:N
·对于Windows XP Professional x64 Edition、Windows Server 2003 x64 Edition和Windows Server 2003 for Itanium-based Systems,运行如下命令:
cacls "Program Files\Common Files\System\Ole DB\oledb32.dll"/E/P everyone:N
cacls "Program Files (x86)\Common Files\System\Ole DB\oledb32.dll"/E/P everyone:N
·对于 Windows Vista和Windows Server 2008 for 32-bit Systems,运行如下命令:
takeown/f "Program Files\Common Files\System\Ole DB\oledb32.dll"
icacls "Program Files\Common Files\System\Ole DB\oledb32.dll"/save %TEMP%\oledb32.32.dll.TXT
icacls "Program Files\Common Files\System\Ole DB\oledb32.dll"/deny everyone:(F)
·对于Windows Vista x64 Edition、Windows Server 2008 for x64-based Systems和Windows Server 2008 for Itanium-based Systems,运行如下命令:
takeown/f "Program Files\Common Files\System\Ole DB\oledb32.dll"
icacls "Program Files\Common Files\System\Ole DB\oledb32.dll"/save %TEMP%\oledb32.32.dll.TXT
icacls "Program Files\Common Files\System\Ole DB\oledb32.dll"/deny everyone:(F)
takeown/f "Program Files (x86)\Common Files\System\Ole DB\oledb32.dll"
icacls "Program Files (x86)\Common Files\System\Ole DB\oledb32.dll"/save %TEMP%\oledb32.64.dll.TXT
icacls "Program Files (x86)\Common Files\System\Ole DB\oledb32.dll"/deny everyone:(F)