Su enfoque debe ser doble:
Técnico:
Compruebe si:
- Varias secuencias de escape (por ejemplo, \ x00,% s, \\, etc.)
- trucos de Unicode (por ejemplo, caracteres de varios bytes que terminan en 0x22 para producir un ")
- Métodos XSS alternativos (por ejemplo,
<img src=0 onerror=alert(1) />
en lugar de <script>alert(1)</script>
)
- Varios nasties (por ejemplo, XSS, inyección de SQL) dentro de las cookies y los encabezados HTTP - ¡a menudo los WAFs se los pierden!
Asesoramiento:
Asegúrese de que el cliente entienda que un WAF es solo un emplasto y no puede reparar una extremidad rota. Si la aplicación se rompe de forma explotable, un WAF puede evitar el ataque o mitigar parte del impacto, pero no hay forma de estar seguro de que será efectiva.
También es un arma de doble filo, ya que la gente a menudo asume que un error que un WAF hace que no se pueda explotar siempre será no explotable, y por lo tanto no necesita ser reparado (al menos con Cualquier prisa). Los navegadores y los lenguajes del lado del servidor HTML / CSS / JavaScript / SQL / XML, etc. evolucionan constantemente, por lo que pueden surgir nuevas técnicas de explotación que hacen que los errores antiguos sean explotables.
Me gustaría resaltar un punto adicional: si la prueba está dirigida a la aplicación web, y no está dirigida específicamente a la solución WAF que han implementado, entonces recomiendo encarecidamente preguntar a cliente para desactivar el WAF en su sitio de ensayo durante la prueba. Dejarlo activo hace que sea mucho más difícil para usted darles una estimación razonable de la postura de seguridad de la aplicación, y eso significa que obtienen menos valor de la prueba. Si están realmente interesados en probar el WAF, podrían hacer un día de prueba adicional luego que compare la capacidad de explotación de los problemas encontrados con y sin que el WAF esté habilitado.