美文网首页
CVE-2014-4113的想法

CVE-2014-4113的想法

作者: HopeBsod | 来源:发表于2019-05-31 17:56 被阅读0次

近期我想从事win32k的漏洞挖掘 分析了些漏洞,从这个漏洞我考虑的是怎么发现的呢,
我对这块比较陌生,我熟悉的是DirectX这块的漏洞挖掘。
SetWindowsHookExA挂钩 ,TrackPopupMenu显示快捷菜单,poc是截获1EB消息。然后EndMenu 返回-5 为什么这样是因为xxxMNFindWindowFromPoint的返回值 叫做v1吧 他的返回判断是下面这样

    v38 = xxxMNFindWindowFromPoint((WCHAR)v3, (int)&UnicodeString, (int)v7);
    if ( !v38 && !UnicodeString )
    {
      xxxMNDismiss(a2);
      return 1;
    }
    if ( *(_BYTE *)v3 & 2 && v38 == -5 )  //与2其与-5比较
    {
      xxxMNSwitchToAlternateMenu(v3);
      v38 = -1;
    }
    if ( v38 == -1 )//与-1比较
    {
      xxxMNDoubleClick(a2, v3, UnicodeString);
      return 1;
    }
    v46 = *((_DWORD *)gptiCurrent + 45);
    *((_DWORD *)gptiCurrent + 45) = &v46;
    v47 = v38;
    if ( v38 )
      ++*(_DWORD *)(v38 + 4);
    v41 = UnicodeString;
    LOBYTE(v40) = -15;
    v39 = (void *)v38;
  LABEL_144:
      xxxSendMessage(v39, v40, v41, 0);  //xxxMNFindWindowFromPoint 的返回值接着被发送
  LABEL_145:
         ThreadUnlock1();
         return 1;

调用路径 NtUserTrackPopupMenuEx->xxxTrackPopupMenuEx->xxxMNLoop->xxxHandleMenuMessages->xxxMNFindWindowFromPoint->xxxSendMessage

因为对0xFFFFFFFB单独判断 查看反汇编得知0xFFFFFFFFB被xxxSendMessage当作消息发送 即bsod 如果0xFFFFFFFFB被申请 则会被利用。下面是汇编 eax即是0xFFFFFFFFB

 .text:BF93935E                 test    byte ptr [edi], 2
 .text:BF939361                 jz      short loc_BF939371
 .text:BF939363                 cmp     eax, 0FFFFFFFBh
 .text:BF939366                 jnz     short loc_BF939371
 .text:BF939368                 push    edi             ; HDC
 .text:BF939369                 call    _xxxMNSwitchToAlternateMenu@4 ; xxxMNSwitchToAlternateMenu(x)
 .text:BF93936E                 or      eax, 0FFFFFFFFh
 .text:BF939371
 .text:BF939371 loc_BF939371:                           ; CODE XREF: xxxHandleMenuMessages(x,x,x)+5E9�j
.text:BF939371                                         ; xxxHandleMenuMessages(x,x,x)+5EE�j
 .text:BF939371                 cmp     eax, 0FFFFFFFFh
  .text:BF939374                 jnz     short loc_BF939382
 .text:BF939376                 push    dword ptr [ebp+UnicodeString]
  .text:BF939379                 push    edi
  .text:BF93937A                 push    esi
  .text:BF93937B                 call    _xxxMNDoubleClick@12 ; xxxMNDoubleClick(x,x,x)
 .text:BF939380                 jmp     short loc_BF9393B7

 .text:BF939382 loc_BF939382:                           ; CODE XREF: xxxHandleMenuMessages(x,x,x)+5FC�j
.text:BF939382                 mov     ecx, _gptiCurrent
 .text:BF939388                 add     ecx, 0B4h
 .text:BF93938E                 mov     edx, [ecx]
.text:BF939390                 mov     [ebp+var_20], edx
 .text:BF939393                 lea     edx, [ebp+var_20]
 .text:BF939396                 mov     [ecx], edx
 .text:BF939398                 mov     [ebp+var_1C], eax
 .text:BF93939B                 test    eax, eax
  .text:BF93939D                 jz      short loc_BF9393A2
 .text:BF93939F                 inc     dword ptr [eax+4]
  .text:BF9393A2
  .text:BF9393A2 loc_BF9393A2:                           ; CODE XREF: xxxHandleMenuMessages(x,x,x)+625�j
 .text:BF9393A2                 push    0               ; Address
   .text:BF9393A4                 push    dword ptr [ebp+UnicodeString] ; UnicodeString
  .text:BF9393A7                 push    1F1h            ; MbString
  .text:BF9393AC                 push    eax             ; P
  .text:BF9393AD
  .text:BF9393AD loc_BF9393AD:                           ; CODE XREF: xxxHandleMenuMessages(x,x,x)+172�j
 .text:BF9393AD                 call    _xxxSendMessage@16 ; xxxSendMessage(x,x,x,x)

.text:BF9393B2
对于挖掘 如果看到这里发现对于-5没有单独判断,可以尝试挂钩处理会有收获。
fuzz呢?我对于fuzz说起来也就是for循环,加一些自己的小想法,这种漏洞我觉得发现者可能是看出来的,我之前也看出来过一个Directx的漏洞,但是刚看出来人家就补了 蛮遗憾。这个漏洞的分析有现成poc打断点调试即可,至于怎么发现类似的我想是注意返回比较,看吧 当然要熟悉menu的很多内容比如结构体,所以我决定在调试几个就再看文档整理成册 然后先调调函数 其他的再说

相关文章

  • CVE-2014-4113的想法

    近期我想从事win32k的漏洞挖掘 分析了些漏洞,从这个漏洞我考虑的是怎么发现的呢,我对这块比较陌生,我熟悉的是D...

  • 关于想法的想法

    想法催生想法,有时候这一过程比较温馨平稳,比如独自吃饭走路骑车发呆,听见歌曲,看到光影,闻着气味,种种细节串联起来...

  • 没想法的想法

    我实在想不通,所以我偷偷拍了一张照片,这是我们学生用的桌子,我们的学生是希望,是花朵,是最需要我们投资的财富。我不...

  • 72 关于想法的想法

    久疏于思考,突然发觉这可能是写得少了的结果。到底是思考时在书写还是书写时在思考,真的是很难分别的一件事。 自我的认...

  • 颠覆你想法的想法

    古典老师的《跃迁》这本书仅仅第一章,就让你感觉到,颠覆的不仅仅是你的想法,甚至颠覆你存在的可能性。 1、知道知识在...

  • 大脑的想法,我的想法

    财富自由复习1 虽然也有过不愿意再去的时候,但我知道那不过是我的大脑的想法,而不应该是我的想法——只要意识到这一点...

  • 想法与“想法”

    一直以来,我都是一个很容易因为别人一句话而影响到自己的心情。虽然我很早就意识到这个问题了,我自身也想去改变这种情况...

  • 想法只是想法

    想法只是想法。你有没有这种体验,过高空索桥,你一边想着「不行了,我不行了,我过不去的」,一边闭着眼前行。 「不行了...

  • 想法只是想法

    "我不会、我做不到、我不敢"。我们的头脑中经常会出现这些想法。这些想法阻碍了我们前进的脚步。让机会悄悄地溜走。 我...

  • 想法只是想法

    很多时候,我们常常困在惯性思维中,对自己、或身边人发狠使蛮劲,最后往往越解决问题,越是一个问题。 ...

网友评论

      本文标题:CVE-2014-4113的想法

      本文链接:https://www.haomeiwen.com/subject/xqbgtctx.html