En el libro "El ciclo de vida del desarrollo de la seguridad", Michael Howard escribió:
Tomemos como ejemplo el error de codificación en Windows RPC / DCOM que el gusano Blaster aprovechó (Microsoft 2003). El código defectuoso se ve así:
HRESULT GetMachineName(WCHAR *pwszPath, WCHAR wszMachineName[N + 1]) { LPWSTR pwszServerName = wszMachineName; while (*pwszPath != L'\' ) *pwszServerName++ = *pwszPath++; ... }
En este código, el atacante controla el argumento pwszPath para que ella puede desbordar el búfer wszMachineName. Este error de código no fue elegido por cualquier herramienta disponible dentro de Microsoft ...
He implementado muchos códigos como el ejemplo anterior anteriormente, pero no puedo encontrar ningún error y, después de probar el código anterior, todavía no puedo encontrar una manera de desbordar wszMachineName
, pero como mencionó, este código es vulnerable a desbordamiento de búfer.
Entonces, mi pregunta es: ¿Cómo puede un atacante aprovechar el código anterior, como lo hizo el gusano blaster? Pasé una gran cantidad de 'AAAA's para programar pero, pero continúa sin fallas ni problemas.