sábado, agosto 31, 2024
jueves, agosto 01, 2024
Test de uso de GenAI para la detección de bugs de "Connection String Parameter Pollution" (CSPP) usando Ollama
Figura 2: Connection String Attacks en DefCON18
{
string cadenaConexion = $"Server=UK5FCMI;Database=WebApp;User Id={usuario};Password={contraseña};";
using (SqlConnection con = new SqlConnection(cadenaConexion)){using (SqlCommand cmd = new SqlCommand("SELECT * FROM Products")){using (SqlDataAdapter sda = new SqlDataAdapter()){cmd.Connection = con;sda.SelectCommand = cmd;using (DataTable dt = new DataTable())
{sda.Fill(dt);GridViewProductos.DataSource = dt;GridViewProductos.DataBind();}
}}}
El método construye, mediante interpolación de cadenas, una cadena de conexión a una BD tipo SQL Server a partir de los parámetros de usuario y contraseña. Estos parámetros no se validan en ningún momento (ni en el llamador). Con esta cadena de conexión, se lanza una conexión contra la BD y se lee la información de la tabla Products (si el usuario de BD tiene permisos SELECT sobre dicha tabla) para mostrarla en la grid del formulario ASPX. Todos estos ataques se explican en mucho detalle en el libro "Hacking Web Technologies 2ª Edición" de 0xWord.
Una forma de explotarlo sería, por ejemplo, introducir como contraseña la cadena ;Integrated Security=True;, con cualquier usuario. Si se permite la autenticación integrada en SQL Server y el usuario del pool de IIS con que se está ejecutando la aplicación tiene permisos de conexión y consulta a la BD de la aplicación, podemos conseguir acceder a información que no nos corresponde.
El modelo detecta un problema en la cadena de conexión, identificando que los parámetros de usuario y contraseña, que provienen de los campos de un formulario, no se han validado ni comprobado. Detecta que esto puede presentar un problema de SQL Injection, sin embargo, la propuesta de solución NO es acertada. En la cadena de conexión, elimina los parámetros de usuario y contraseña:
string cadenaConexion = $"Server=UK5FCMI;Database=WebApp;";using (SqlConnection con = new SqlConnection(cadenaConexion)){...
Y propone utilizar consultas parametrizadas, de la siguiente manera:
using (SqlCommand cmd = new SqlCommand("SELECT * FROM Products WHERE Usuario = @Usuario AND Contraseña = @Contraseña")){
cmd.Parameters.AddWithValue("@Usuario", usuario);cmd.Parameters.AddWithValue("@Contraseña", contraseña);...
}
Parece que el modelo está intentando encajar la solución de una SQL Injection clásica a este tipo de vulnerabilidad. Una solución podría ser utilizar la clase SqlConnectionStringBuilder, de la que Chema habla en la segunda parte de su serie en el blog.
El modelo CodeGemma 7B también propuso el uso de consultas parametrizadas y además sacar la cadena de conexión a la sección ConnectionStrings del fichero Web.config. Esto tampoco soluciona la vulnerabilidad, aunque se saque la cadena a otro sitio.
Publicado por
Chema Alonso
a las
6:01 a. m.
0
comentarios
Etiquetas: .NET, auditoría, Blind SQL Injection, BSQLi, CSPP, GenAI, hardening, LLM, LLMs, pentest, pentesting, programación .NET, SQL Injection, SQLi
miércoles, mayo 22, 2024
El amo de los datos
Publicado por
Chema Alonso
a las
7:48 a. m.
0
comentarios
Etiquetas: AI, BBDD, Blind SQL Injection, CDO, COBOL, Curiosidades, datos, formación, IA, Lenguaje C, Machine Learning, ML, Oracle, Privacidad, programación, SQL Injection, Universidad
miércoles, diciembre 08, 2021
El comodín del % que leakea los usuarios de tu web por usar un LIKE
![]() |
Figura 2: Libro de Hacking Web Technologies en 0xWord de los autores: Amador Aparicio, Chema Alonso, Pablo González, Enrique Rando y Ricardo Martín. |
Publicado por
Chema Alonso
a las
2:25 p. m.
1 comentarios
Etiquetas: Blind SQL Injection, BSQLi, fuga de información, Hacking, leak, pentest, pentesting, SQL Injection, SQLi
martes, junio 29, 2021
Nuestro nuevo "viejo" libro de Hacking de Aplicaciones Web: SQL Injection 4ª Edición ya disponible
Si fuera preciso explicar qué es un programa a alguien que no conociera nada en absoluto sobre el tema, quizá habría que comenzar indicándole que es "algo muy complejo". Algo que, aunque no lo parezca, hace muchas cosas y se relaciona con muchas otras componentes para realizar su trabajo. Algo que obedece ciegamente y al pie de la letra las instrucciones de su autor. Y algo a lo que no le preocupan las consecuencias de sus actos.
Complejidad. Ésa es la clave.Tanto en el producto como en el proceso de elaboración. Miles de líneas de código. Algoritmos complicados. Entornos de ejecución cambiantes. Presiones para entregar el producto en una determinada fecha. Escasez de medios humanos, materiales y técnicos... Pero esto es sólo el principio: después viene la puesta en producción y su posible exposición al mundo exterior. Un mundo que también es complejo.Visto lo visto, no es de extrañar que los programas contengan fallos, errores, que, bajo determinadas circunstancias los hagan funcionar de forma extraña. Que los conviertan en algo para lo que no estaban diseñados. Aquí es donde entran en juego los posibles atacantes. Pentesters, auditores,... y ciberdelincuentes. Para la organización, mejor que sea uno de los primeros que uno de los últimos. Pero para la aplicación, que no entra en valorar intenciones, no hay diferencia entre ellos. Simplemente, son usuarios.
Publicado por
Chema Alonso
a las
8:33 a. m.
0
comentarios
Etiquetas: 0xWord, Blind SQL Injection, BSQLi, Hacking, libro, Libros, MS SQL Server, MySQL, NoSQL, pentesting, PostgreSQL, SQL Injection, SQL Server, SQLi, SQLite
lunes, abril 26, 2021
Un RFD (Remote File Downloading) "protegido" por ofuscación
![]() |
Figura 5: Libro de Hacking Web Technologies 2ª Edición en 0xWord de Chema Alonso, Enrique Rando, Amador Aparicio, Pablo González y Ricardo Martín |
Publicado por
Chema Alonso
a las
7:01 a. m.
1 comentarios
Etiquetas: Blind SQL Injection, Hacking, LFI, pentest, pentesters, pentesting, PHP, RFI, SQL Injection
sábado, agosto 05, 2017
WordPress: Role-Based Database Connection Strings
Figura 2: Hardening WordPres like a Hacker
![]() |
Figura 4: Cuando sea un usuario loggado se utiliza un usuario privilegiado en MySQL |
Figura 7: WordPress Role-Based Database Connection Strings to MySQL
[Libro] Hardening GNU/Linux
[Paper] WordPress in Paranoid Mode (Parte 1)
[Paper] WordPress in Paranoid Mode (Parte 2)
[Vídeo] Proteger WordPress con Latch
[Vídeo] Proteger WordPress con Latch Cloud TOTP
[Vídeo] MyWordPress in Paranoid Mode (conferencia Chema Alonso)
[Vídeo] MyWordPress in Paranoid Mode (ElevenPaths Talks de Pablo González)
[Vídeo] Ejemplo de uso de Latch en WordPress
[Vídeo] WordPress Demo XSS en WP-UserAgent
[Vídeo] Hardening WordPress like a Hacker
[BlogPost] My WordPress in Paranoid Mode
[BlogPost] Máxima Seguridad en WordPress
[BlogPost] Hackear un WordPress con Network Packet Manipulation
[BlogPost] Fortificar comunicación entre WordPress y MySQL
[BlogPost] WordPress Latch Enforcement
[BlogPost] WordPress: Role-Based Database Connection Strings
[BlogPost] WordPress aún más seguro con Latch Lock After Request
[BlogPost] Fortificar WordPress frente a ataques de fuerza bruta
[BlogPost] Ataques (al corazón) de tu WordPress
[BlogPost] Cómo robarle las contraseñas a los administradores de WordPress
[BlogPost] Agrupar el control de varios WordPress con un solo Latch
[BlogPost] WordPress: Time-Based XSPA (Cross-Site Port Attack)
[BlogPost] Cómo debería ser un WordPress un poco más seguro
[BlogPost] WPHardening: Automatizar fortificación de WordPress
[BlogPost] Protege los borradores de los artículos de tu WordPress
[BlogPost] Registro de cuentas en WordPress públicos
[BlogPost] Riesgos en la ejecución de tareas de Cron
[BlogPost] WordPres: XSS en plugin WP-UserAgent
[BlogPost] Listar los plugins de WordPress en un pentest
[BlogPost] WordPress: SQL Injection en Scarcity Builder Plugin
Publicado por
Chema Alonso
a las
8:20 a. m.
0
comentarios
Etiquetas: Blind SQL Injection, BSQLi, Hacking, hardening, MySQL, pentesting, SQL Injection, SQLi, Wordpress
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
-
Circula por la red un truco que llegó a mí de casualidad , donde se explica cómo conseguir ver más de una vez - e incluso capturar - las fot...
-
Ayer publiqué un post que tiene ver con las opciones de privacidad de Facebook asociadas a los correos electrónicos , y mañana sacaré la se...
-
Las técnicas de OSINT son aquellas que te permiten buscar información en fuentes abiertas. O lo que es lo mismo, sacar datos de plataformas...
-
Hoy os traigo una " microhistoria " peculiar que tiene que ver con la historia de la tecnología. Es una historia de esas que empie...
-
Hace mucho tiempo, cuando se creo el " Modo Incógnito " de los navegadores, que algunos llamaron también " Modo Privado ...
-
Dentro de una investigación de una fotografía, tal vez te interese saber dónde está hecha, o a qué hora se hizo. Cualquiera de esas dos info...
-
Conseguir la contraseña de Facebook de una cuenta es una de las peticiones más usuales que se suele recibir de la gente que busca solucion...
-
Una de las opciones que se puede configurar a nivel de hipervínculo, de documento o de servidor web en los navegadores es el funcionamiento...
-
El SEPE (Servicio Público de Empleo Estatal) ha sido víctima de la archiconocida crisis del COVID-19 enlazando la avalancha de expedientes...
-
La app de mensajería instantánea Telegram tiene muchos fans por el atributo de seguridad que ha querido potenciar desde el principio, per...