Inurl php número de capítulo inicio de sesión. Instrucciones para usar jSQL Inyección, una herramienta multifuncional para encontrar y explotar inyecciones SQL en Kali Linux. Hashes de fuerza bruta usando inyección jSQL
Cualquier búsqueda de vulnerabilidades en recursos web comienza con el reconocimiento y la recopilación de información.
La inteligencia puede ser activa (fuerza bruta de archivos y directorios del sitio, ejecutar escáneres de vulnerabilidades, navegar manualmente por el sitio) o pasiva (buscar información en diferentes motores de búsqueda). A veces sucede que una vulnerabilidad se conoce incluso antes de que se abra la primera página del sitio.
¿Cómo es esto posible?
Los robots de búsqueda, que deambulan constantemente por Internet, además de información útil para el usuario medio, a menudo registran elementos que los atacantes pueden utilizar para atacar un recurso web. Por ejemplo, errores de script y archivos con información confidencial (desde archivos de configuración y registros hasta archivos con datos de autenticación y copias de seguridad de bases de datos).
Desde el punto de vista de un robot de búsqueda, un mensaje de error al ejecutar una consulta SQL es texto plano, inseparable, por ejemplo, de la descripción de los productos en la página. Si de repente un robot de búsqueda encuentra un archivo con la extensión .sql, que por alguna razón terminó en la carpeta de trabajo del sitio, entonces será percibido como parte del contenido del sitio y también será indexado (incluidas, posiblemente, las contraseñas). especificado en el mismo).
Esta información se puede encontrar conociendo palabras clave sólidas, a menudo únicas, que ayuden a separar las “páginas vulnerables” de las páginas que no contienen vulnerabilidades.
En exploit-db.com existe una enorme base de datos de consultas especiales que utilizan palabras clave (las llamadas idiotas) y se conoce como Google Hack Database.
¿Por qué google?
Los idiotas se dirigen principalmente a Google por dos razones:
− la sintaxis más flexible de palabras clave (que se muestran en el Cuadro 1) y caracteres especiales (que se muestran en el Cuadro 2);
− el índice de Google es aún más completo que el de otros motores de búsqueda;
Tabla 1 - Principales palabras clave de Google
Palabra clave |
Significado |
Ejemplo |
sitio |
Busque solo en el sitio especificado. Sólo tiene en cuenta la URL |
site:somesite.ru: encontrará todas las páginas de un dominio y subdominios determinados |
URL |
Búsqueda por palabras presentes en la uri. A diferencia del cl. palabras "sitio", busca coincidencias después del nombre del sitio |
inurl:news: busca todas las páginas donde aparece la palabra dada en el uri |
en el texto |
Buscar en el cuerpo de la página. |
intext:”atascos” - completamente similar a la solicitud habitual de “atascos” |
título |
Busca en el título de la página. Texto entre etiquetas |
intitle:”index of” - encontrará todas las páginas con listados de directorios |
extensión |
Buscar páginas con una extensión específica |
ext:pdf - busca todos los archivos pdf |
Tipo de archivo |
Actualmente, completamente similar a la clase. la palabra "ext" |
tipo de archivo:pdf - similar |
relacionado |
Buscar sitios con temas similares |
relacionado:google.ru - mostrará sus análogos |
enlace |
Busque sitios que enlacen a esto. |
link:somesite.ru: encontrará todos los sitios que tengan un enlace a este |
definir |
Mostrar definición de palabra |
define:0day - definición del término |
cache |
Mostrar el contenido de la página en caché (si está presente) |
cache:google.com - abrirá una página almacenada en caché |
Tabla 2 - Caracteres especiales para consultas de Google
Símbolo |
Significado |
Ejemplo |
“ |
Frase exacta |
intitle:“Página de configuración del enrutador RouterOS” - buscar enrutadores |
* |
cualquier texto |
inurl: “bitrix*mcart” - busque sitios en bitrix con un módulo mcart vulnerable |
. |
cualquier personaje |
Index.of - similar al índice de solicitud |
- |
eliminar una palabra |
error -advertencia: muestra todas las páginas que tienen un error pero ninguna advertencia |
.. |
Rango |
cve 2006..2016: muestra las vulnerabilidades por año a partir de 2006 |
| |
"o" lógico |
Linux | ventanas: muestra páginas donde aparece la primera o la segunda palabra |
Vale la pena entender que cualquier consulta a un motor de búsqueda es una búsqueda únicamente por palabras.
De nada sirve buscar metacaracteres en la página (comillas, paréntesis, signos de puntuación, etc.). Incluso una búsqueda de la frase exacta especificada entre comillas es una búsqueda de palabras, seguida de una búsqueda de una coincidencia exacta en los resultados.
Todos los idiotas de Google Hack Database se dividen lógicamente en 14 categorías y se presentan en la Tabla 3.
Tabla 3: Categorías de bases de datos de pirateo de Google
Categoría |
¿Qué te permite encontrar? |
Ejemplo |
Puntos de apoyo |
Shells web, administradores de archivos públicos |
Encuentre todos los sitios pirateados donde se cargan los webshells enumerados: (intitle:"phpshell" O intitle:"c99shell" O intitle:"r57shell" O intitle:"PHP Shell" O intitle:"phpRemoteView") `rwx` "uname" |
Archivos que contienen nombres de usuario |
Archivos de registro, archivos de configuración, registros, archivos que contienen el historial de comandos ingresados |
Encuentre todos los archivos de registro que contienen información de la cuenta: tipo de archivo:reg reg +intext:“administrador de cuentas de Internet” |
Directorios sensibles |
Directorios con información diversa (documentos personales, configuraciones de vpn, repositorios ocultos, etc.) |
Encuentre todos los listados de directorios que contienen archivos relacionados con VPN: "Config" intitle:"Índice de" intext:vpn Sitios que contienen repositorios de git: (intext:"índice de /.git") ("directorio principal") |
Detección de servidor web |
Versión y otra información sobre el servidor web. |
Encuentre las consolas administrativas del servidor JBoss: inurl:"/web-console/" intitle:"Consola de administración" |
Archivos vulnerables |
Scripts que contienen vulnerabilidades conocidas |
Encuentre sitios que utilicen un script que le permita cargar un archivo arbitrario desde el servidor: allinurl:forcedownload.php?file= |
Servidores vulnerables |
Scripts de instalación, shells web, consolas administrativas abiertas, etc. |
Busque consolas PHPMyAdmin abiertas que se ejecuten como root: intitle:phpMyAdmin "Bienvenido a phpMyAdmin ***" "ejecutándose en * como root@*" |
Error de mensajes |
Varios errores y advertencias a menudo revelan información importante, desde la versión del CMS hasta las contraseñas. |
Sitios que presentan errores al ejecutar consultas SQL a la base de datos: "Advertencia: mysql_query()" "consulta no válida" |
Archivos que contienen información jugosa |
Certificados, copias de seguridad, correos electrónicos, registros, scripts SQL, etc. |
Encuentre scripts SQL de inicialización: tipo de archivo: sql e "insertar en" -sitio:github.com |
Archivos que contienen contraseñas |
Cualquier cosa que pueda contener contraseñas: registros, scripts SQL, etc. |
Registros que mencionan contraseñas: Tipo de archivo:registroen el texto:contraseña |pase |pw scripts SQL que contienen contraseñas: extensión:SQLen el texto:nombre de usuarioen el texto:contraseña |
Información confidencial sobre compras en línea |
Información relacionada con compras online |
Buscar códigos PIN: dcid=bn=alfilercódigo= |
Datos de red o vulnerabilidad |
Información que no está directamente relacionada con el recurso web, pero que afecta a la red u otros servicios no web. |
Encuentre scripts de configuración automática de proxy que contengan información sobre la red interna: inurl:proxy | inurl:wpad ext:pac | ext:dat encontrarproxyforurl |
Páginas que contienen portales de inicio de sesión |
Páginas que contienen formularios de inicio de sesión |
paginas web de saplogon: texto:"2016 SAP AG. Reservados todos los derechos." intitle:"Iniciar sesión" |
Varios dispositivos en línea |
Impresoras, routers, sistemas de monitorización, etc. |
Busque el panel de configuración de la impresora: título:"caballos de fuerzachorro láser"URL interna:SSI/Autenticación/colocar_configuración_información del dispositivo.htm |
Avisos y vulnerabilidades |
Sitios web en versiones vulnerables de CMS |
Encuentre complementos vulnerables a través de los cuales puede cargar un archivo arbitrario al servidor: inurl:fckeditor -intext:"ConfigIsEnabled = False" intext:ConfigIsEnabled |
Los idiotas suelen centrarse más en realizar búsquedas en todos los sitios de Internet. Pero nada le impide limitar el alcance de la búsqueda en cualquier sitio o sitios.
Cada consulta de Google se puede centrar en un sitio específico agregando la palabra clave "sitio:algúnsitio.com" a la consulta. Esta palabra clave se puede agregar a cualquier idiota.
Automatizando la búsqueda de vulnerabilidades
Así nació la idea de escribir una utilidad sencilla que automatice la búsqueda de vulnerabilidades mediante un motor de búsqueda (google) y se base en la base de datos de hacks de Google.
La utilidad es un script escrito en nodejs usando phantomjs. Para ser precisos, el guión lo interpreta el propio phantomjs.
Phantomjs es un navegador web completo sin GUI, controlado por código js y con una API conveniente.
La utilidad recibió un nombre bastante comprensible: idiotas. Al ejecutarlo en la línea de comando (sin opciones), obtenemos una breve ayuda con varios ejemplos de uso:
Figura 1 - Lista de las principales opciones de idiotas
La sintaxis general de la utilidad es: dork “comando” “lista de opciones”.
Una descripción detallada de todas las opciones se presenta en la Tabla 4.
Tabla 4 - Sintaxis de Dorks
Equipo |
Opción |
Descripción |
ghdb |
-l |
Imprima una lista numerada de categorías tontas Base de datos de pirateo de Google |
-c “número o nombre de categoría” |
Cargue puertas de la categoría especificada por número o nombre. |
|
-q "frase" |
Descargar idiotas encontrados por solicitud |
|
-o "archivo" |
Guarde el resultado en un archivo (solo con las opciones -c|-q) |
|
Google |
-d "tonto" |
Establecer un idiota arbitrario (la opción se puede usar muchas veces, se permite la combinación con la opción -D) |
-D "archivo" |
Usa idiotas del archivo |
|
-s "sitio" |
Establecer sitio (la opción se puede usar muchas veces, se permite la combinación con la opción -S) |
|
-S "archivo" |
Utilice sitios de un archivo (se buscarán idiotas para cada sitio de forma independiente) |
|
-f "filtro" |
Establecer palabras clave adicionales (se agregarán a cada idiota) |
|
-t "número de ms" |
Intervalo entre solicitudes a google |
|
-T "número de ms" |
Tiempo de espera si se encuentra un captcha |
|
-o "archivo" |
Guarde el resultado en un archivo (solo se guardarán aquellas pistas para las que se encontró algo) |
Usando el comando ghdb, puede obtener todos los idiotas de exploit-db mediante una solicitud arbitraria o especificar la categoría completa. Si especifica la categoría 0, se descargará toda la base de datos (alrededor de 4,5 mil idiotas).
La lista de categorías actualmente disponibles se presenta en la Figura 2.
Figura 2: Lista de categorías idiotas de GHDB disponibles
El equipo de Google sustituirá a cada idiota en el motor de búsqueda de Google y analizará el resultado en busca de coincidencias. Las rutas donde se encontró algo se guardarán en un archivo.
La utilidad admite diferentes modos de búsqueda:
1 idiota y 1 sitio;
1 idiota y muchos sitios;
1 sitio y muchos idiotas;
muchos sitios y muchos idiotas;
La lista de idiotas y sitios se puede especificar mediante un argumento o mediante un archivo.
demostracion de trabajo
Intentemos buscar vulnerabilidades usando el ejemplo de búsqueda de mensajes de error. Por comando: dorks ghdb –c 7 –o errores.dorks todos los dorks conocidos de la categoría “Mensajes de error” se cargarán como se muestra en la Figura 3.
Figura 3: Cargando todos los idiotas conocidos de la categoría "Mensajes de error"
Los Dorks se descargan y guardan en un archivo. Ahora solo queda “colocarlos” en algún sitio (ver Figura 4).
Figura 4 – Búsqueda de vulnerabilidades del sitio de interés en el caché de Google
Después de un tiempo, se descubren varias páginas que contienen errores en el sitio en estudio (ver Figura 5).
Figura 5 – Mensajes de error encontrados
Como resultado, en el archivo result.txt obtenemos una lista completa de tonterías que provocan el error.
La Figura 6 muestra el resultado de la búsqueda de errores del sitio.
Figura 6 – Resultado de la búsqueda de errores
En el caché de este idiota, se muestra un seguimiento completo, que revela las rutas absolutas de los scripts, el sistema de gestión de contenidos del sitio y el tipo de base de datos (consulte la Figura 7).
Figura 7 – divulgación de información sobre el diseño del sitio
Sin embargo, vale la pena considerar que no todos los idiotas de GHDB dan resultados reales. Además, es posible que Google no encuentre una coincidencia exacta y muestre un resultado similar.
En este caso, es más prudente utilizar su lista personal de idiotas. Por ejemplo, siempre vale la pena buscar archivos con extensiones "inusuales", cuyos ejemplos se muestran en la Figura 8.
Figura 8: Lista de extensiones de archivo que no son típicas de un recurso web normal
Como resultado, con el comando dorks google –D extensions.txt –f bank, desde la primera solicitud Google comienza a devolver sitios con extensiones de archivo "inusuales" (ver Figura 9).
Figura 9: Búsqueda de tipos de archivos "malos" en sitios web bancarios
Vale la pena tener en cuenta que Google no acepta consultas de más de 32 palabras.
Usando el comando idiotas google –d intext:”error|advertencia|aviso|sintaxis” –f universidad
Puede buscar errores del intérprete de PHP en sitios web educativos (consulte la Figura 10).
Figura 10 – Encontrar errores de tiempo de ejecución de PHP
A veces no conviene utilizar una o dos categorías de idiotas.
Por ejemplo, si se sabe que el sitio se ejecuta en el motor Wordpress, entonces necesitamos módulos específicos de WordPress. En este caso conviene utilizar la búsqueda en Google Hack Database. El comando dorks ghdb –q wordpress –o wordpress_dorks.txt descargará todos los dorks de Wordpress, como se muestra en la Figura 11:
Figura 11 – Búsqueda de Dorks relacionados con Wordpress
Volvamos a los bancos nuevamente y usemos el comando dorks google –D wordpress_dords.txt –f bank para intentar encontrar algo interesante relacionado con Wordpress (ver Figura 12).
Figura 12 – Búsqueda de vulnerabilidades de Wordpress
Vale la pena señalar que la búsqueda en Google Hack Database no acepta palabras de menos de 4 caracteres. Por ejemplo, si no se conoce el CMS del sitio, pero sí el idioma: PHP. En este caso, puede filtrar lo que necesita manualmente usando la tubería y la utilidad de búsqueda del sistema dorks –c all | findstr /I php > php_dorks.txt (ver Figura 13):
Figura 13 – Buscar todos los idiotas donde se menciona PHP
La búsqueda de vulnerabilidades o alguna información sensible en un motor de búsqueda sólo debe realizarse si existe un índice significativo en este sitio. Por ejemplo, si un sitio tiene entre 10 y 15 páginas indexadas, entonces es una estupidez buscar algo de esta manera. Verificar el tamaño del índice es fácil: simplemente ingrese "sitio:algúnsitio.com" en la barra de búsqueda de Google. En la Figura 14 se muestra un ejemplo de un sitio con un índice insuficiente.
Figura 14 – Comprobación del tamaño del índice del sitio
Ahora sobre lo desagradable... De vez en cuando Google puede solicitar un captcha (no hay nada que puedas hacer al respecto), tendrás que ingresarlo. Por ejemplo, al buscar en la categoría "Mensajes de error" (90 idiotas), el captcha apareció solo una vez.
Vale la pena agregar que phantomjs también admite trabajar a través de un proxy, tanto a través de http como de la interfaz de calcetines. Para habilitar el modo proxy, debe descomentar la línea correspondiente en dorks.bat o dorks.sh.
La herramienta está disponible como código fuente.
Ejecute el archivo descargado haciendo doble clic (es necesario tener una máquina virtual).
3. Anonimato al comprobar un sitio en busca de inyección SQL
Configurando Tor y Privoxy en Kali Linux
[Sección en desarrollo]
Configurar Tor y Privoxy en Windows
[Sección en desarrollo]
Configuración de proxy en inyección jSQL
[Sección en desarrollo]
4. Verificar el sitio en busca de inyección SQL con inyección jSQL
Trabajar con el programa es extremadamente sencillo. Simplemente ingrese la dirección del sitio web y presione ENTER.
La siguiente captura de pantalla muestra que el sitio es vulnerable a tres tipos de inyecciones SQL (la información sobre ellas se indica en la esquina inferior derecha). Al hacer clic en los nombres de las inyecciones, puede cambiar el método utilizado:
Además, ya se nos han mostrado las bases de datos existentes.
Puede ver el contenido de cada tabla:
Normalmente, lo más interesante de las tablas son las credenciales de administrador.
Si tiene suerte y encuentra los datos del administrador, es demasiado pronto para alegrarse. Aún necesitas encontrar el panel de administración donde ingresar estos datos.
5. Busque paneles de administración con inyección jSQL
Para hacer esto, vaya a la siguiente pestaña. Aquí somos recibidos con una lista de posibles direcciones. Puede seleccionar una o más páginas para verificar:
La conveniencia radica en el hecho de que no es necesario utilizar otros programas.
Desafortunadamente, no hay muchos programadores descuidados que almacenen contraseñas en texto claro. Muy a menudo en la línea de contraseña vemos algo como
8743b52063cd84097a65d1633f5c74f5
Esto es un hachís. Puedes descifrarlo usando fuerza bruta. Y... la inyección jSQL tiene una fuerza bruta incorporada.
6. Hashes de fuerza bruta mediante inyección jSQL
La indudable comodidad es que no es necesario buscar otros programas. Hay soporte para muchos de los hashes más populares.
Esta no es la mejor opción. Para convertirse en un gurú en la decodificación de hashes, se recomienda el Libro "" en ruso.
Pero, por supuesto, cuando no hay otro programa a mano o no hay tiempo para estudiar, JSQL Inyección con su función de fuerza bruta incorporada te resultará muy útil.
Hay configuraciones: puede establecer qué caracteres se incluyen en la contraseña y el rango de longitud de la contraseña.
7. Operaciones de archivos después de detectar inyecciones SQL
Además de las operaciones con bases de datos (leerlas y modificarlas), si se detectan inyecciones de SQL, se pueden realizar las siguientes operaciones con archivos:
- leer archivos en el servidor
- subir nuevos archivos al servidor
- cargando shells al servidor
¡Y todo esto se implementa en jSQL Inyección!
Existen restricciones: el servidor SQL debe tener privilegios de archivo. Los administradores de sistemas inteligentes los tienen deshabilitados y no podrán acceder al sistema de archivos.
La presencia de privilegios de archivos es bastante sencilla de comprobar. Vaya a una de las pestañas (leer archivos, crear un shell, cargar un archivo nuevo) e intente realizar una de las operaciones especificadas.
Otra nota muy importante: necesitamos saber la ruta absoluta exacta al archivo con el que trabajaremos; de lo contrario, nada funcionará.
Mire la siguiente captura de pantalla:
Ante cualquier intento de operar sobre un archivo, recibimos la siguiente respuesta: Sin privilegio de ARCHIVO(sin privilegios de archivo). Y aquí no se puede hacer nada.
Si en cambio tienes otro error:
Problema al escribir en [nombre_directorio]
Esto significa que especificó incorrectamente la ruta absoluta donde desea escribir el archivo.
Para adivinar una ruta absoluta, al menos necesita conocer el sistema operativo en el que se ejecuta el servidor. Para hacer esto, cambie a la pestaña Red.
Tal registro (línea Win64) nos da motivos para suponer que estamos tratando con el sistema operativo Windows:
Keep-Alive: tiempo de espera = 5, máx = 99 Servidor: Apache/2.4.17 (Win64) PHP/7.0.0RC6 Conexión: Keep-Alive Método: HTTP/1.1 200 OK Longitud del contenido: 353 Fecha: viernes, 11 de diciembre de 2015 11:48:31 GMT X-Desarrollado por: PHP/7.0.0RC6 Tipo de contenido: texto/html; juego de caracteres = UTF-8
Aquí tenemos algo de Unix (*BSD, Linux):
Codificación de transferencia: fragmentada Fecha: viernes, 11 de diciembre de 2015 11:57:02 GMT Método: HTTP/1.1 200 OK Mantener vivo: tiempo de espera = 3, máximo = 100 Conexión: mantener vivo Tipo de contenido: texto/html X- Desarrollado por: PHP/5.3.29 Servidor: Apache/2.2.31 (Unix)
Y aquí tenemos CentOS:
Método: HTTP/1.1 200 OK Vence: jueves, 19 de noviembre de 1981 08:52:00 GMT Configurar cookie: PHPSESSID=9p60gtunrv7g41iurr814h9rd0; ruta=/ Conexión: keep-alive X-Cache-Lookup: MISS de t1.hoster.ru:6666 Servidor: Apache/2.2.15 (CentOS) X-Powered-By: PHP/5.4.37 X-Cache: MISS de t1.hoster.ru Control de caché: sin almacenamiento, sin caché, debe revalidar, verificación posterior = 0, verificación previa = 0 Pragma: sin caché Fecha: viernes 11 de diciembre de 2015 12:08:54 GMT Codificación de transferencia: fragmentado Tipo de contenido: texto/html; juego de caracteres=WINDOWS-1251
En Windows, una carpeta típica para sitios es C:\Servidor\datos\htdocs\. Pero, de hecho, si alguien "pensó" en crear un servidor en Windows, entonces, muy probablemente, esa persona no ha oído nada sobre los privilegios. Por lo tanto, deberías empezar a intentarlo directamente desde el directorio C:/Windows/:
Como puedes ver, todo salió bien la primera vez.
Pero los propios shells de inyección jSQL me plantean dudas. Si tiene privilegios de archivos, puede cargar algo fácilmente con una interfaz web.
8. Comprobación masiva de sitios en busca de inyecciones de SQL
E incluso esta función está disponible en jSQL injection. Todo es extremadamente simple: descargue una lista de sitios (puede importarlos desde un archivo), seleccione aquellos que desea verificar y haga clic en el botón correspondiente para iniciar la operación.
Conclusión de la inyección jSQL
jSQL Inyección es una herramienta buena y poderosa para buscar y luego usar inyecciones SQL que se encuentran en sitios web. Sus indudables ventajas: facilidad de uso, funciones relacionadas integradas. jSQL Inyección puede ser el mejor amigo de un principiante al analizar sitios web.
Entre las deficiencias, destacaría la imposibilidad de editar bases de datos (al menos yo no encontré esta funcionalidad). Como ocurre con todas las herramientas GUI, una de las desventajas de este programa se puede atribuir a su imposibilidad de utilizarse en scripts. Sin embargo, también es posible cierta automatización en este programa, gracias a la función incorporada de escaneo masivo de sitios.
muestra establecida y certificado. ¡Para un descuento especial en cualquier facultad y curso!