

图13
进一步我们对该漏洞进行调试分析,将var_13 = new class_8();代码注释掉将会触发空指针访问崩溃。
eax=6906d8e9 ebx=00000000 ecx=00000000 edx=00000000 esi=08055d28 edi=0685b020eip=6850e148 esp=024fd5c0 ebp=024fd5f0 iopl=0 nv up ei pl nz ac po nccs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00210212Flash32_28_0_0_137!DllUnregisterServer+0x14ecda:6850e148 8b4904 mov ecx,dword ptr [ecx+4] ds:0023:00000004=????????
回溯发现地址数据来自esi+0c位置
6850e142 8b4e0c mov ecx,dword ptr [esi+0Ch]6850e145 8b4908 mov ecx,dword ptr [ecx+8]6850e148 8b4904 mov ecx,dword ptr [ecx+4]0:005> dd 066e4100066e4100 066e4f60 00000000 00000000 00000000066e4110 00000000 00000000 00000000 00000000
由于这里我们已经把var_13创建代码注释了,说明还有其他对象被错误的释放了,LocalConnection().connect会主动调用gc释放没有的引用的内存,所以这里我们再把这部分注释,并在 6850e142 8b4e0c mov ecx,dword ptr [esi+0Ch] 处设置断点,观察被释放的数据内容。

图14
断点命中后,可以发现数据其实是class_8对象的内容,也就是var_16的内存。
eax=67c1d8e9 ebx=00000000 ecx=0607b2e0 edx=00000000 esi=04785d28 edi=0626b020eip=670be148 esp=022fcfc0 ebp=022fcff0 iopl=0 nv up ei pl nz ac po nccs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00200212Flash32_28_0_0_137!DllUnregisterServer+0x14ecda:670be148 8b4904 mov ecx,dword ptr [ecx+4] ds:0023:0607b2e4=060ba4c00:005> dd 0618e1000618e100 67c51a88 00000002 0607b2e0 07d980400618e110 00001111 00002222 00003333 000044440618e120 00005555 00006666 00007777 000088880618e130 00009999 0000aaaa 00001111 00002222
最终分析确认cve-2018-4878零日漏洞是drmManager.initialize没有正确的处理所持有的对象导致UAF漏洞。
Shellcode攻击流程分析
接下来,漏洞触发执行的shellcode会通过进程名,判断用户是否安装了AhnLab、ViRobot APT Shield和360三款中韩常用的安全软件,以采取不同的方案进行攻击。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-74231-2.html
对比大豆的收购价我真不知道食用油售价低于5元
那个愿意搞个合娶