首页
社区
课程
招聘
[原创]缓冲区溢出一例 __security_cookie
发表于: 2013-8-18 01:30 18250

[原创]缓冲区溢出一例 __security_cookie

2013-8-18 01:30
18250
0:000> kb
ChildEBP RetAddr  Args to Child              
00077d58 7c92de7a 7c801e3a ffffffff 00000502 ntdll!KiFastSystemCallRet
00077d5c 7c801e3a ffffffff 00000502 000780b0 ntdll!NtTerminateProcess+0xc
00077d6c 68d89648 ffffffff 00000502 0031c158 kernel32!TerminateProcess+0x20
000780b0 68d7295d 00b84f20 00000000 00000000 DBGHELP!__report_gsfailure+0xf5
0007871c 68d75677 003f0500 003f096c 003f095c DBGHELP!diaLocatePdb+0x758
00078860 68d7b54e 003f0500 003d2a90 003b14a0 DBGHELP!diaOpenPdb+0x239
00078894 68d816f7 0000078c 0000076c 003d2a90 DBGHELP!GetDebugData+0x27d
00078a00 68d81de4 0000078c 003d1b60 68d7c94e DBGHELP!load+0xa5
00078c70 68d7cd2f 0000078c 00079dbc 00079d9c DBGHELP!InternalLoadModule+0xb6
00078cc4 68d7cd86 0000078c 00000000 00079dbc DBGHELP!SymLoadModuleEx+0x30
00078cf0 6d9ac52d 0000078c 00000000 00079dbc DBGHELP!SymLoadModule64+0x23
0007a0d4 6d9ac6e6 0000078c 00000000 0007a97c dbgeng!TypeInfoFound+0x4cc
0007a94c 6d9adbb3 0007a97c 0007aa0c 0007a9ac dbgeng!SymbolTypeDumpNew+0x60
0007a960 6d9adc98 0007a97c 0007aa0c 00000000 dbgeng!FastSymbolTypeDump+0x7e
0007a9e8 6d970b73 0000078c 0031a9f0 0007aa30 dbgeng!SymbolTypeDump+0xb3
0007aa14 6979ca77 00000016 0007aa30 00000030 dbgeng!ExtIoctl+0x3e7
0007aa80 697a7d15 7ffde000 00000000 69793de0 exts!GetShortField+0xb2
0007ab50 697a816a 7ffde000 00000000 00000000 exts!DumpPeb+0x3ea
0007ab80 6d96f09d 00314a94 0007ad2f 0007ad2f exts!peb+0xdb
0007abd0 6d96fa2b 00314a90 00314de8 0007ad2c dbgeng!CallExtension+0x15d
:000> ub DBGHELP!diaLocatePdb+0x758 L5
DBGHELP!diaLocatePdb+0x74d:
68d72952 8b4dfc          mov     ecx,dword ptr [ebp-4]
68d72955 5f              pop     edi
68d72956 5e              pop     esi
68d72957 5b              pop     ebx
68d72958 e8db6b0100      call    DBGHELP!__security_check_cookie (68d89538)
0:000> uf DBGHELP!__security_check_cookie
DBGHELP!__security_check_cookie:
68d89538 3b0dfc25df68    cmp     ecx,dword ptr [DBGHELP!__security_cookie (68df25fc)]  
68d8953e 7509            jne     DBGHELP!__security_check_cookie+0x11 (68d89549)

DBGHELP!__security_check_cookie+0x8:
68d89540 f7c10000ffff    test    ecx,0FFFF0000h
68d89546 7501            jne     DBGHELP!__security_check_cookie+0x11 (68d89549)

DBGHELP!__security_check_cookie+0x10:
68d89548 c3              ret

DBGHELP!__security_check_cookie+0x11:
68d89549 e905000000      jmp     DBGHELP!__report_gsfailure (68d89553)

