Haz uso de fallos en el código de programación de los sites, para incluir enlaces imposibles
Una web no es otra cosa que en un conjunto de líneas de código con sus estilos e imágenes. Cuando haces una publicación en un foro, comentario o interactúas con un site para aportar contenido a este, tu aportación pasa por una serie de validaciones que no siempre cumplen todas las casuísticas posibles.
Os ponemos un ejemplo. Imaginaros que publicáis un comentario en un blog que por defecto convierte el enlace en Nofollow. Debemos entender: ¿Cómo está detectando que eso es un enlace? y ¿Cómo convierte ese enlace en nofollow?
Aquí tenemos diferentes posibilidades, por ejemplo imaginemos que:
Busca en el código la cadena: <a href
Ahí entiende que es un enlace y entonces a esa estructura le añade rel=“nofollow”
Ahora bien, y si le cambiamos la casuística, por ejemplo:
<A href
<a HREF <a href=‘ ….
Si no están teniendo en cuenta mayúsculas y minúsculas o si buscan una cadena con dobles comillas esto puede no cumplir su validación y colarse el enlace.
Pero… ¿y si no nos deja tocar el código del enlace?
Ten en cuenta que hecha la ley hecha la trampa y en muchas ocasiones podemos hacer triquiñuelas para saltarnos las validaciones, aquí os dejo dos:
1º Haz uso del inspeccionador de elementos del navegador: En la gran mayoría de los navegadores por no decir en todos, hay una opción de “Opciones de desarrolladores” donde nos permite sacar un panel para ver el código de la web. Además de verlo podemos interactuar con él y con ello modificarlo antes por ejemplo de enviar una información para su validación.
Con el uso de esta herramienta podemos hacer lo siguiente:
Primero redactamos el comentario o publicación, añadiendo un enlace. Después vamos al inspeccionador de elementos, hacemos click en el icono de ratón para poder seleccionar un elemento específico dentro de la página web y pinchamos sobre el enlace que hemos creado anteriormente. Ahora podemos ya editar el código del enlace.
Lo siguiente que haremos es incluir en el código del enlace una instrucción rel de la siguiente forma:
<a href=“miurl” rel=“follow”>mi texto</a>
Nutricion enteral y parenteral
El atributo rel=“follow” como muchos estaréis pensando no existe. ¿Entonces para que lo ponemos? Pues básicamente para que cuando se produzca la validación del código se procese que ya existe un atributo REL y entonces no se incluya rel=“nofollow” como proceso normal de cambio de enlace Dofollow a Nofollow.
2º Hacer copia pega desde un texto en word: Esta podría ser una versión simplificada del punto anterior. Si hacemos nuestra publicación en un documento de word e incluimos ahí directamente los enlaces, después podemos copiar y pegar ese texto directamente en la casilla de inclusión de texto que nos permita la web.
Al ser un texto enriquecido mantendrá los enlaces que hemos generado y en algunos casos nos dará un bonito enlace dofollow de regalo. Este truco es muy útil en textarea donde no se permita la inclusión de enlace porque no tengan esta opción en las herramientas de publicación o donde poniendo directamente el código no se procese como tal.
Y, oye, que hay más estrategias para conseguir enlaces y que creatividad al poder. ¡No subestimemos el poder de un buen enlace ni tampoco la originalidad a la hora de conseguirlo!
1. Identificación de Fallos en el Código
a. Auditorías de Seguridad
- Revisión de Código: Realiza revisiones de código regulares donde los desarrolladores inspeccionan el código en busca de errores o vulnerabilidades.
- Auditorías Externas: Contrata empresas de seguridad para realizar auditorías de seguridad independientes.
b. Herramientas de Análisis de Seguridad
- Static Application Security Testing (SAST): Herramientas como SonarQube, Checkmarx o Fortify analizan el código fuente sin ejecutarlo para encontrar vulnerabilidades.
- Dynamic Application Security Testing (DAST): Herramientas como OWASP ZAP o Burp Suite analizan la aplicación en tiempo de ejecución para encontrar fallos en el comportamiento de la aplicación.
c. Pentesting (Pruebas de Penetración)
- Pentesting Interno: Realiza pruebas de penetración simulando ataques para identificar vulnerabilidades.
- Bug Bounty Programs: Implementa programas de recompensas por bugs donde investigadores de seguridad pueden reportar vulnerabilidades a cambio de recompensas.
2. Tipos Comunes de Fallos en el Código
a. Inyección de Código
- SQL Injection: Ocurre cuando los datos de entrada del usuario no se validan correctamente y permiten la ejecución de comandos SQL maliciosos.
- Command Injection: Sucede cuando un atacante puede ejecutar comandos del sistema a través de una aplicación vulnerable.
b. Fallos de Autenticación y Autorización
- Broken Authentication: Errores que permiten a los atacantes eludir los mecanismos de autenticación.
- Broken Access Control: Vulnerabilidades que permiten a los atacantes acceder a recursos o datos sin la autorización adecuada.
c. Exposición de Datos Sensibles
- Data Exposure: Errores que permiten a los atacantes acceder a información sensible como datos personales, financieros o de autenticación.
d. Cross-Site Scripting (XSS)
- Stored XSS: Ocurre cuando los datos maliciosos se almacenan en el servidor y se envían a los usuarios sin ser validados.
- Reflected XSS: Sucede cuando los datos maliciosos son enviados a una aplicación y reflejados inmediatamente sin validación.
3. Solución de Fallos en el Código
a. Mejores Prácticas de Codificación
- Validación de Entrada: Siempre valida y sanitiza los datos de entrada del usuario.
- Uso de Parámetros: Utiliza consultas parametrizadas para prevenir inyecciones SQL.
- Principio de Menor Privilegio: Limita los permisos y el acceso a los recursos y funciones del sistema.
b. Implementación de Seguridad en el Desarrollo
- Secure SDLC: Integra la seguridad en todas las fases del ciclo de vida del desarrollo de software.
- Capacitación de Desarrolladores: Forma a los desarrolladores en prácticas de codificación segura y concienciación sobre seguridad.
c. Actualizaciones y Parches
- Actualizaciones Regulares: Mantén el software, bibliotecas y dependencias actualizadas para proteger contra vulnerabilidades conocidas.
- Monitoreo y Respuesta: Implementa sistemas de monitoreo para detectar y responder rápidamente a posibles incidentes de seguridad.
4. Herramientas para la Detección y Solución de Fallos
a. Herramientas de SAST
- SonarQube: Plataforma de análisis de código estático que detecta vulnerabilidades y problemas de calidad.
- Checkmarx: Solución de seguridad que analiza el código fuente para detectar vulnerabilidades.
b. Herramientas de DAST
- OWASP ZAP: Herramienta gratuita para encontrar vulnerabilidades en aplicaciones web.
- Burp Suite: Conjunto de herramientas para realizar pruebas de seguridad en aplicaciones web.
c. Plataformas de Gestión de Vulnerabilidades
- Nessus: Herramienta de escaneo de vulnerabilidades que ayuda a identificar y gestionar riesgos de seguridad.
- Qualys: Plataforma de gestión de vulnerabilidades y cumplimiento que ofrece escaneos y análisis de seguridad.