用户
搜索
  • TA的每日心情
    难过
    2018-7-12 23:05
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    i春秋-见习白帽

    Rank: 3Rank: 3

    12

    主题

    105

    帖子

    1025

    魔法币
    收听
    0
    粉丝
    18
    注册时间
    2015-10-29
    发表于 2016-7-28 14:15:28 1713394
    首先我需要纠正一下@nancheal同学,我的ID是k0shl,并非k0s1,发这贴的原因是上午看到了nancheal发的一次失败的分析之后,发现他原帖中存在的一些细节上的问题,和对于这个漏洞的疑惑,我也受到了泉哥的《漏洞战争》签名赠书,还没来得及看,所以对泉哥的分析并不是很了解,网上说搜索了一下也只搜到泉哥关于这个漏洞的补丁对比的内容。昨天和nancheal同学在微信上有过短暂的交流,也不是很深入,上午看完帖子后,我自己进行了一下调试,结合nancheal的分析来完成对这个漏洞的分析。

    另外蛋总让我强行参加原创奖励活动,也借此机会了却一桩心事吧。。

    首先我的个人建议是nancheal同学以及刚刚入门和准备入门的同学都先不要调试《漏洞战争》这本书上的漏洞,首先CVE级别漏洞本身都很复杂,哪怕08年以后的漏洞都涉及到一些较为高级的调试技巧,书上的实例可能调试步骤比较详细,但是调试过程中难免会碰到一些细节会和书上不同,比如malloc申请堆空间的时候,申请下来堆空间每次地址都不一样,因此建议刚入门或者想入门的同学,先从基础的做起,《0day安全:软件漏洞分析技术》这本书就是为《漏洞战争》准备的基础书籍,极力推荐。

    另外就算在对《漏洞战争》中的实例调试时,还是需要从原理入手,灵活运用所学,不一定是要完全按照书上的调试内容,更多的应该把书作为实践的佐证。

    其次我要纠正一下nancheal在帖子[原创] 漏洞战争之cve-2010-2883 一次失败的分析 中存在的误区。

    1、dll的读写权限,这个我在昨天和nancheal在微信上讨论时已经指出,实际上,dll不具备w(写)权限也很正常,有R权限就已经很不错了,其中熟悉PE结构的同学知道.text段是代码段,拥有执行权限,.data段用于存放变量,实际上,这个漏洞原理和dll中是否具备写权限关系不大,可能会对将来exp执行有影响,但是这里就分析来说影响并不大。

    2、泉哥为什么要用内存访问断点,这里要普及两个概念,一个是内存写入断点和内存访问断点,这两个断点在漏洞分析调试中经常会被用到,在申请了一片内存空间后,可能会向这片内存空间中存入一些数值,这些数值可能是我们的payload,这时候我们可以通过对这片内存的起始地址(某指针)下内存访问断点,这样,当后续指令流在调用到这个内存起始地址(也就是调用到某指针)的时候,就会命中断点,这样就能快速定位到发生调用的位置。
    而内存写入断点则是,比如我们malloc开辟了一片内存空间,在程序执行到某个位置的时候,会向这片内存区域拷贝我们的payload,这时,我们可以在malloc之后对这片内存区域的起始地址下内存写入断点,这之后,如果程序执行到某处,会对这个地址写入payload时候就会发生中断,命中断点。

    用C的方法来解释这个过程就是

    [AppleScript] 纯文本查看 复制代码
    /* 0 */char *ichunqiu = (char *)malloc(250);
    /* 1 */ichunqiu = "I love AK";
    /* 2 */char *k0shl = ichunqiu;


    当执行0语句的时候,对ichunqiu这个指针地址下内存访问断点和内存写入断点。当执行到1语句的时候,会因为内存写入断点而中断,当执行到2语句的时候,会因为内存访问断点而中断。

    3、关于nancheal提出的其他dll,不知道他最后命中的是不是BIB.dll,这个也是Adobe Reader下的一个dll,实际上是在CoolType.dll下发生溢出,而在BIB.dll中造成的影响。

    好了,基本的原理就是这样,下面进入我们的分析。

    这里调试器我选用:Windbg
    测试环境:windows xp sp3
    测试软件:Adobe Reader 8.0
    PoC选用泉哥提供的PoC里的msf样本。

    根据漏洞描述,这个漏洞是在处理Sing字体解析的时候会发生溢出,在实际分析之后,实际上这里是由于溢出引发的某指针被覆盖,从而从CoolType.dll中调用BIB.dll某函数时,某函数重要指针被覆盖,从而导致了程序进入SEH异常处理模块,之后通过溢出覆盖SEH指针达到执行任意代码的目的。关于补丁对比,百度指直接搜索CVE-2010-2883就能看到kanxue泉哥的文章,其他也有转载,不再多提。

    根据nancheal同学分析中的描述,我们可以定位到函数

    [C] 纯文本查看 复制代码
    char __cdecl sub_803BC7B(int a1, int a2, int a3, int a4)


    这个函数中会对SING字体格式进行解析,具体的IDA伪代码我不全发了,比如

    [C] 纯文本查看 复制代码
          sub_8020619(a1, "SING");


    会对SING进行判断等等,这里不多说了,关注到函数中有一处调用loc块,这个在nancheal的分析中也能看到。

    [Asm] 纯文本查看 复制代码
    .text:0803BD21 loc_803BD21:                            ; CODE XREF: sub_803BC7B+9Cj
    .text:0803BD21                 add     eax, 10h
    .text:0803BD24                 push    eax             ; char *
    .text:0803BD25                 lea     eax, [ebp+108h+var_108]
    .text:0803BD28                 push    eax             ; char *
    .text:0803BD29                 mov     [ebp+108h+var_108], 0
    .text:0803BD2D                 call    strcat


    通过Windbg,在这个块0803BD21地址下断点进行跟踪。

    [Asm] 纯文本查看 复制代码
    0:000> p
    eax=086de160 ebx=0012e584 ecx=00000000 edx=00000200 esi=00000000 edi=0012e690
    eip=0803bd24 esp=0012e3ec ebp=0012e454 iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206
    CoolType+0x3bd24:
    0803bd24 50              push    eax
    0:000> p
    eax=086de160 ebx=0012e584 ecx=00000000 edx=00000200 esi=00000000 edi=0012e690
    eip=0803bd25 esp=0012e3e8 ebp=0012e454 iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206
    CoolType+0x3bd25:
    0803bd25 8d4500          lea     eax,[ebp]
    0:000> p
    eax=0012e454 ebx=0012e584 ecx=00000000 edx=00000200 esi=00000000 edi=0012e690
    eip=0803bd28 esp=0012e3e8 ebp=0012e454 iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206
    CoolType+0x3bd28:
    0803bd28 50              push    eax
    0:000> p
    eax=0012e454 ebx=0012e584 ecx=00000000 edx=00000200 esi=00000000 edi=0012e690
    eip=0803bd29 esp=0012e3e4 ebp=0012e454 iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206
    CoolType+0x3bd29:
    0803bd29 c6450000        mov     byte ptr [ebp],0           ss:0023:0012e454=54
    0:000> p
    eax=0012e454 ebx=0012e584 ecx=00000000 edx=00000200 esi=00000000 edi=0012e690
    eip=0803bd2d esp=0012e3e4 ebp=0012e454 iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206
    CoolType+0x3bd2d:
    0803bd2d e86c5b0100      call    CoolType!CTInit+0xd4aa (0805189e)


    可以看到,在0803bd2d位置调用了strcat函数,实际上实现的是对第二次push eax的地址进行字符串拼接,拼接的内容是第一次push eax的内容,可以来看一下这两个内容。这个内容不多介绍了,在nancheal的文章里也有,其实第一次push eax的内容就是畸形字符串的内容,而第二次就是准备拷贝进的内容。

    我们关注到eax的地址是0012e454,也就是说,这个0012e454在执行完毕后,会拼接上畸形字符串,我们直接步过call调用。并再次查看地址。

    [Asm] 纯文本查看 复制代码
    0:000> t
    eax=0012e454 ebx=0012e584 ecx=0012e584 edx=0000006c esi=00000000 edi=0012e690
    eip=080011cc esp=0012e3e4 ebp=0012e454 iopl=0         nv up ei pl zr na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
    CoolType+0x11cc:
    080011cc 56              push    esi
    0:000> p
    eax=0012e454 ebx=0012e584 ecx=0012e584 edx=0000006c esi=00000000 edi=0012e690
    eip=080011cd esp=0012e3e0 ebp=0012e454 iopl=0         nv up ei pl zr na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
    CoolType+0x11cd:
    080011cd 57              push    edi
    0:000> dd esp
    0012e3e0  00000000 0803bd3f 0012e454 4af0349b
    0012e3f0  00000004 0012e64c 00000000 4af034d3
    0012e400  0012e66c 0012e64c 00000000 0012e3fc
    0012e410  0012e4b0 081608b9 00000000 08085528
    0012e420  080497d5 0012e678 000026ec 0012e690
    0012e430  086cef58 00001ddf 00000000 00000000
    0012e440  00b38120 0012e3ec 0012e684 0816ebd7
    0012e450  00000002 e6516698 e78b53ab 4a82a714
    0:000> dd 0012e454
    0012e454  e6516698 e78b53ab 4a82a714 0c0c0c0c
    0012e464  37120a16 36e78c7a 03a9dc3f cbcfe1a1
    0012e474  c591787b 5ff78c8b 902fc83d 1e35d340
    0012e484  5f450b24 0a616d64 6c9e5b1d eb6af62e
    0012e494  cc3efb89 2b1a8365 1b6890d3 daed63fe
    0012e4a4  2841ca39 b36b9a86 d5c751cc 0f2c2ad9
    0012e4b4  b451ef61 5e4c3415 26f3b9cd 487189ce
    0012e4c4  4f37251f 905d28ad 57ba53b8 7d86e71c


    可以看到,已经覆盖上畸形字符串了,实际上,去看一下泉哥的补丁对比可以发现,adobe修补这个漏洞,也是在strcat之前进行了一次对字体内容的判断,控制长度防止了溢出。

    这里拷贝上畸形字符串后单步跟踪,发现这里strcat后会调用一处函数。

    [Asm] 纯文本查看 复制代码
    0:000> p
    eax=0012e454 ebx=0012e584 ecx=0012e584 edx=0000006c esi=00000000 edi=0012e690
    eip=080011d2 esp=0012e3d8 ebp=0012e454 iopl=0         nv up ei pl zr na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
    CoolType+0x11d2:
    080011d2 8bf1            mov     esi,ecx
    0:000> p
    eax=0012e454 ebx=0012e584 ecx=0012e584 edx=0000006c esi=0012e584 edi=0012e690
    eip=080011d4 esp=0012e3d8 ebp=0012e454 iopl=0         nv up ei pl zr na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
    CoolType+0x11d4:
    *** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Program Files\Adobe\Reader 8.0
    \Reader\BIB.dll -
    080011d4 ff155ce52008    call    dword ptr [CoolType!CTCleanup+0xcdcc0 (0820e55c)] ds:0023:0820e55c=07005143
    0:000> dd esp
    0012e3d8  0012e454 0012e690 00000000 0803bd3f
    0012e3e8  0012e454 4af0349b 00000004 0012e64c
    0012e3f8  00000000 4af034d3 0012e66c 0012e64c
    0012e408  00000000 0012e3fc 0012e4b0 081608b9
    0012e418  00000000 08085528 080497d5 0012e678
    0012e428  000026ec 0012e690 086cef58 00001ddf
    0012e438  00000000 00000000 00b38120 0012e3ec
    0012e448  0012e684 0816ebd7 00000002 e6516698
    0:000> dd 0012e454
    0012e454  e6516698 e78b53ab 4a82a714 0c0c0c0c
    0012e464  37120a16 36e78c7a 03a9dc3f cbcfe1a1
    0012e474  c591787b 5ff78c8b 902fc83d 1e35d340
    0012e484  5f450b24 0a616d64 6c9e5b1d eb6af62e
    0012e494  cc3efb89 2b1a8365 1b6890d3 daed63fe
    0012e4a4  2841ca39 b36b9a86 d5c751cc 0f2c2ad9
    0012e4b4  b451ef61 5e4c3415 26f3b9cd 487189ce
    0012e4c4  4f37251f 905d28ad 57ba53b8 7d86e71c


    可以看到,调用这处函数的时候,参数就是我们的畸形字符串,关于函数调用的参数,通过esp就能看到,这个是基本,网上都能够搜到,我不再解释了,在call这个函数之前,我们要重点关注一个寄存器ecx,可以看到ecx的值是0012e584,ecx存放的起始就是this指针,那么这个值和我们刚才strcat的值0012e454是不是离得很近,而由于没有进行长度检查,导致this指针原本的值,会被0012e454的值覆盖!这个地方很关键,也是漏洞最根本的原因!来看一下这个值

    [Asm] 纯文本查看 复制代码
    0:000> dd ebx
    0012e584  4a8a08c6 5cc9c74d a53c982e 151b9907
    0012e594  cdb55d52 1a101055 b03f839c 343c1b59
    0012e5a4  553cc3ea a31efcba 695dc2d0 e680dffb
    0012e5b4  bf0194b8 0960a1af 201ff4e3 d5253c21
    0012e5c4  11c0be21 85c00d4c 043ecff4 05bb3e03
    0012e5d4  d22783c6 77ba1c97 3d582536 9210a51f
    0012e5e4  e85a280e 17662139 e2ad85c3 c9f86c5e
    0012e5f4  40c7f4b1 5fdd9565 afe3c638 abe6f453


    正是我们畸形字符串的一部分,由于溢出的发生,导致this指针被覆盖了,那么这会造成什么后果呢。,先通过IDA可以看一下这一块的伪代码。

       
    [C] 纯文本查看 复制代码
       if ( v18 )
          {
            if ( !(*(_DWORD *)v18 & 0xFFFF) || (*(_DWORD *)v18 & 0xFFFF) == 256 )
            {
              v24 = 0;
              strcat(&v24, (const char *)(v18 + 16));
              sub_80011CC((int *)a2, (int)&v24);


    这里执行完strcat后,会调用sub_80011cc,其中会调用到两个参数a2和v24,而a2就是我们的this指针,而v24则是strcat后的畸形字符串(已经不重要了,关键的this指针已经被覆盖),关于sub_80011cc函数通过IDA可以看到下面的伪代码。

    [C] 纯文本查看 复制代码
    int *__thiscall sub_80011CC(int *this, int a2)
    {
      int *v2; // esi@1
      int v3; // edi@1
    
      v2 = this;
      v3 = dword_820E55C(a2);
      if ( *v2 )
        dword_820E560(*v2);
      *v2 = v3;
      v2[1] = dword_820E564(v3);
      return v2;
    }


    两者对证,可以发现this指针就是之前提到的a2,a2已经被覆盖了,随后this指针会交给v2变量,可以看一下这个过程。

    [Asm] 纯文本查看 复制代码
    0:000> p
    eax=0012e454 ebx=0012e584 ecx=0012e584 edx=0000006c esi=00000000 edi=0012e690
    eip=080011ce esp=0012e3dc ebp=0012e454 iopl=0         nv up ei pl zr na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
    CoolType+0x11ce:
    080011ce ff74240c        push    dword ptr [esp+0Ch]  ss:0023:0012e3e8=0012e454
    0:000> p
    eax=0012e454 ebx=0012e584 ecx=0012e584 edx=0000006c esi=00000000 edi=0012e690
    eip=080011d2 esp=0012e3d8 ebp=0012e454 iopl=0         nv up ei pl zr na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
    CoolType+0x11d2:
    080011d2 8bf1            mov     esi,ecx


    这里执行了一处拷贝操作,拷贝的就是ecx地址,交给esi指针寄存器,随后观察esi的值。

    [Asm] 纯文本查看 复制代码
    0:000> dd esi
    0012e584  4a8a08c6 5cc9c74d a53c982e 151b9907
    0012e594  cdb55d52 1a101055 b03f839c 343c1b59
    0012e5a4  553cc3ea a31efcba 695dc2d0 e680dffb
    0012e5b4  bf0194b8 0960a1af 201ff4e3 d5253c21
    0012e5c4  11c0be21 85c00d4c 043ecff4 05bb3e03
    0012e5d4  d22783c6 77ba1c97 3d582536 9210a51f
    0012e5e4  e85a280e 17662139 e2ad85c3 c9f86c5e
    0012e5f4  40c7f4b1 5fdd9565 afe3c638 abe6f453
    

    已经是畸形字符串了,这点很关键,随后esi地址中存放的值(本来应该是一处指针)会交给eax

    [Asm] 纯文本查看 复制代码
    0:000> p
    eax=086ede74 ebx=0012e584 ecx=07005175 edx=07016aa0 esi=0012e584 edi=0012e690
    eip=080011da esp=0012e3d8 ebp=0012e454 iopl=0         nv up ei pl nz na po nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000202
    CoolType+0x11da:
    080011da 8bf8            mov     edi,eax
    0:000> p
    eax=086ede74 ebx=0012e584 ecx=07005175 edx=07016aa0 esi=0012e584 edi=086ede74
    eip=080011dc esp=0012e3d8 ebp=0012e454 iopl=0         nv up ei pl nz na po nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000202
    CoolType+0x11dc:
    080011dc 8b06            mov     eax,dword ptr [esi]  ds:0023:0012e584=4a8a08c6
    0:000> p
    eax=4a8a08c6 ebx=0012e584 ecx=07005175 edx=07016aa0 esi=0012e584 edi=086ede74
    eip=080011de esp=0012e3d8 ebp=0012e454 iopl=0         nv up ei pl nz na po nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000202
    CoolType+0x11de:
    080011de 85c0            test    eax,eax
    0:000> r eax
    eax=4a8a08c6


    可以看到,eax现在已经是一个畸形的地址了,之后会有一个函数调用eax,在上面伪代码中的内容就是

    [C] 纯文本查看 复制代码
      if ( *v2 )
        dword_820E560(*v2);


    这个dword_820E560是BIB.dll中的一个函数

    [Asm] 纯文本查看 复制代码
    0:000> p
    eax=4a8a08c6 ebx=0012e584 ecx=0012e454 edx=07016aa0 esi=0012e584 edi=086ede74
    eip=080011e3 esp=0012e3dc ebp=0012e454 iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206
    CoolType+0x11e3:
    080011e3 50              push    eax
    0:000> p
    eax=4a8a08c6 ebx=0012e584 ecx=0012e454 edx=07016aa0 esi=0012e584 edi=086ede74
    eip=080011e4 esp=0012e3d8 ebp=0012e454 iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206
    CoolType+0x11e4:
    080011e4 ff1560e52008    call    dword ptr [CoolType!CTCleanup+0xcdcc4 (0820e560)]


    这个地方会把eax作为参数入栈,之后再BIB.dll函数中被调用

    [Asm] 纯文本查看 复制代码
    0:000> p
    eax=4a8a08c6 ebx=0012e584 ecx=0012e454 edx=07016aa0 esi=0012e584 edi=086ede74
    eip=080011e4 esp=0012e3d8 ebp=0012e454 iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206
    CoolType+0x11e4:
    080011e4 ff1560e52008    call    dword ptr [CoolType!CTCleanup+0xcdcc4 (0820e560)] ds:0023:0820e560=0700518d
    0:000> t
    eax=4a8a08c6 ebx=0012e584 ecx=0012e454 edx=07016aa0 esi=0012e584 edi=086ede74
    eip=0700518d esp=0012e3d4 ebp=0012e454 iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206
    BIB!BIBInitialize4+0x1820:
    0700518d 8b4c2404        mov     ecx,dword ptr [esp+4] ss:0023:0012e3d8=4a8a08c6
    0:000> p
    eax=4a8a08c6 ebx=0012e584 ecx=4a8a08c6 edx=07016aa0 esi=0012e584 edi=086ede74
    eip=07005191 esp=0012e3d4 ebp=0012e454 iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206
    BIB!BIBInitialize4+0x1824:
    07005191 e91bc2ffff      jmp     BIB+0x13b1 (070013b1)
    0:000> p
    eax=4a8a08c6 ebx=0012e584 ecx=4a8a08c6 edx=07016aa0 esi=0012e584 edi=086ede74
    eip=070013b1 esp=0012e3d4 ebp=0012e454 iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206
    BIB+0x13b1:
    070013b1 ff491c          dec     dword ptr [ecx+1Ch]  ds:0023:4a8a08e2=????????


    最后可以看到,在函数中会引用到这个指针中的值,而此时指针已经被覆盖,导致程序出现异常,到达这步继续只执行,会进入SEH异常处理模块。

    [Asm] 纯文本查看 复制代码
    0:000> p
    (b9c.e04): Access violation - code c0000005 (first chance)
    First chance exceptions are reported before any exception handling.
    This exception may be expected and handled.
    eax=4a8a08c6 ebx=0012e584 ecx=4a8a08c6 edx=07016aa0 esi=0012e584 edi=086ede74
    eip=070013b1 esp=0012e3d4 ebp=0012e454 iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010206
    BIB+0x13b1:
    070013b1 ff491c          dec     dword ptr [ecx+1Ch]  ds:0023:4a8a08e2=????????
    0:000> p
    eax=4a8a08c6 ebx=0012e584 ecx=0012e108 edx=07016aa0 esi=0012e584 edi=086ede74
    eip=7c92e460 esp=0012e0e4 ebp=0012e454 iopl=0         nv up ei pl nz na pe nc
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206
    ntdll!KiUserExceptionDispatcher+0x4:
    7c92e460 8b1c24          mov     ebx,dword ptr [esp]  ss:0023:0012e0e4=0012e0ec


    可以看到,已经调用了KiUserExceptionDispatcher,典型的try catch结构造成的SEH异常处理,之后再通过这种方法覆盖SEH指针,就可以完成利用了。


    评分

    参与人数 1魔法币 +200 收起 理由
    坏蛋 + 200 感谢发布原创作品,i春秋论坛因你更精彩!.

    查看全部评分

    本帖被以下淘专辑推荐:

    坏蛋 管理员 欢迎大家来春秋群找我玩 秦 楚 燕 魏 齐 赵 春秋文阁
    来自 11#
    发表于 2016-8-2 14:31:47
    作者
    帖子链接
    评估分数(0-3分)
    原创性
    标题
    排版
    内容要求
    内容深度
    内容趣味性
    点评
    总分
    奖金
    k0Sh1_
    CVE-2010-2883漏洞分析@nancheal
    评估分数(0-3分)
    2
    2
    2
    3
    3
    1
    大神,膜拜!赶紧来给我们竞赛训练来出题吧,我们都等着呢
    13
    90元

    欢迎加入i春秋QQ群大家庭,每人只能任选加入一个群哦!
    投稿请加QQ:780876774。

    i春秋—楚:713729706
    i春秋—魏:687133802
    网安交流群:820783253
    使用道具 举报 回复
    发表于 2016-7-28 14:33:12
    沙发
    努力过,成败难测;不努力,必败无疑!
    使用道具 举报 回复
    发表于 2016-7-28 14:39:57
    嗯,不错,这很k0shl
    一位特爱收藏Supreme的大哥哥....
    使用道具 举报 回复
    嗯,不错,这很k0shl
    使用道具 举报 回复
    坏蛋 管理员 欢迎大家来春秋群找我玩 秦 楚 燕 魏 齐 赵 春秋文阁
    4#
    发表于 2016-7-28 14:46:38

    嗯,不错,这很k0shl
    欢迎加入i春秋QQ群大家庭,每人只能任选加入一个群哦!
    投稿请加QQ:780876774。

    i春秋—楚:713729706
    i春秋—魏:687133802
    网安交流群:820783253
    使用道具 举报 回复
    发表于 2016-7-28 15:26:29
    k0shl师傅 哈哈 下次 不会拼错了
    使用道具 举报 回复
    发表于 2016-7-28 17:16:36
    k0男神出手了,虽说我看不懂二进制。。。。。
    hello world
    使用道具 举报 回复
    发表于 2016-7-28 18:11:38
    666666666,虽然看不懂
    不求甚解觅慧识,繁华落尽见真淳。
    使用道具 举报 回复
    发表于 2016-7-29 11:18:42
    2进制
    使用道具 举报 回复
    发表于 2016-8-1 00:16:31
    感谢楼主分享纯干货!虽然看不懂
    另外楼主可以介绍一下想学习利用和挖掘二进制漏洞需要先学习哪些基础知识或哪些书籍吗?谢谢
    使用道具 举报 回复
    发表于 2016-8-2 15:27:56
    smurfp 发表于 2016-8-1 00:16
    感谢楼主分享纯干货!虽然看不懂
    另外楼主可以介绍一下想学习利用和挖掘二进制漏洞需要先学习哪些 ...

    汇编 和 C是 最基础的东西,一定要掌握,甚至精通,书籍的话推荐《0day安全:软件漏洞分析技术》,入门必备
    使用道具 举报 回复
    发表于 2016-8-4 00:38:43
    k0Sh1_ 发表于 2016-8-2 15:27
    汇编 和 C是 最基础的东西,一定要掌握,甚至精通,书籍的话推荐《0day安全:软件漏洞分析技术》,入门必 ...

    再次感谢指导!
    使用道具 举报 回复
    k0师傅,好巧。
    使用道具 举报 回复
    谢谢楼主分享,长知识了,CVE-2010-2883可允许黑客利用这个漏洞进行远程攻击,并执行恶意代码。 2011年九月发生的典型APT Lurid攻击就是利用这个漏洞发起的攻击。期待楼主有更多发文喔
    使用道具 举报 回复
    12下一页
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册