Un investigador informó recientemente un problema en un sitio sobre el uso de secuencias de comandos en un sitio de terceros para descubrir si un usuario es un administrador.
Aquí está el escenario:
- El sitio principal es target.example
- El sitio del atacante es el mal.ejemplo
- target.example tiene SSL y HSTS y redirige todo el tráfico http a https usando una redirección 301
- la cookie de sesión en target.example es httponly y "segura"
- evil.example tiene javascript que carga javascript src desde target.example / admin / utility y el uso de éxito / error al cargar esa página html puede ejecutar javascript de ataque
Ejemplo de javascript que estaría en evil.example:
<script type="text/javascript"
src="https://www.target.example/admin/utility"onload="alert('Hello, Admin')"
onerror="alert('Ok, you are not the admin')"
async="async"
></script>
Esta técnica aprovecha el hecho de que el sitio devuelve un 403 en lugar de un 200 en las páginas de administración. La sugerencia fue devolver un error 200 en las páginas de administración para los usuarios que han cerrado la sesión en lugar de devolver el error 403.
El riesgo presentado al devolver un 403 o 404 es que el atacante solo enviará ataques a los usuarios que saben que son administradores. Esto permitiría al atacante tomar una huella dactilar del sitio o intentar explotarlo y el único "ruido" en los registros sería mayor que el número normal de errores 403 en el registro de errores, lo que podría no generar sospechas tanto como otros tipos de actividad. / p>
La pregunta: ¿En realidad agrega beneficios de seguridad práctica para devolver un 200? ¿Es esto algo que hacen muchos sitios?