从文件中取污染数据然后通过movsx来操作很容易出现问题,如果不加判断的话,好多文件类型的漏洞
都是这么导致的,例如excel pdf .. 而movzx威胁就小很多,但是同样不容易忽视,例如取污染数据
movzx eax,[buffer+xx]
mov eax,XX_Arrary[eax*4]
call eax.....
作为数组索引要是不加判断也很容易导致问题,若xx_arrary没有0xffff那么大 就会悲剧.....
看以前出的SMBV2漏洞就是这样的:
PAGE:0002E2CB movzx eax, word ptr [ecx+8] PAGE:0002E2CF mov eax, _ValidateRoutines[eax*4] PAGE:0002E2D6 push ebx PAGE:0002E2D7 test eax, eax PAGE:0002E2D9 jnz short loc_2E2E2 PAGE:0002E2DB call _Smb2ValidateNotImplemented@4 ; Smb2ValidateNotImplemented(x) PAGE:0002E2E0 jmp short loc_2E2E4 PAGE:0002E2E2 ; --------------------------------------------------------------------------- PAGE:0002E2E2 PAGE:0002E2E2 loc_2E2E2: ; CODE XREF: Smb2ValidateProviderCallback(x)+69Ej PAGE:0002E2E2 call eax ; Smb2ValidateNegotiate(x) ; Smb2ValidateNegotiate(x)