DBGHELP!__report_gsfailure:
68d89553 8bff            mov     edi,edi
68d89555 55              push    ebp
68d89556 8bec            mov     ebp,esp
68d89558 81ec30030000    sub     esp,330h
68d8955e 57              push    edi
68d8955f 8985d8fdffff    mov     dword ptr [ebp-228h],eax
68d89565 898dd4fdffff    mov     dword ptr [ebp-22Ch],ecx
68d8956b 8995d0fdffff    mov     dword ptr [ebp-230h],edx
68d89571 899dccfdffff    mov     dword ptr [ebp-234h],ebx
68d89577 89b5c8fdffff    mov     dword ptr [ebp-238h],esi
68d8957d 89bdc4fdffff    mov     dword ptr [ebp-23Ch],edi
68d89583 668c95f0fdffff  mov     word ptr [ebp-210h],ss
68d8958a 668c8de4fdffff  mov     word ptr [ebp-21Ch],cs
68d89591 668c9dc0fdffff  mov     word ptr [ebp-240h],ds
68d89598 668c85bcfdffff  mov     word ptr [ebp-244h],es
68d8959f 668ca5b8fdffff  mov     word ptr [ebp-248h],fs
68d895a6 668cadb4fdffff  mov     word ptr [ebp-24Ch],gs
68d895ad 9c              pushfd
68d895ae 8f85e8fdffff    pop     dword ptr [ebp-218h]
68d895b4 c78528fdffff01000100 mov dword ptr [ebp-2D8h],10001h
68d895be 8b4504          mov     eax,dword ptr [ebp+4]
68d895c1 8985e0fdffff    mov     dword ptr [ebp-220h],eax
68d895c7 8d4504          lea     eax,[ebp+4]
68d895ca 8985ecfdffff    mov     dword ptr [ebp-214h],eax
68d895d0 8d4504          lea     eax,[ebp+4]
68d895d3 8b40fc          mov     eax,dword ptr [eax-4]
68d895d6 8985dcfdffff    mov     dword ptr [ebp-224h],eax
68d895dc 6a14            push    14h
68d895de 59              pop     ecx
68d895df 33c0            xor     eax,eax
68d895e1 8dbdd0fcffff    lea     edi,[ebp-330h]
68d895e7 f3ab            rep stos dword ptr es:[edi]
68d895e9 c785d0fcffff090400c0 mov dword ptr [ebp-330h],0C0000409h
68d895f3 8b4504          mov     eax,dword ptr [ebp+4]
68d895f6 8985dcfcffff    mov     dword ptr [ebp-324h],eax
68d895fc 8d85d0fcffff    lea     eax,[ebp-330h]
68d89602 8945f8          mov     dword ptr [ebp-8],eax
68d89605 8d8528fdffff    lea     eax,[ebp-2D8h]
68d8960b 8945fc          mov     dword ptr [ebp-4],eax
68d8960e a1fc25df68      mov     eax,dword ptr [DBGHELP!__security_cookie (68df25fc)]
68d89613 898520fdffff    mov     dword ptr [ebp-2E0h],eax
68d89619 a1f825df68      mov     eax,dword ptr [DBGHELP!__security_cookie_complement (68df25f8)]
68d8961e 898524fdffff    mov     dword ptr [ebp-2DCh],eax
68d89624 6a00            push    0
68d89626 ff156411d668    call    dword ptr [DBGHELP!_imp__SetUnhandledExceptionFilter (68d61164)]
68d8962c 8d45f8          lea     eax,[ebp-8]
68d8962f 50              push    eax
68d89630 ff156011d668    call    dword ptr [DBGHELP!_imp__UnhandledExceptionFilter (68d61160)]
68d89636 6802050000      push    502h
68d8963b ff158010d668    call    dword ptr [DBGHELP!_imp__GetCurrentProcess (68d61080)]
68d89641 50              push    eax
68d89642 ff155c11d668    call    dword ptr [DBGHELP!_imp__TerminateProcess (68d6115c)]
68d89648 5f              pop     edi
68d89649 c9              leave
68d8964a c3              ret
0:000> u DBGHELP!diaLocatePdb
DBGHELP!diaLocatePdb:
68d72205 8bff            mov     edi,edi
68d72207 55              push    ebp
68d72208 8bec            mov     ebp,esp
68d7220a 81ec64060000    sub     esp,664h
68d72210 a1fc25df68      mov     eax,dword ptr [DBGHELP!__security_cookie (68df25fc)]
68d72215 8b4d10          mov     ecx,dword ptr [ebp+10h]
68d72218 8b5520          mov     edx,dword ptr [ebp+20h]
68d7221b 8945fc          mov     dword ptr [ebp-4],eax
0:000> da 003f096c 
003f096c  "MicrosoftWindowsCommon-Controls-"
003f098c  "6.0.2600.6028-comctl32.pdb"
省略。。。。。。
003f096c  "oleaut32.pdb"
eax=003f096c ebx=003f0500 ecx=0031c178 edx=00190000 esi=00000000 edi=0031c158
eip=68d72205 esp=00078720 ebp=00078860 iopl=0         nv up ei pl zr na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
DBGHELP!diaLocatePdb:
68d72205 8bff            mov     edi,edi
0:000> g
003f096c  "MicrosoftWindowsCommon-Controls-"
003f098c  "6.0.2600.6028-comctl32.pdb"
eax=003f096c ebx=003f0500 ecx=0031c178 edx=001a0000 esi=00000000 edi=0031c158
eip=68d72205 esp=00078720 ebp=00078860 iopl=0         nv up ei pl zr na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
DBGHELP!diaLocatePdb:
68d72205 8bff            mov     edi,edi
DBGHELP!diaLocatePdb:
68d72205 8bff            mov     edi,edi
68d72207 55              push    ebp
68d72208 8bec            mov     ebp,esp
68d7220a 81ec64060000    sub     esp,664h
68d72210 a1fc25df68      mov     eax,dword ptr [DBGHELP!__security_cookie (68df25fc)]
68d72215 8b4d10          mov     ecx,dword ptr [ebp+10h]
68d72218 8b5520          mov     edx,dword ptr [ebp+20h]
68d7221b 8945fc          mov     dword ptr [ebp-4],eax ss:0023:00078718=00000001
DBGHELP!EnsureTrailingBackslash:
68d78e3e 8bff            mov     edi,edi
68d78e40 55              push    ebp
68d78e41 8bec            mov     ebp,esp
68d78e43 56              push    esi
68d78e44 8b7508          mov     esi,dword ptr [ebp+8]
68d78e47 56              push    esi
68d78e48 ff15e810d668    call    dword ptr [DBGHELP!_imp__lstrlenA (68d610e8)]
68d78e4e 85c0            test    eax,eax
68d78e50 740f            je      DBGHELP!EnsureTrailingBackslash+0x23 (68d78e61)
68d78e52 03c6            add     eax,esi
68d78e54 8078ff5c        cmp     byte ptr [eax-1],5Ch
68d78e58 7407            je      DBGHELP!EnsureTrailingBackslash+0x23 (68d78e61)
68d78e5a c6005c          mov     byte ptr [eax],5Ch
68d78e5d c6400100        mov     byte ptr [eax+1],0
68d78e61 5e              pop     esi
68d78e62 5d              pop     ebp
68d78e63 c20400          ret     4
0:000> da esi
00078614  "C:\WINDOWS\WinSxS\x86_Microsoft."
00078634  "Windows.Common-Controls_6595b641"
00078654  "44ccf1df_6.0.2600.6028_x-ww_61e6"
00078674  "5202\MicrosoftWindowsCommon-Cont"
00078694  "rols-6.0.2600.6028-comctl32.pdb\"
000786b4  "symbols\dll\MicrosoftWindowsComm"
000786d4  "on-Controls-6.0.2600.6028-comctl"
000786f4  "32.pdb\dll\MicrosoftWindowsCommo"
00078714  "n-C\"
0:000> kb
ChildEBP RetAddr  Args to Child              
000780a0 68d72461 00078614 0031c158 00000000 DBGHELP!EnsureTrailingBackslash+0x23
0007871c 68d75677 003f0500 003f096c 003f095c DBGHELP!diaLocatePdb+0x25c
00078860 68d7b54e 003f0500 003d2a90 003b14a0 DBGHELP!diaOpenPdb+0x239
00078894 68d816f7 0000078c 0000076c 003d2a90 DBGHELP!GetDebugData+0x27d
00078a00 68d81de4 0000078c 003d1b60 68d7c94e DBGHELP!load+0xa5
00078c70 68d7cd2f 0000078c 00079dbc 00079d9c DBGHELP!InternalLoadModule+0xb6
00078cc4 68d7cd86 0000078c 00000000 00079dbc DBGHELP!SymLoadModuleEx+0x30
00078cf0 6d9ac52d 0000078c 00000000 00079dbc DBGHELP!SymLoadModule64+0x23
0007a0d4 6d9ac6e6 0000078c 00000000 0007a97c dbgeng!TypeInfoFound+0x4cc
0007a94c 6d9adbb3 0007a97c 0007aa0c 0007a9ac dbgeng!SymbolTypeDumpNew+0x60
0007a960 6d9adc98 0007a97c 0007aa0c 00000000 dbgeng!FastSymbolTypeDump+0x7e
0007a9e8 6d970b73 0000078c 0031a9f0 0007aa30 dbgeng!SymbolTypeDump+0xb3
0007aa14 6979ca77 00000016 0007aa30 00000030 dbgeng!ExtIoctl+0x3e7
0007aa80 697a7d15 7ffd6000 00000000 69793de0 exts!GetShortField+0xb2
0007ab50 697a816a 7ffd6000 00000000 00000000 exts!DumpPeb+0x3ea
0007ab80 6d96f09d 00314a94 0007ad2f 0007ad2f exts!peb+0xdb
0007abd0 6d96fa2b 00314a90 00314de8 0007ad2c dbgeng!CallExtension+0x15d
0007acfc 6d9718ba 00314a90 00314e68 0007ad2c dbgeng!CallAnyExtension+0xb2
0007bd3c 6d98613f 00314a90 0007dedd 00000000 dbgeng!fnBangCmd+0x5a9
0007de8c 6d987077 00314a90 00000000 00000000 dbgeng!ProcessCommands+0x355
0:000> ub DBGHELP!diaLocatePdb+0x25c L5
DBGHELP!diaLocatePdb+0x24a:
68d7244f 50              push    eax
68d72450 e8a2f5ffff      call    DBGHELP!sstrcpy (68d719f7)
68d72455 8d85f8feffff    lea     eax,[ebp-108h]
68d7245b 50              push    eax
68d7245c e8dd690000      call    DBGHELP!EnsureTrailingBackslash (68d78e3e)

          [培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

          收藏
          免费 5
          支持
          分享
          最新回复 (10)
          雪    币: 219
          活跃值: (788)
          能力值: (RANK:290 )
          在线值:
          发帖
          回帖
          粉丝
          2
          先mark  楼下的排队~ 广告位~
          2013-8-18 02:16
          0
          雪    币: 129
          活跃值: (10)
          能力值: ( LV2,RANK:10 )
          在线值:
          发帖
          回帖
          粉丝
          3
          早起抢位
          11
          2013-8-18 06:25
          0
          雪    币: 306
          活跃值: (10)
          能力值: ( LV2,RANK:10 )
          在线值:
          发帖
          回帖
          粉丝
          4
          windbg牵手入门,多谢
          2013-8-18 07:01
          0
          雪    币: 36
          活跃值: (11)
          能力值: ( LV2,RANK:10 )
          在线值:
          发帖
          回帖
          粉丝
          5
          c7 -> 00
          信息量很大啊
          2013-8-29 22:36
          0
          雪    币: 47147
          活跃值: (20475)
          能力值: (RANK:350 )
          在线值:
          发帖
          回帖
          粉丝
          6
          鼓励一下,慢慢来,能力会一步步地提高
          2013-8-29 22:47
          0
          雪    币: 60
          活跃值: (25)
          能力值: ( LV4,RANK:50 )
          在线值:
          发帖
          回帖
          粉丝
          7
          谢谢坛主老大
          2013-8-29 23:06
          0
          雪    币: 527
          活跃值: (10)
          能力值: ( LV2,RANK:10 )
          在线值:
          发帖
          回帖
          粉丝
          8
          我也是windbg新手!支持楼主
          2013-9-17 15:40
          0
          雪    币: 231
          活跃值: (2631)
          能力值: ( LV5,RANK:60 )
          在线值:
          发帖
          回帖
          粉丝
          9
          我们想到方法是hook,还有没有好的办法呀
          2013-9-17 22:18
          0
          雪    币: 141
          活跃值: (318)
          能力值: ( LV2,RANK:10 )
          在线值:
          发帖
          回帖
          粉丝
          10
          windbg新手来看看。。。。。。顶
          2013-9-20 18:14
          0
          雪    币: 60
          活跃值: (25)
          能力值: ( LV4,RANK:50 )
          在线值:
          发帖
          回帖
          粉丝
          11
          这里主要是缓冲区溢出导致其他数据被修改,最直接的方法就是下读写断点,在通过栈回溯分析就可以很容易看到错误的地方,不知sxpp说的hook是什么hook,具体怎样处理这种问题呢?还望指教一下
          2013-10-7 21:31
          0
          游客
          登录 | 注册 方可回帖
          返回
          //